obj文件

obj文件是Alias|Wavefront公司开发的一种标准3D模型文件格式,适合用于3D软件模型之间的互导。
obj文件是一种文本文件,可以直接用写字板打开进行查看、编辑和修改,由一行行文本组成,注释行以符号“#”为开头,数据行由一两个标记字母也就是关键字开头,关键字解释了数据类型。若三维模型仅涉及直线和多边形,则使用到的关键字有以下几个。

obj文件使用的关键字
v: 表示本行指定一个顶点,此关键字后跟着3个单精度浮点数,分别表示该顶点的X、Y、Z坐标值
vt: 表示本行指定一个纹理坐标,此关键字后跟着两个单精度浮点数,分别表示此纹理坐标的U、V值
vn: 表示本行指定一个法线向量,此关键字后跟着3个单精度浮点数,分别表示该法向量的X、Y、Z坐标值
g: 表示组,后面参数为组名称,指定从此行之后到下一个以g开头的行之间的所有元素结合到一起
f: 表示本行指定一个表面,一个表面就是一个三角形图元,格式:“f 顶点索引/uv点索引/法线索引”
usemtl: 此关键字后参数为材质名称,指定了从此行之后到下一个以usemtl开头的行之间的所有表面所使用的材质名称,该材质可以在此obj文件所附属的mtl文件中找到具体信息
mtllib: 此关键字后参数为文件名称,指定了obj文件所使用的材质库文件(mtl文件)的文件名称

obj文件示例

mtl文件

obj文件不包含面的颜色定义信息,不过可以引用材质库,材质库信息储存在一个后缀是".mtl"的独立文件中。mtl文件是obj文件附属的材质库文件,材质库中包含材质的漫射(diffuse),环境(ambient),光泽(specular)的RGB的定义值,以及反射(specularity),折射(refraction),透明度(transparency)等其它特征。

mtl文件使用的关键字
newmtl: 定义新的材质组,后面参数为材质组名称
Ka: 材质的环境光(ambient color)
Kd: 散射光(diffuse color)
Ks: 镜面光(specular color)
Ke: 放射光(emissive color)
Ns: 材质的光亮度
d,Tr 均可用于定义材质的Alpha透明度
sharpness: 材质的锐度(sharpness)
illum: 照明度(illumination)后面可接0~10范围内的数字参数
0 Color on and Ambient off
1 Color on and Ambient on
2 Highlight on
3 Reflection on and Ray trace on
4 Transparency: Glass on
Reflection: Ray trace on
5 Reflection: Fresnel on and Ray trace on
6 Transparency: Refraction on
Reflection: Fresnel off and Ray trace on
7 Transparency: Refraction on
Reflection: Fresnel on and Ray trace on
8 Reflection on and Ray trace off
9 Transparency: Glass on ,Reflection: Ray trace off
10 Casts shadows onto invisible surfaces
Ni : 材质的光密度(optical density)
Tf: 材质的透射滤波(transmission filter),对应数据为r,g,b值
map_Ka、map_Kd map_Ks 材质的环境,散射和镜面贴图,对应数据为贴图文件名称
refl: 材质的反射属性

示例

