2012-07-15 139 views
17

我想为Blender的.obj文件编写一个解析器。文件格式似乎不言自明,但它似乎缺少一些数据。例如,一个简单的多维数据集(默认的Blender多维数据集)有8行顶点,但我期望看到36行(12个三角形形成一个立方体)。Wavefront .obj文件的规格是什么?

我觉得困惑,在租赁对我来说,从多维数据集在Direct3D创建方式造成的。 Direct3d需要36个顶点才能形成一个立方体。所以我想我需要推断其他28个顶点。这种类型的猜测可能会在尝试解析更复杂形状的顶点时导致问题。所以,我想如果我能找到关于文件格式的官方规格,它可能会让我对如何解释数据有所了解。

似乎有人曾经问过同样的问题:How to get proper number of vertices in OBJ file from DCC tools such as Blender for use in OpenGL ES? 但它没有任何有用的信息对我来说。

+0

[这是一个基本的解释(http://jamwaffles.co.uk/tutorials/opengl/wavefrontloader/fileexplanation)。有8个顶点,然而你有文件中的_face_数据('f'线)指定哪个顶点构成一个面。 – Bojangles 2012-07-15 23:50:47

+1

只是说明说,搅拌机OBJ文件不是从其他OBJ文件(无特殊仅搅拌机数据)的任何重要的方式不同,如果你正在写一个读者 - 你可以查找文档,支持波前OBJ规范。 – ideasman42 2012-11-16 07:05:17

+0

嗨! @詹姆斯你完成了你的解析器吗?它是开源的吗?我也在寻找好的_.obj规格。我现在也在解析器上工作。 – im7mortal 2016-08-28 18:27:22

回答

19

OBJ Spec

MTL Spec(你可能会想这也是在某些时候)

仅供参考OBJ是没有丝毫关系到搅拌机,它只是一个简单的模型一个共同的文件格式。