编辑: 笔墨随风 | 2013-01-08 |
2005 -
12 -
19 文章编号 : 1001―1749 (2007) 01―0083―04 几种三维模型文件在 OpenGL中的输入与处理 黎华1,
2 , 肖伟3(1.
中国科学院 广州地球化学研究所 , 广州 510640;
2. 中国科学院 研究生院 , 北京 100039;
3. 国家地质实验测试中心 , 北京 100037) 摘要:介绍了一些当今比较流行的三维文件的文件格式 ,如3DS文件、 OBJ 文件、 WRL 文件 等 ,并论述了如何将这些文件在 OpenGL (Open Graphic L ibrary)中进行输入和处理.重点介绍了 OBJ文件的文件格式及怎样利用程序代码来构建模型数据结构、 绘制对象模型 ,然后运用 Open2 GL的强大功能实现三维显示和交互操作 ,并应用于地形建模、 城市规划 ,以及虚拟现实等领域. 关键词 : 三维模型文件 ;
OpenGL;
3DS文件 ;
OBJ文件 ;
WRL文件 中图分类号 : TP
31111 文献标识码 : A
0 前言 OpenGL即开放图形库实际上是一个开放的三 维图形软件包 ,它独立于窗口系统和操作系统 ,以 它为基础开发的应用程序可以十分方便地在各种 平台间移植.OpenGL具有许多实用、 高效的功能 , 如 :建模、 变换、 颜色模式设置、 光照与材质设置、 纹 理映射、 位图显示以及双缓存动画等 ,而且借助 W indows编程环境可以方便地对所构模型的人机 交互进行控制.由于其开放性和高度重用性 ,现在 已经成为业界标准 [
1 ] . 虽然 OpenGL 的辅助库中提供了一些复杂的 形体模型的命令 ,但OpenGL并没有提供更为复杂 的三维模型的高级命令.在这种情况下 ,如果完全 通过基本的几何图元 ― 点、 线、 多边形来构建模型 , 势必十分困难 ;
另一方面 ,由于 3D 图形技术的发 展 ,形成了非常多的 3D 建模软件 ,这些软件建模 一般比较方便 ,但又难以对其进行控制和交互.因此,如何有效地利用这些资源 ,对于快速开发可视 化系统具有非常现实的意义. 作者在本文中对几种比较流行的三维模型文 件的文件格式进行了介绍 ,并通过程序实现了文件 的读取.把这些文件转换成 OpenGL程序 ,再对其 进行控制和交互操作.
1 3DS文件的输入和处理 3D Studio是Autodesk公司开发的一套用于在 微机上制作三维动画的应用程序 ,它所生成的图形 文件格式是 3DS文件格式.该软件建模方便 ,且 功能强大.因此 ,如何利用这些丰富的资源来构建 可视化系统就显得很重要. 关于如何用 OpenGL 读取和操作 3DS文件的 方法 ,很多文献 [ 1,
2 ] 都有详细的论述.在这里介绍 一种将 3DS文件转换成 OpenGL文件的方法. 这种转换需要使用一个工具 V iew3DS . exe (网 上可以找到该工具 ) ,在命令行中输入模型文件的 名称 ,如View3DS . exe model Name. 3ds,或者直接将 3DS文件拖到 V iew3DS上.将弹出一个窗口 ,在窗 口中会显示需要转换的 3DS模型.在窗口上单击 鼠标左键 ,会弹出一个菜单 ,选择 Export OpenGL C Code菜单项 ,将会在当前目录中生成 OpenGL 程序,包括与模型名相同的. h和. gl二个文件. 生成 C代码后 ,将模型的. h和. gl文件拷贝到 当前建立的工程目录中 ,并在初始化部分加入以下 代码 : Model = GL3DS_initialize_modelName () ;
ModelName是指对应于 3DS模型的名称 ,上面 函数定义在生成的模型. h文件中.该函数运用了 显示列表的技术 ,可以提高显示的速度.在模型绘 制文件的开始部分 ,加入如下代码 : #include modelName. h 最后 ,在绘制模型部分加入 glCallList (Mod2 el) ,用OpenGL 显示列表技术实现图形的显示和 重现.