我对此有点新意,所以我很难过。 我在搅拌机中创建一个简单的卡片模型,单面和纹理,然后将其导出为.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:好的, 1024x1024:好的, 1024x512:好的, 512x1024:好的, 512x256:好的, 256x512:好的, 800x600:错了, 600x800:错误。 因此2的大小(希望它是正确的术语)起作用。我读到光滑/ lwjgl的纹理必须具有可分为2的尺寸(甚至记住原因),但为什么在某些尺寸上错误地应用了坐标?
尝试了不同的坐标顺序......纹理仍然颠倒(或横向)。如果我将obj文件导回到blender进入编辑模式并打开纹理面......它也在那里颠倒翻转。
更新2
据我所知,这就是纹理坐标应该如何工作:
不知怎的,我明白了:
我说错了吗?这个问题妨碍了我精彩的游戏制作。纹理尺寸问题仍然在桌面上。请帮忙。
更新3
感谢neomonkeus,修复了颠倒的纹理问题。纹理尺寸问题怎么样?是否有“glTexParameteri()”命令可以修复它?矿石质地矩阵有问题吗?
答案 0 :(得分:0)
我很蠢。这是2件事的力量。一个问题已经被问及并彻底回答。奇怪的是,在某些时候纹理正确缩放...我只是不记得我用来加载它们的方法。虽然可以通过'1-v'方法修复颠倒的事情,但是当我基本上从www.lwjgl.org复制粘贴代码时,它甚至不应该出现。
修改强>
再一次,我很愚蠢。如果你做了glOrtho(0,800,600,0,1,-1),纹理将再次翻转,所以正面朝上。基本上这不仅是一个愚蠢的问题,而且是一个古老而基本的问题。只是为了说清楚...如果我想在透视和正交视图中以相同的方式使用纹理,我必须在左下角有0.0,怀特?
BTW:光滑的TextureLoader.getTexture(...)翻转的param应该在加载时翻转图像,但是我得到的结果是true和false。怎么了?