在obj + mtl + jpg 3D文件中,如何获取应用jpg文件中特定像素的3D坐标?

问题描述 投票:0回答:1

我有3个文件,一个.obj,一个.mtl和一个.jpg文件。

对于.jpg文件中的每个(相关)像素,有没有办法获得“投影”颜色的3D点?

我的意思是,这必须在将纹理应用到模型的过程中的某处计算,对吗?

我们的想法是拥有一个与jpg文件相同高度和宽度的数组,但内部有3D坐标。

我在python中工作,我已经使用PyWavefront(+ pyglet.gl)和他们在这里提供的示例导入了带纹理的obj文件:https://github.com/greenmoss/PyWavefront/blob/master/pywavefront/texture.py

这可能与此问题无关,因为我想计算数组而不显示任何内容。

python opengl 3d textures wavefront
1个回答
1
投票

这不是纹理的应用方式。 obj给你的是每个顶点的UV坐标。 UV坐标是2D矢量,可以告诉您图片中某个顶点所在的位置。所有这些坐标都可以形成所谓的UV贴图。

这是它的直观表示:

enter image description here

此信息位于.obj文件中。以vt开头的每一行描述了一个向量。以f开头的每一行描述了一个多边形。每组3/4/5描述3dcoord / TextureCoord / normal。

在片段着色器中,您将使用此片段中的插值UV坐标对纹理进行采样。

© www.soinside.com 2019 - 2024. All rights reserved.