支持OBJ文件语法
obj文件格式支持多边形和自由形式的表面对象。Obj Reader/Writer目前支持多边形面(f)对象(l)线和(p)点。自由形式的表面通常不用于.obj文件交换,目前也不支持。为了完整起见,下面总结了目前支持的语法。
语法和描述 |
V 顶点的位置。坐标是浮点数。 |
Vn 顶点正常。坐标是浮点数。 |
v 纹理坐标。 为水平方向, |
f < v1 > / < vt1 > / < vn1 > < v2 > / < vt2 > / < vn2 > < v3 > / < vt3 > / < vn3 >… 面按顺时针顺序存储为一系列三个或更多的顶点。顶点由它们的位置、可选的纹理坐标和可选的法线来描述,并以整数索引的形式编码到各自的坐标列表中。面一般限于三角形或四边形平面。 |
L 线被存储为一个或多个顶点和可选的纹理坐标。纹理通常不会映射到行,但可以用来存储表格数据或索引。 |
P 点被存储为一系列的一个或多个顶点。 |
mtllib < filename.mtl > Material (.mtl)文件引用Material文件,该文件定义了后面对象中使用的材料。材质文件包含颜色、照明组件和纹理文件名引用。 |
usemtl < mtlname > 材质名称字符串标签,它引用了obj文件中接下来要使用的材质。 |
G 后面元素的组名字符串标记。 |
o <对象名> 后面元素(面)的对象名称字符串标记。 |
s < smoothgroup > 用于将元素组合在一起进行平滑着色操作的平滑组号。 |
文件扩展名 |
内容 |
.obj |
几何数据 |
一个.obj文件可以包含许多类型的几何图形。然而,在实践中obj文件通常只包含面。
Obj文件通常包含三维几何。2D数据将被表示为一个坐标(通常是y或z)为0.0的所有几何体。