obj文件、mtl文件结构说明相关推荐

  1. three.js加载三维模型(obj文件mtl文件)

    .obj和.mtl格式详解 obj文件是3D模型文件格式.由Alias|Wavefront公司为3D建模和动画软件"Advanced Visualizer"开发的一种标准,适合用于 ...

  2. Java3D加载obj文件+mtl文件

    Java3d入门学习可以参考这位博主大神--苏若年,关于Java3D学习的文章.下面给出他部分文章的链接: 文1 创建三维几何模型:[ http://www.cnblogs.com/dennisit/ ...

  3. 三维模型obj文件解析

    目录 obj文件简介 文件结构 顶点数据(Vertex data): 自由形态曲线(Free-form curve)/表面属性(surface attributes): 元素(Elements): 自 ...

  4. obj文件和mtl文件格式说明

    以一个大理石地板的3d模型为例,如下图: 其包含三个文件,模型文件marble.obj,材质文件marble.mtl,及纹理贴图文件marble.png.obj构成了模型的主体,mtl为其材质,材质中 ...

  5. 【我的OpenGL学习进阶之旅】关于3D模型知识之:什么是obj文件和mtl文件

    文章目录 一.学习3D模型的背景 二.3D模型效果展示 三.好奇3D模型文件是啥内容? 3.1 打开.obj文件 3.2 打开.obj文件 3.3 在外部使用查看3D模型的软件打开.obj文件 3.3 ...

  6. threejs加载服务器文件,如何使用Three.js加载obj和mtl文件

    OBJ和MTL是3D模型的几何模型文件和材料文件. 在最新的three.js版本(r78)中,以前的OBJMTLLoader类已废弃. 现在要加载OBJ和MTL文件,需要结合OBJLoader和MTL ...

  7. Three.js加载.obj和.mtl文件(无法加载材质、路径错误问题)

    加载.obj模型文件 本文是Three.js电子书的14.3节 使用三维软件导出.obj模型文件的时候,会同时导出一个材质文件.mtl, .obj和.stl文件包含的信息一样都是几何体顶点相关数据,材 ...

  8. ifc文件转换成obj和mtl文件

    ifcopenshell官网:http://www.ifcopenshell.org/ 点击ifcConvert 下载对应版本(我下载的是windows 64位) 将ifc文件拖动到IfcConver ...

  9. vs2019 加载.obj文件报错找不到403 IIS 3D可视化.obj/.mtl文件找不到

    由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序. 解释的明明白白,iis缺少MIME的文件映射. 所以根据缺少的文件后缀,添加对应的MIME. 在vs2019的Web.con ...

最新文章

  1. 开放一些3D视觉相关职位!
  2. fetch git pull 切换_每天提交 Git 太烦?直接用 Python 就好了!
  3. mysql更新后返回主键,我需要在MYSQL中更新表后返回的受影响行的主键。
  4. 初识Nginx服务器
  5. java知识大全积累篇
  6. 利用局域网性能测试仪保障企业网络环境
  7. 安卓阵营最强Soc!骁龙898即将亮相:小米12系列本月底前后首发
  8. java三角形创建子类,A派生出子类B,B派生出子类C,并且在Java源代码中有如下声明: 1.A a0=new 2.A a1 =new 3.A a2=new 问以下哪个说法是正确的?()...
  9. 在WebBrowser中通过模拟键盘鼠标操控网页中的文件上传控件
  10. 数学图形(1.41)super spiral超级螺线
  11. Atitit opencv 模板匹配
  12. abaqus如何并行计算_Abaqus软件与并行计算的硬件配置
  13. J2EE是什么(一)
  14. machine learning measurements
  15. 腾讯校招java面经_腾讯校招技术岗面试经历及总结(笔试-一面-二面-终面均通过)...
  16. 方正锐利重磅升级到12.0版本,包装印前处理更加便捷、高效!
  17. Spring学习(二)IOC
  18. jvm配置垃圾收集参数
  19. zookeeper 监控
  20. 可截断素数(Truncatable primes)

热门文章

  1. 拿捏Fiddler抓包教程(10)-Fiddler如何设置捕获Firefox浏览器的Https会话
  2. 大学计算机基础实践教程实验一讨论与思考,大学计算机基础实验报告手册(非艺术类).doc...
  3. Flutter 多渠道打包详解(埋点统计系列文章)
  4. Cortex-M3内核之CPU等级模式
  5. jenkins 创建用户角色项目权限
  6. 如何让android的service一直在后台运行?,保持service一直在后台运行
  7. 北京时间与UTC时间转换
  8. 2022-6-4 小明爱上课,切木头,最多分成多少块,躲猫猫,争渡
  9. leaflet沿线标注_LeaFlet学习之地图文字标注
  10. 3d模型轻量级查看器-Autodesk FBX Review