obj文件中纹理坐标的含义是什么

lil*_*m.C 7 c++ opengl 3d opengl-es

那么问题来了:纹理坐标的值代表什么?例如,在我的 obj 文件中,纹理坐标如下所示:

vt 0.474178 0.050139
vt 0.477308 0.050139
vt 0.480438 0.050139
vt 0.483568 0.050139
Run Code Online (Sandbox Code Playgroud)

我的纹理(bmp 文件)的大小是 640*360。这是否意味着 obj 文件中的 (0.474178, 0.050139) 对应于 bmp 文件中的 (0.474178*640, 0.050139*360) 点?也就是说,纹理坐标通过执行以下操作来指示 bmp 文件中的点位置:

 u*width_of_the_bmp,  v*height_of_the_bmp
Run Code Online (Sandbox Code Playgroud)

如果我错了,如何获得 vt 和 bmp 点位置之间的相应相关性?因为我想获取每个顶点的RGB值,并且我可以获取bmp文件中每个像素的RGB值,如何将这些数据链接在一起以获得我想要的?

use*_*751 6

那是正确的。

通常,纹理坐标 0,0 为像素坐标 0,0,纹理坐标 1,1 为对角。大于 1 的纹理坐标环绕纹理,因此如果从 0,0 到 2,0,则环绕纹理两次。

当然,某些程序可能会以不同的方式解释它们。没有规定一定要这样,但通常情况如此。