Lwjgl 应用不正确的纹理

Lwjgl 应用不正确的纹理,lwjgl,blender,texture-mapping,Lwjgl,Blender,Texture Mapping,我对这有点陌生,所以我被难住了。 我在blender中创建了一个简单的卡片模型,带有一个面和纹理,然后将其导出为.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

我对这有点陌生,所以我被难住了。 我在blender中创建了一个简单的卡片模型,带有一个面和纹理,然后将其导出为.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的大小(希望是正确的术语)起作用。我读到slick/lwjgl的纹理必须具有可除以2的维度(甚至还记得为什么),但为什么坐标在某些维度上应用错误

尝试了不同的坐标顺序。。。纹理仍然颠倒(或侧向)。如果我将obj文件导入blender,进入编辑模式并打开纹理面。。。它在那里也翻转过来

更新2

据我所知,这就是纹理坐标的工作原理:

不知怎的,我明白了:

我说得对吗?这个问题阻碍了我的精彩游戏制作。纹理尺寸问题也仍在讨论中。请帮忙

更新3


多亏了neomonkeus,上下颠倒的纹理问题得以解决。纹理尺寸问题怎么样?是否有一个“glTexParameteri()”命令可以修复它?Ore纹理矩阵有什么问题吗?

我很笨。这是两件事的力量。一个问题已经被问过了,并且得到了彻底的回答。奇怪的是,在某个点上纹理被正确缩放。。。我只是不记得加载它们的方法了。虽然“1-v”方法可以修复颠倒的东西,但当我基本上从www.lwjgl.org复制粘贴代码时,它甚至不应该出现

编辑

再一次,我很愚蠢。如果你做了格洛托(0800600,0,1,-1),纹理将再次翻转,所以面朝上。基本上,这不仅是一个愚蠢的问题,也是一个古老而基本的问题。只是想说清楚。。。如果我想让纹理在透视和正交视图中以相同的方式定向,我必须在左下角有0.0,wright


顺便说一句:slicks TextureLoader.getTexture(…)flipped参数应该在加载时翻转图像,但是对于true和false,我得到了相同的结果。这是怎么回事?

认为你只需要对纹理的v分量(u,v)->(u,-v)求反。如果你的意思是改变:1,10,10,01,0到1,-10,-10,01,0。。。它不起作用。它可以使纹理超出面部边界。抱歉,应该说1-v,因为它们已正常化。这解决了颠倒的问题。谢谢尺寸问题怎么样?