DirectX9:应用篇 论OBJ模型文件格式

一.OBJ文件简介

obj文件不包含面的颜色定义信息,可以引用材质库存储在一个.mtl的文件中(mtllib 材质库),材质库包含了材质的漫射(diffuse) 环境(ambient)  光泽(specular)  反射(specularity)  折射(refraction)  透明度(transparency)等

obj文件包含UV数据,但不包含材质特性及路径等,不包含动画 例子和动力学信息

obj3.0格式支持多边形(Polygon) 直线(Lines)  表面(Surfaces)和自由形态曲线(Free-form Curves)

二.OBJ文件基本结构

1.顶点数据(Vertex data):

  • v 几何体顶点(Geometric vertices)
  • vt 贴图坐标点(Vertex normals)
  • vp 参数空格顶点(Parameter space vertices)

2.自由形态曲线(Free-form curve)/表面属性(surface attributes):

  • deg 度(Degree)
  • bmat 基本矩阵(Basis matrix)
  • step 步尺寸(Step size)
  • cstype 曲线或表面类型(Curve or surface type)

3.元素

  • p 点(Point)
  • l 线(Line)
  • f 面(Face)
  • curv 曲线(Curve)
  • curv2 2D曲线(2D curve)
  • surf 表面(Surface)

4.自由形态曲线(Free-form curve)/表面主题陈述(surface body statements):

  • parm 参数值(Parameter values)
  • trim 外部修剪循环(Outer trimming loop)
  • hole 内部整修循环(Inner trimming loop)
  • scrv 特殊曲线(Special curve)
  • sp 特殊的点(Special point)
  • end 结束陈述(End statement)

5.自由形态表面之间的(Connectivity between free-form surfaces):

  • con 连接(Connect)

6.成组(Grouping):

  • g 组名称(Group name)
  • s 光滑组(Smoothing group)
  • mg 合并组(Merging group)
  • o 对象名称(Object name)

7.显示(Dispaly)/渲染属性(render attributes):

  • bevel 导角插值(Bevel interpolation)
  • c_interp 颜色插值(Color interpolation)
  • d_interp 溶解插值(Dissolve interpolation)
  • lod 细节层次(Level of detail)
  • usemtl 材质名称(Material name)
  • mtllib 材质库(Material library)
  • shadow_obj 投射阴影(Shadow casting)
  • trace_obj 光线跟踪(Ray tracing)
  • ctech 曲线近似技术(Curve approximation technique)
  • stech 表面近似技术(Surface approximation technique)

三.OBJ文件实例

下面obj文件是一个长方体,包含了基本信息(不含贴图)

# object Box01  代表注释信息

v  -36.2848 0.0000 7.8963  代表顶点坐标
vn 0.0000 -1.0000 -0.0000  代表顶点法线坐标

vt 1.0000 0.0000 0.0000  代表贴图坐标

g Box01 代表组

s 2  代表光滑组

f 1/1/1 2/2/1 3/3/1 4/4/1  表示面 顶点索引 贴图(uv)索引 法线索引

# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware
# 创建的文件:21.05.2019 11:16:45
 
#
# object Box01
#
 
v  -36.2848 0.0000 7.8963
v  -36.2848 0.0000 -26.2606
v  24.2100 0.0000 -26.2606
v  24.2100 0.0000 7.8963
v  -36.2848 26.3326 7.8963
v  24.2100 26.3326 7.8963
v  24.2100 26.3326 -26.2606
v  -36.2848 26.3326 -26.2606
# 8 vertices
 
vn 0.0000 -1.0000 -0.0000
vn 0.0000 1.0000 -0.0000
vn 0.0000 0.0000 1.0000
vn 1.0000 0.0000 -0.0000
vn 0.0000 0.0000 -1.0000
vn -1.0000 0.0000 -0.0000
# 6 vertex normals
 
vt 1.0000 0.0000 0.0000
vt 1.0000 1.0000 0.0000
vt 0.0000 1.0000 0.0000
vt 0.0000 0.0000 0.0000
# 4 texture coords
 
g Box01
s 2
f 1/1/1 2/2/1 3/3/1 4/4/1 
s 4
f 5/4/2 6/1/2 7/2/2 8/3/2 
s 8
f 1/4/3 4/1/3 6/2/3 5/3/3 
s 16
f 4/4/4 3/1/4 7/2/4 6/3/4 
s 32
f 3/4/5 2/1/5 8/2/5 7/3/5 
s 64
f 2/4/6 1/1/6 5/2/6 8/3/6 
# 6 polygons
 
原文地址:https://www.cnblogs.com/k5bg/p/11130546.html