OBJ文件格式

OBJ是一种标准的3D模型文件格式;软件:3dsMax,LightWare,Maya都支持OBJ文件的读写;

OBJ是以纯文本的形式存储了模型的顶点、法线和纹理坐标和材质使用信息;

格式:前缀参数1 参数2 参数3.......

前缀

说明

v

表示本行指定一个顶点 

此前缀后跟着3个单精度浮点数,分别表示顶点的x,y,z坐标值

vt

表示本行指定一个纹理坐标 

此前缀后跟着两个单精度浮点数,分别表示此纹理坐标的u,v值

vn

表示本行指定一个法线向量 

此前缀后跟着3个单精度浮点数,分别表示顶点法向量x,y,z坐标值

f

表示本行指定一个表面(Face) 

此前缀后面的数据见“面的格式说明”

usemtl

此前缀后只跟着一个参数。该参数指定了从此行之后到下一个以usemtl开头的行

之间的所有表面所使用的材质名称。该材质可以在此OBJ文件所附属的MTL文件

中找到具体信息。

mtllib

此前缀后只跟着一个参数,该参数指定了此OBJ文件所使用的材质库文件(*.mtl)

的文件路径

参考:https://wenku.baidu.com/view/3d47b9b73086bceb19e8b8f67c1cfad6195fe9b2.html

面的格式说明:

f  顶点坐标索引 / 纹理坐标索引 / 顶点法向索引

f Vertex / Texture / Normal

其中,纹理坐标索引/顶点法向索引可以为空;

f 1 2 3 等同于 f 1// 2// 3//

f 1/3 2/5 3/4 (顶点法向索引为空)

f 1/3/4 2/5/6 3/4/2

f 1//4 2//6 3//2

obj格式对纹理的支持是通过关键字mtllib指定的;

newmtl blinn1SG 

illum 4 

Ka 0.2 0.2 0.2 

Kd 1 1 1 

Ks 0.2 0.2 0.2 

Tf 1.00 1.00 1.00 

map_Kd carp.bmp

Ka——物体材质中环境光的颜色

Kd——物体材质中漫反射光的颜色

Ks——物体材质中镜面光颜色

map_Kd——纹理图像的路径

三角网格的数据结构

三角网格的数据由几何和连接关系组成;

几何包括顶点的x,y,z坐标及顶点的法向量等;

连接关系即三角网格是如何连在一块的;

常用的三角网格数据结构包括:

顶点-边(Vertex-Edge)

顶点-面(Vertex-Face)

邻接矩阵 和 邻接表

顶点-边-面

半边结构(half Edge)

纹理数据

obj文件中不但包含顶点几何坐标,还可以指定纹理数据,mtllib命令指定了材质属性的文件,材质属性文件中可以指定纹理图像所在的文件。纹理的显示包含三个步骤:

1、生成纹理数据

2、将纹理数据载入纹理内存

3、将纹理数据映射到物体表面

mtl 格式文件

newmtl name #name为材质名称

Ns exponent #exponent指定材质的反射指数,定义了反射高光度

Ka r g b #环境光反射,g和b两参数是可选的,如果只指定了r的值,则g和b的值都等于r的值

Kd r g b #漫反射

Ks r g b #镜面光反射

# Ka Kd Ks 都还有其他两种格式,可查阅其他资料:

#Kd spectral file.rfl factor

#Kd xyz x y z

map_Kd picture.png #固有纹理贴图

map_Ka picture1.png #阴影纹理贴图

map_Ks picture2.png #高光纹理贴图 illum 2

#光照模型

#光照模型属性如下:

#0. 色彩开,阴影色关

#1. 色彩开,阴影色开

#2. 高光开

#3. 反射开,光线追踪开

#4. 透明: 玻璃开 反射:光线追踪开

#5. 反射:菲涅尔衍射开,光线追踪开

#6. 透明:折射开 反射:菲涅尔衍射关,光线追踪开

#7. 透明:折射开 反射:菲涅尔衍射开,光线追踪开

#8. 反射开,光线追踪关

#9. 透明: 玻璃开 反射:光线追踪关

#10. 投射阴影于不可见表面

