您的当前位置:首页3DS与OBJ格式的三维模型文件在OpenGL中的输入与处理

3DS与OBJ格式的三维模型文件在OpenGL中的输入与处理

2023-12-20 来源:乌哈旅游


3DS与OBJ格式的三维模型文件在OpenGL中的输入与处理

【摘要】介绍了两种流行的三维文件的文件格式,即3DS文件与OBJ文件,并论述了如何将这些文件在OpenGL(Open Graphic Library)中进行输入和处理。重点为OBJ文件的文件格式及怎样利用程序代码来构建模型数据结构、绘制对象模型,然后运用OpenGL实现三维显示和交互操作,并应用于地形建模、城市规划以及虚拟现实等领域。

【关键词】三维模型文件;OpenGL;3DS文件;OBJ文件

1.前言

OpenGL(开放图形库)作为一个开放的三维图形软件包,它独立于窗口系统和操作系统,基于OpenGL开发的应用程序可以十分方便地在各种平台间移植。OpenGL的功能包括:建模、变换、颜色模式设置、纹理映射、位图显示以及双缓存动画等,而且借助Windows编程环境可以方便地对所构模型的人机交互进行控制。由于其开放性和高度重用性,OpenGL已经成为业界标准[1]。

虽然OpenGL提供了一些建立形体模型的命令,但OpenGL并没有提供更为复杂的三维模型的高级命令。在这种情况下,如果完全通过基本的几何图元—点、线、多边形来构建模型,势必十分困难;另一方面,由于3D图形技术的发展,形成了非常多的3D建模软件,这些软件建模一般比较方便,但又难以对其进行控制和交互。因此,如何有效地利用这些资源,对于快速开发可视化系统具有非常重要的意义。

作者在本文中对两种流行的三维模型文件的文件格式进行了介绍,并通过程序实现了文件的读取。把这些文件转换成OpenGL程序,再对其进行控制和交互操作。

2.3DS文件的输入和处理

3D Studio Max是Autodesk公司开发的用于制作三维动画的应用程序,它所生成的图形文件格式是3DS文件格式。该软件建模方便,且功能强大。因此,可以利用3D Studio Max对构建可视化系统提供重要帮助。这里介绍一种将3DS文件转换成OpenGL文件的简单方法。

这种转换需要使用一个工具View3DS.exe(网上可下载)。转换时将3DS文件拖到View3DS上,将弹出一个窗口,在窗口中会显示需要转换的3DS模型。在窗口上单击鼠标左键,会弹出一个菜单,选择Export OpenGL CCode菜单项,将会在当前目录中生成OpenGL程序,包括与模型名相同的.h和.gl二个文件[2]。

生成C代码后,将模型的.h和.gl文件拷贝到当前建立的工程目录中,并在初始化部分加入以下代码:

Model=GL3DS_initialize_modelName();

ModelName是指对应于3DS模型的名称,上面函数定义在生成的模型.h文件中。该函数运用了显示列表的技术,可以提高显示的速度。在模型绘制文件的开始部分,加入如下代码:

#include“modelName.h”

最后,在绘制模型部分加入glCallList (Model),用OpenGL显示列表技术实现图形的显示和重现。

3.OBJ文件的输入和处理

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

3.1 OBJ文件格式

OBJ文件既可以定义多边形模型,也可以定义自由曲面模型。多边形模型就是可以用点、线、面等基本元素构造的模型,而自由曲面模型是指使用参数曲面造型定义的模型。下面是某个OBJ文件的一部分

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

4.小结

本文简要介绍了3DS和OBJ两种3D文件格式在OpenGL中的输入和处理方法。现在3D文件资源十分丰富,要充分利用这些资源,文件格式的转换具有十分重要的意义。在转换为OpenGL程序后,就可以利用OpenGL的强大功能来进行三维分析和交互操作,其成果可以适用于地形建模、城市规划以及虚拟现实等许多领域。

参考文献

[1]郭景,雷鸣.3DSMAX模型在OpenGL中的读取与重现[J].计算机应用,2009,5.

[2]胡平平,刘建明,王晶杰.OpenGL显示3DS模型若干问题的研究[J].工程

图学学报,2010,8.

[3]向南平,江资斌,左廷英.OpenGL中Maya模型的应用[J].微型电脑应用,2009,18.

[4]王金峰,姚国清.三维模型文件中的OBJ格式在OpenGL中的输入与处理[J].电脑知识与技术,2011,4.

[5]陈炳发,陆楠,伍铁军.一种面向OpenGL的三维模型的转化方法[J].小型微型计算机系统,2010(25).

因篇幅问题不能全部显示,请点此查看更多更全内容