我对此有点陌生,所以我很难过。我在搅拌机中创建了一个具有单个面和纹理的简单卡片模型,然后将其导出为 .obj,当我将其加载到 lwjgl 时,纹理不仅向后而且应用不正确。
obj 文件中的纹理坐标应该是正确的(即使我将它们四舍五入到 0 到 1),但是正如你所看到的......
# Blender v2.67 (sub 0) OBJ File: ''
# www.blender.org
mtllib x.mtl
o Plane
v 0.5 0.000000 1.000000
v -0.5 0.000000 1.000000
v 0.5 0.000000 -1.000000
v -0.5 0.000000 -1.000000
vt 0 0
vt 1 0
vt 1 1
vt 0 1
vn 0.000000 1.000000 -0.000000
usemtl Material.002
s off
f 2/1/1 1/2/1 3/3/1
f 4/4/1 2/1/1 3/3/1
现在我手动调整了坐标,它们似乎可以工作,但是直到倒退。
# Blender v2.67 (sub 0) OBJ File: ''
# www.blender.org
mtllib x.mtl
o Plane
v 0.5 0.000000 1.000000
v -0.5 0.000000 1.000000
v 0.5 0.000000 -1.000000
v -0.5 0.000000 -1.000000
vt 0 0
vt 0.78 0
vt 0.78 0.585
vt 0 0.585
vn 0.000000 1.000000 -0.000000
usemtl Material.002
s off
f 2/1/1 1/2/1 3/3/1
f 4/4/1 2/1/1 3/3/1
是搅拌机方面的问题(我在那里设置错误)还是 lwjgl(我在那里设置其他东西错误)?虽然我似乎对其他人制作的模型有类似的问题。顺便说一句,我目前正在使用 Slick 加载纹理(但其他方法导致相同的错误)。
最后一个纹理模型的制作和导入方式基本相同,但是要正确应用纹理接缝……虽然它是颠倒的。实际上,所有纹理都是颠倒应用的,而不是从左到右“镜像”。
更新 1
很奇怪……做了一个小实验,发现了一些奇怪的结果。纹理:512x512:OK,1024x1024:OK,1024x512:OK,512x1024:OK,512x256:OK,256x512:OK,800x600:错误,600x800:错误。所以 2 的大小(希望它是正确的术语)起作用。我读到 slick/lwjgl 的纹理必须具有可被 2 整除的尺寸(甚至记得为什么),但是为什么在某些尺寸上错误地应用了坐标?
尝试了不同的坐标顺序...纹理仍然颠倒(或横向)。如果我将 obj 文件导入回搅拌机,则进入编辑模式并打开纹理面……它也会在其中颠倒过来。
更新 2
据我了解,这就是纹理坐标的工作方式:
不知何故,我得到了这个:
我对么?这个问题阻碍了我出色的游戏制作。纹理尺寸问题仍然存在。请帮忙。
更新 3
多亏了 neomonkeus,颠倒的纹理问题得到了修复。纹理维度问题呢?是否有可以修复它的“glTexParameteri()”命令?还是纹理矩阵有问题?