【3D】几何物体——三角网格的表示与显示(obj)相关推荐

  1. bullet物理引擎与OpenGL结合 导入3D模型进行碰撞检测 以及画三角网格的坑

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11681069.html 一.初始化世界以及模型 /// 冲突配置包含内存的默认设置,冲突设置. ...

  2. “3D几何与视觉技术”全球在线研讨会第九期~识别3D中的物体和场景

    编辑:CV君 | 未经授权不得转载 前几周跟大家分享了 3DGV 在线研讨会: "3D几何与视觉技术"全球在线研讨会(9月2日到12月16日) "3D几何与视觉技术&qu ...

  3. “3D几何与视觉技术”全球在线研讨会第八期~识别3D中的物体和场景

    编辑:CV君 | 未经授权不得转载 前几周跟大家分享了 3DGV 在线研讨会: "3D几何与视觉技术"全球在线研讨会(9月2日到12月16日) "3D几何与视觉技术&qu ...

  4. 数字几何处理作业1:编程实现三角网格上高斯曲率和平均曲率的计算编程部分

    三.编程 1.代码 用的是中国科大傅孝明老师的框架:框架下载及配置运行 (1)在哪儿添加代码 梳理框架的结构后,在MeshViewerWidget.中添加求解曲率的函数,并在MainViewerWid ...

  5. 几何实体图形保存成stl格式的ascII和二进制文。用matlab语言读入文件,给三角网格坐标值乘以2,并保存到另一stl文件。输出完成工作所用的执行时间

    1.题目: CAD/CAM软件生成几何实体图形,图形形状不限,但图形需包含曲面,分别保存成stl格式的ascII和二进制文.用matlab语言读入文件,给所有三角网格坐标值乘以2,并保存到另一stl文 ...

  6. tensorflow打印模型结构_钢结构模型3D打印与有限元网格的融合方法

    作者:魏鲁双 刘尚蔚 王 颖 魏 群 华北水利水电大学钢结构与工程研究院 中国科学院大学人工智能学院 摘 要 薄壁结构的3D打印STL文件是单侧外表面三角面网络,而钢结构模型体系的3D打印数据图形是由 ...

  7. Delaunay 三角网格学习

    本文是为<Mastering Opencv...>第七章准备的,他要使用主动外观模型AMM和POSIT算法做一个头部3D姿态估计.图像上的特征点由人工标定,但由于头部运动,比如张嘴,会导致 ...

  8. 三角网格参数化几种简单的方法比较

    三角网格参数化可归结为这样一个问题:给定一个由空间点集组成的三角网格和一个二维参数域.通常为平面或者球面.求一个参数域上的点 P∗iP_i^* 到网格上的点pip_i的一一映射.使得参数域上的网格与原 ...

  9. VTK修炼之道46:图形基本操作进阶_三角网格体积、表面积、测地距离、包围盒

    1.基本图形操作意义 图形处理,比如图形平滑.多分辨率分析.特征提取等都离不开一些基本的图形操作.掌握这些基本的图形操作有助于理解和深入学习图形处理和分析方法. VTK中提供了多种图形的基本操作,其中 ...

最新文章

  1. pyqt5实战之透明样式和页面切换和弹出新窗口
  2. hbase shell命令扩展(转自http://www.netfoucs.com/cuirong1986/article/details/7986900)
  3. debug —— C语言 编译时候进行debug的调试
  4. python的数据类型和变量的定义及使用
  5. 重启报错_Win10蓝屏,提示收集错误信息,反复重启报错
  6. JavaScript获取距离某天前或后的日期
  7. vfp生成菜单时文件不存在_如何在VFP项目中创建菜单
  8. galileo 汉化
  9. jQuery源码阅读(一)---jQuery源码整体架构
  10. ios查看帧率的软件_iOS查看屏幕帧数工具--YYFPSLabel
  11. VS编译器 :LNK链接错误汇总:LNK2001 / LNK2005 / LNK2019 / LNK1120
  12. 荣耀V20是起点,一波炫酷荣耀潮配又来啦!
  13. 聊聊flink的consecutive windowed operations 1
  14. Oracle 计算起始日期之间的工作日天数(目前只支持同一年)
  15. 大学计算机人工智能知识点,人工智能及其应用知识点整理
  16. 羊车门问题的python代码_作业:羊车门问题
  17. excel公式编写简化,Python生成公式
  18. 残差网络ResNet最全分析
  19. Javascript错误处理——try...catch
  20. 中国养蚕及深加工市场运行走势与盈利价值分析报告2022-2028年

热门文章

  1. Vue学习系列-01-最详细学习过程(满满干货)
  2. 支付宝wap支付详情
  3. OBD数据分析(一)
  4. 【网络】报文封装整体结构
  5. 网上试题卷子怎么打印?怎么在网上打印试卷
  6. 空中网的logo变成了俏江南
  7. qml 皮肤(一)使用系统自带的Style
  8. 公网IP与私网IP的区别
  9. 巧用bat批量开启关闭服务
  10. DFIR Blogs