编辑: 笔墨随风 2013-01-08

2 OBJ文件的输入和处理 OBJ文件是 A lias/W avefront公司开发的三维 动画软件 Maya的一种数据输出类型 ,它定义了对 象的几何和其它的一些特性.由于它的文件结构 非常简单 ,所以适合在应用程序中读取或进行 3D 文件格式转换 [

3 ] . 2.

1 OBJ文件格式 OBJ文件不仅可以定义多边形模型 ,也可以定 义自由曲面模型.多边形模型就是可以用点、 线、 面等基本元素构造的模型 ,而自由曲面模型是指使 用参数曲面造型定义的模型.下面是某个 OBJ文 件的一部分 v - 0.

7081257 0.

08592043 - 0.

19173051 v - 0.

7081257 0.

11188304 - 0.

19173063 v - 0.

7081257 0.

0989018 - 0.

19266948 v - 0.

7081257 - 0.

09282872 0.

0129813645 v - 0.

7081257 - 0.

09282884 -

010129813645 v - 0.

7081257 - 0.

09376769 0.

0 v - 0.

7081257 0.

11188304 0.

19173051 v - 0.

7081257 0.

08592043 0.

19173063 v - 0.

7081257 0.

0989018 0119266948 …… vn - 0.

020686224 0.

07818264 -

019934188 vn - 0.

020686112 - 0.

07818285 -

019934188 vn - 0.

103371926 0.

3787195 - 0.

9142939 vn - 0.

1033715 0.

23101781 - 0.

9622852 vn - 0.

01888834 0.

65014 - 0.

7556138 vn - 0.

017401185 0.

52368283 -

018475712 vn - 0.

2399254 - 0.

961792 - 0.

075679004 从上面可以看出 , OBJ 文件由一些文本行组 成 ,每一行文本都是由一些关键字开头 ,紧跟着后 面是该关键字所表示含义的具体参数.例如 ,以 vn 开头表示该行描述一个顶点法向量信息 ,后 面一定会跟三个 Double型的具体参数 ,分别描述 该顶点法向量的三维坐标信息. 表 1列出了 OBJ文件中主要的关键字及其具 体含义. 表1OBJ文件的关键字及其含义 Tab.

1 Key words and their meanings of the OBJ files 关键字 具体含义 关键字 具体含义 v 顶点集合坐标 vt 顶点纹理坐标 vn 顶点法向量 vp 参数空间顶点 p 点L线F面curv 曲线 surf 曲面 end 结束描述 O 对象名称 bevel 斜面插值 m tlib 材质库 trace_obj 光线追踪 顶点数据类型主要提供模型的以下参数 : (1)顶点的几何坐标 ( v x y z w) ;

(2)顶点的纹理坐标 ( vt u v w) ;

(3)顶点的法向量 (vn I j k) ;

(4)空间参数点的坐标 ( vp u v w) . 在OBJ文件中 ,点的坐标是按照右手坐标系 来确定的. 一个多边形的语法定义如下 : f v/vt/vn v/vt/vn v/vt/vn…,其中省略号部分 表示可以定义任意多边的多边形.其中 v表示顶 点的几何坐标 ;

vt表示顶点的纹理坐标 ;

vn表示顶 点的法向量.要注意的是 ,每个元素之间需用 / 符号隔开.例如 ,可用以下语句定义一个四边形 : f

1 /1 /1

2 /2 /2

3 /3 /3

4 /4 /4.如果只有顶点坐 标和法向量坐标 (不含纹理坐标 ) ,那就应该使用 / / 将坐标隔开.例如只定义顶点坐标和法向量 坐标的一个四边形 : f

1 / /1

2 / /2

3 / /3

4 / /4. 关于复杂几何体的 OBJ 文件格式 ,请参阅有 关资料. 2.

2 OBJ文件的输入处理 了解了 OBJ 文件的结构后 ,为了在程序中读 入模型 ,需要建立对应的模型数据结构. 程序中首先定义了 OBJ 文件对应的结构体 , 如对象顶点的结构体、 颜色列表结构体、 材质描述 结构体和总的模型描述结构体.代码如下 : / /顶点结构体定义 struct Vertex { int draw;

GLfloat x;

GLfloat y;

GLfloat z;

GLfloat nx;

GLfloat ny;

GLfloat nz;

int colorIndex;

颜色索引 int vertexIndex;

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题