【openGL2021版】obj格式文件

      大家好,我是Lampard猿奋~

      欢迎来到船新的openGL基础系列的博客,今天学习的是obj格式文件

 

android aosp编译obj文件存到内存中 .obj文件下载_3D

(一)什么是obj格式文件 

      obj文件是3D模型文件格式。由Alias|Wavefront公司为3D建模和动画软件"Advanced Visualizer"开发的一种标准,适合用于3D软件模型之间的互导,也可以通过Maya读写,下图是百科给它的定义:

android aosp编译obj文件存到内存中 .obj文件下载_3D_02

       上周我们已经学会了给图形贴上皮肤,然后进一步我们就可以制作一个立体的模型。而在3D模型中,obj就是一个很通用的文件,其里面记录了我们所需要的顶点,法线,纹理坐标等信息

1.OBJ文件是一种3D模型文件。不包含动画、材质特性、贴图路径、动力学、粒子等信息

2.)OBJ文件主要支持多边形(Polygons)模型。虽然也支持曲线(Curves)、表面(Surfaces)、点组材质(Point Group Materials),但Maya导出的OBJ文件并不包括这些信息

3.OBJ文件支持三个点以上的面

4.OBJ文件支持法线和贴图坐标。在其它软件中调整好贴图后,贴图坐标信息可以存入OBJ文件中

(二)obj文件基本结构 

主要关注顶点数据(Vertex data)以及元素(Elements)

(1)顶点数据(Vertex data)

v 几何体顶点 (Geometric vertices),格式:(x,y,z轴坐标)

t 贴图坐标点 (Texture vertices),格式:(纹理X轴坐标,纹理Y轴坐标)

vn 顶点法线 (Vertex normals),格式:(x,y,z轴)

vp 参数空格顶点 (Parameter space vertices)

(2)元素(Elements)


p 点 (Point)

l 线 (Line)

f 面 (Face):格式为第几个顶点/第几个纹理坐标/第条个法线

curv 曲线 (Curve)

 

android aosp编译obj文件存到内存中 .obj文件下载_图形学_03

       如上图,就是(点1,2,3)组成一个面,(点3,2,4)组成一个面,两个三角形就凑成了一个正方形

(三)obj模型实例

     制作6个正方形并进行连接

android aosp编译obj文件存到内存中 .obj文件下载_数据_04

      每个正方形由两个三角形组成,由6个正方形组成一个立方体(具体解码的文章放在下一篇里面讲)

android aosp编译obj文件存到内存中 .obj文件下载_数据_05

好啦今天就到这里

点赞,关注!!!

android aosp编译obj文件存到内存中 .obj文件下载_数据_06