【发布时间】:2019-08-13 11:25:42
【问题描述】:
我正在尝试使用预先生成的 PNG 文件中的纹理坐标,用于加载到带有 LWJGL 的 slick-util 扩展名的 Java 中的 3d 四边形世界。
纹理文件为 192x96 像素,格式正确。它由 6x3 32x32 的图块组成。
3d 四边形是 1.5f 宽和长。它们的间距适当。
我在获取正确的纹理坐标时遇到问题。当我将 0.0f 到 0.333333f 作为 y 坐标时,我得到的结果略高于显示的顶部图块的高度。但是,如果我输入 0.0f-0.25f,我得到的正好是 1/3,这是我的瓷砖的高度。我还没有找到 X 坐标的幻数,但也许有人可以向我解释为什么根据纹理坐标,96 的 1/4 是 24,或者我做错了什么?我怀疑这可能是我的四边形大小和纹理之间的冲突。
立方体的顶部使用纹理坐标 (0.0, 0.0f), (0.0, 0.333333f), (0.166666f, 0.333333f), (0.166666f, 0.0f),从左上角到右上角。同样,主纹理文件是 32x32 瓦片排列成 192x96(96 是高度)。
请注意,我在其中一个图块的顶部放置了一条白线以查看其边界,并在其底部放置了黑线,然后在其下方的下一个图块的顶部放置了一条白线。纹理“流血”太低了。如您所见,其他纹理有自己的甚至更奇怪的坐标。
假设图像的顶部是 1.0 而不是底部来排列纹理坐标会产生奇数正方形,其中四边形应该在的中心有一个矩形孔。
我正在使用 TEX_ENV GL_MODULATE。
【问题讨论】: