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

Python 在obj+;mtl&x2B;jpg 3D文件,如何获取jpg文件中特定像素将应用的3D坐标?,python,opengl,3d,textures,wavefront,Python,Opengl,3d,Textures,Wavefront,我有3个文件,一个.obj、一个.mtl和一个.jpg文件 对于.jpg文件中的每个(相关)像素,是否有方法获取颜色“投影”的3D点 我的意思是,这必须在将纹理应用于模型的过程中进行计算,对吗 其想法是拥有一个与jpg文件相同高度和宽度的数组,但其中包含3D坐标 我正在使用python,我已经使用PyWavefront(+pyglet.gl)导入了带有纹理的obj文件,以及他们在这里提供的示例: 这可能与此问题无关,因为我希望在不显示任何内容的情况下计算数组。这不是纹理的实际应用方式。obj为每

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

对于.jpg文件中的每个(相关)像素,是否有方法获取颜色“投影”的3D点

我的意思是,这必须在将纹理应用于模型的过程中进行计算,对吗

其想法是拥有一个与jpg文件相同高度和宽度的数组,但其中包含3D坐标

我正在使用python,我已经使用PyWavefront(+pyglet.gl)导入了带有纹理的obj文件,以及他们在这里提供的示例:


这可能与此问题无关,因为我希望在不显示任何内容的情况下计算数组。

这不是纹理的实际应用方式。obj为每个顶点提供的是UV坐标。UV坐标是2D向量,告诉您图片中某个顶点的位置。所有这些坐标构成了所谓的UV贴图

这是它的视觉表现:

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


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

哦,我认为这是有意义的。因此,v是3D点,vn是法线(在我的例子中,我不在乎),vt是纹理(介于0和1之间,很容易将其链接到图像)。谢谢,我想我明白了。@SuperMouette是的,不过要小心,obj中的一个顶点可以在不同的面上有两个VT,这不是opengl顶点及其属性的情况。您需要复制一些顶点…PNJ文件?还是JPG?是JPG。我编辑了我的帖子