Wavefront .obj文件的规格是什么?

24
我想要为Blender的.obj文件编写解析器。该文件格式似乎很容易理解,但也似乎缺少一些数据。例如,一个简单的立方体(默认的Blender立方体)有8行顶点,但是我预期会看到36行(12个三角形来形成一个立方体)。
我认为混淆,至少对我来说,源于在Direct3d中创建立方体的方式。Direct3d需要36个顶点来形成一个立方体。因此,我认为我需要推断出其他28个顶点。这种猜测可能会在尝试解析更复杂的形状的顶点时导致问题。因此,我想如果我能找到官方的文件格式规范,它可能会为我提供一些解释如何解释数据的见解。
似乎有人之前问过同样的问题:如何从诸如Blender之类的DCC工具获得用于在OpenGL ES中使用的OBJ文件中正确数量的顶点?,但对我没有任何有用的信息。

这是一个基本的解释:http://jamwaffles.co.uk/tutorials/opengl/wavefrontloader/fileexplanation。文件中有8个顶点,但是在文件中还有“f”行的面数据,指定哪些顶点组成一个面。 - Bojangles
2
只是想提醒一下,Blender的OBJ文件在重要方面与其他OBJ文件没有任何区别(没有特殊的仅适用于Blender的数据),如果你正在编写一个读取器 - 你可以查找文档来支持Wavefront OBJ规范。 - ideasman42
你好!@James,你完成了你的解析器吗?它是开源的吗?我也在寻找好的.obj规范。我现在也在处理解析器。 - im7mortal
1个回答

29

OBJ规格说明

MTL规格说明(您可能在某个时候也需要它)

顺便说一下,OBJ与Blender无任何关系,这只是一个用于简单模型的常见文件格式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接