我正在尝试使用预先生成的 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。