在OpenGL上映射Wavefront .obj纹理顶点

rod*_*ogq 5 opengl texture-mapping wavefront .obj

一位艺术家为我提供了导出到.obj和.mtl的所有3D模型,以便可以使用OpenGL进行渲染。

但是我无法弄清楚为什么纹理顶点大于1且有时为负。看一下这个例子:

(...)
vn -0.000717425 0.00106739 -0.00991695
vn 3.49779e-09 -5.22866e-09 -0.01
vn -0.00142294 0.00211706 -0.00966919
vn -0.00831486 -0.00555545 0
vt 5.82424 -20.091
vt 6.97527 -20.1873
vt 5.81848 -20.1618
vt -7.48189 8.29159
(...)
Run Code Online (Sandbox Code Playgroud)

他将TGA格式的所有纹理发送给了我,我已正确加载了该纹理,但无法将这些vts 映射到正确的OpenGL纹理矢量。

gen*_*ult 6

但是我无法弄清楚为什么纹理顶点大于1且有时为负。

超出[0..1]范围的纹理坐标表示纹理重复。

给定一维纹理ABCD

   -1    0    1    2
....|ABCD|ABCD|ABCD|....
Run Code Online (Sandbox Code Playgroud)

确保GL_TEXTURE_WRAP_SGL_TEXTURE_WRAP_T设置为GL_REPEAT