.obj 和 .mtl格式详解
程序员文章站
2022-05-18 15:33:21
obj文件是3D模型文件格式。由Alias|Wavefront公司为3D建模和动画软件"Advanced Visualizer"开发的一种标准,适合用于3D软件模型之间的互导,也可以通过Maya读写。 + 只支持模型三角面数据和材质信息,无动画功能支持; + 其中几何信息由.obj文件提供,材质信息 ......
obj文件是3d模型文件格式。由alias|wavefront公司为3d建模和动画软件"advanced visualizer"开发的一种标准,适合用于3d软件模型之间的互导,也可以通过maya读写。
- 只支持模型三角面数据和材质信息,无动画功能支持;
- 其中几何信息由.obj文件提供,材质信息由.mtl文件定义;
- 文件以行为单位表示一条数据,可以根据行开头的字符判断后续的内容;
- 其中 # 字符表示注释行
obj格式
# obj对应的材质文件 # mtllib testvt.mtl # 组名称 g default # o 对象名称(object name) o testvt.obj # 顶点 v -0.5 -0.5 0.1 v -0.5 -0.5 -0.1 v 0 0.5 0.1 v 0 0.5 -0.1 v 0.5 -0.5 0.1 v 0.5 -0.5 -0.1 # 纹理坐标 vt 0 1 vt 1 1 vt 0.5 0 # 顶点法线 vn 0 0 1 vn 0 0 -1 # 当前图元所用材质 usemtl default # s smooth shading across polygons is enabled by smoothing groups. # smooth shading can be disabled as well. s off # v1/vt1/vn1 v2/vt2/vn2 v3/vt3/vn3(索引起始于1) f 1/1/1 5/2/1 3/3/1 f 6/2/2 2/1/2 4/3/2
mtl格式
# 定义一个名为 'xxx'的材质 newmtl xxx # 材质的环境光(ambient color) ka 0 0 0 # 散射光(diffuse color)用kd kd 0.784314 0.784314 0.784314 # 镜面光(specular color)用ks ks 0 0 0 # 折射值 可在0.001到10之间进行取值。若取值为1.0,光在通过物体的时候不发生弯曲。玻璃的折射率为1.5。 ni 1 # 反射指数 定义了反射高光度。该值越高则高光越密集,一般取值范围在0~1000。 ns 400 # 滤光透射率 tf 1 1 1 # 渐隐指数描述 参数factor表示物体融入背景的数量,取值范围为0.0~1.0,取值为1.0表示完全不透明,取值为0.0时表示完全透明。 d 1 # 为漫反射指定颜色纹理文件 map_kd test_vt.bmp
参考:
https://baike.baidu.com/item/obj%e6%96%87%e4%bb%b6/3574019
https://en.wikipedia.org/wiki/wavefront_.obj_file
========== the end ==========
上一篇: 高手过招,招招致命!
下一篇: 擦完屁股的纸应该处理?