【发布时间】:2019-01-23 22:33:54
【问题描述】:
对 .obj 和 3D 渲染不熟悉,请原谅我的无知,我会尽可能清楚地提出问题。
我的程序将接受如下格式的 .obj 文件:
g Cube.006
v 2.016505 -3.960833 -1.000000
v 2.016505 -3.960833 1.000000
v 2.016506 3.960833 -1.000000
v 2.016503 3.960833 1.000000
usemtl Material
s off
f 5 7 6
f 7 8 6
g Cube.005
v 2.016505 -3.960833 -1.000000
v -2.016504 -3.960833 -1.000000
v 2.016506 3.960833 -1.000000
v -2.016505 3.960833 -1.000000
usemtl Material
s off
f 11 9 10
f 11 10 12
g Cube.004
v 2.016505 -3.960833 1.000000
v -2.016505 -3.960833 1.000000
v 2.016503 3.960833 1.000000
v -2.016505 3.960833 0.999999
...
但不是这样的:
# Blender v2.79 (sub 0) OBJ File: 'dog.obj'
# www.blender.org
mtllib dog2.mtl
o dog
v 0.026488 -0.079544 0.114278
v 0.025089 -0.079691 0.102180
v 0.017257 -0.081537 0.105084
v 0.035739 -0.074934 0.114427
v 0.014641 -0.079851 0.112253
v 0.037497 -0.070168 0.103995
v 0.015706 -0.077305 0.095986
v 0.008963 -0.078464 0.098096
v 0.041251 -0.067345 0.110544
v -0.000575 -0.074153 0.105018
v 0.042610 -0.043805 0.116670
v 0.002946 -0.073158 0.113258
v 0.032568 -0.058086 0.088628
v 0.002853 -0.072975 0.092809
...
vn -0.8948 -0.4399 0.0756
vn 0.7067 -0.5483 -0.4470
vn -0.6659 -0.7099 0.2295
vn 0.8051 0.5931 0.0064
usemtl None
s off
f 1//1 2//1 3//1
f 2//2 1//2 4//2
f 1//3 3//3 5//3
f 6//4 2//4 4//4
f 3//5 2//5 7//5
f 3//6 7//6 8//6
f 6//7 4//7 9//7
f 5//8 3//8 10//8
...
能否请熟悉 .obj 文件内部结构的人指导我查看一些文档或简要描述区别是什么?
亲切的问候。
【问题讨论】:
-
fileformat.info/format/wavefrontobj/egff.htm 。在第一个片段中,您没有法线,并使用
g(组)而不是o(对象)进行分组,这在许多情况下意味着相同的事情。 -
感谢您的评论凯尔塔。我认为这里的 f 表示法之间的区别尤其令人困惑:例如 f3//6 7//6 8//6 vs f 1 2 4 [newline] f 1 2 3。
-
f 有 3 个变体 -
f V、f V/T和f V/T/N,其中 V 是顶点索引,T 是纹理坐标索引(vt线),N 是法线索引(@987654331 @)。 -
谢谢你对我有用!