3

我的程序的目标是显示一个从 Blender 导出的简单立方体 UV 映射。但是我的 openGL 程序中的纹理映射不正确。我想准确地说我的 UV 贴图立方体的显示在 Blender 上是完美的。我的纹理由每个面的简单颜色(红色、绿色、蓝色、紫色、黄色和橙色)组成。我选择使用四边形将网格导出到 .obj 和 .mtl 文件中。这是我的 .obj 文件的内容(我添加了一些评论):

# Blender v2.63 (sub 0) OBJ File: ''
# www.blender.org
mtllib Box.mtl
o Cube
v 1.000000 -1.000000 -1.000000
v 1.000000 -1.000000 1.000000
v -1.000000 -1.000000 1.000000
v -1.000000 -1.000000 -1.000000
v 1.000000 1.000000 -0.999999
v 0.999999 1.000000 1.000001
v -1.000000 1.000000 1.000000
v -1.000000 1.000000 -1.000000
vt 0.500000 1.000000 //1
vt 0.250000 1.000000 //2
vt 0.250000 0.750000 //3
vt 0.500000 0.750000 //4
vt 0.500000 0.250000 //5
vt 0.500000 0.500000 //6
vt 0.250000 0.500000 //7
vt 0.250000 0.250000 //8
vt 0.500000 0.000000 //9
vt 0.250000 0.000000 //10
vt 0.000000 0.750000 //11
vt 0.000000 0.500000 //12
vt 0.750000 0.500000 //13
vt 0.750000 0.750000 //14
usemtl Material_Box.bmp
s off
f 1/1/1 2/2/1 3/3/1 4/4/1 //Orange OK
f 5/5/2 8/6/2 7/7/2 6/8/2 //Green OK
f 1/9/3 5/5/3 6/8/3 2/10/3 //Red OK
f 2/11/4 6/12/4 7/7/4 3/3/4 //White (should be purple) NOT OK
f 3/3/5 7/7/5 8/6/5 4/4/5 //Yellow 5 OK
f 5/13/6 1/14/6 4/4/6 8/6/6 //White (should be blue) NOT OK

我打开的立方体看起来像一个十字架。这是我的 UV 纹理(我想明确指出 '3bis' 和 '4bis' 对应的 .obj 文件坐标错误。只有 1、2、5 和 6 面坐标是正确的):

在此处输入图像描述

这是我的 openGL 渲染示例:

在此处输入图像描述

您可以在 uv 纹理上看到“4bis”白脸。

因此,搅拌机生成的某些坐标似乎是错误的。为什么?问题是否来自蓝色四边形不接触图片的右侧,从而创建特定坐标的平移?也许我必须在 Blender 中导出之前精确一个特殊参数......有人可以帮助我吗?

4

0 回答 0