您的位置:首页 > 其它

OBJ文件格式分析(一)

2011-02-17 09:46 896 查看
 

OBJ文件是一种3D模型文件,文件的介绍呢,我就不多说了,可以去百度百科上查询,非常详细。

现在写opengl程序的时候需要用到一些3D模型文件,我学过maya的一些建模方法,maya能导出obj格式的模型,因此现在开始研究一下如何读取,并在opengl程序里面绘制出OBJ模型。

 

本来是想从网上找点源代码的,但是后来发现网上好多代码都只能读取某些OBJ文件,不能读取和绘制所有的,总会出现这样或者那样的错误。于是没办法,只能自己来研究一下,自己写了。

从一个简单的例子说起,下面是一个最简单的obj的文件结构:

v  -1 0 0

v   1 0 0

v  1  1 0

v  -1  1 0

f  1 2 3 4

这个文件怎么得到呢?这里我们不用3D建模软件,这样可以看得更清晰这种文件到底是怎么存放数据的。

新建一个txt文件,然后把上面的数据复制进去,然后把这个文件改名为A.obj,这样一个obj文件就写好了,为了测试,我用的是osgviewer。我在A.obj文件的同一目录下用cmd的方式查看了一下刚才创建的OBj文件,cmd命令和执行结果如下:



换个角度看:
 
 



 
这样就绘制出了这一个面。这里可以看出,obj文件的前面的部分表示的是定点,后面的f后面的数字表示:这些定点如何形成一个面。v表示vertex,f表示face。f 1 2 3 4中的1 2 3 4分别是这些定点的索引,表示这个面是从1号点出发连接2号点,再从2号点出发连接3号点,再从3号点出发连接4号点。
 学过vrml的人知道这个跟vrml的书写格式很相似。

OK,这篇文章就分析这点最基础的obj的文件结构,下篇文章继续写obj文件中其他参数。

 

 

http://zgzamoshi.blog.163.com/blog/static/573886042010112881932244/

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cmd 百度 测试 2010