欢迎来到天天文库
浏览记录
ID:19916984
大小:49.00 KB
页数:3页
时间:2018-10-07
《当前基于opengl技术的三维建模设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、当前基于OpenGL技术的三维建模设计OpenGL即开放性图形库,它是一种高性能的开放式且功能强大的3D图形库,具有几百个指令和函数。本文讨论了两种将常见三维模型转进OpenGL中实现交互的方法,首先对3DS文件进行分析,然后给出转化的思路。从而将三维建模软件产生的三维模型移植到三维场景中,实现仿真。 OpenGL的英文全称是“OpenGraphicsLibrary”即“开放的图形程序接口”,由于其良好的可移植性和跨平台性,已逐渐成为高性能图形开发和交互式视景仿真的国际图形标准。它是一种高性能的开放式且功能强大的3D图形库,具有几百个指令和函数。使用这些
2、指令和函数可以构造出高质量的静止物体模型和动态图像,并且可以实现对模型的实时交互操纵过程。但是OpenGL中并没有提供建模的高级命令,实在现过程也是通过基本的几何图元点、线和多边形来建立三维立体模型的,过程比较繁琐,编程量较大。 现在有很多优秀的三维建模软件如3DSMAX,AUTOCAD等,都可以根据对象很方便地建立物体模型,且不需要编程便可很直观的构造模型,模型的外观更为精细。在OpenGL中使用三维模型一种比较好的方法是先用三维建模软件建立模型,再把这些模型转进OpenGL程序,对其进行控制。本文主要讨论将三维模型转进OpenGL程序常见的两种方法。
3、 一、模型的三维数据格式 存储三维图形数据的文件格式有很多种,其中比较常见的有:obj格式、3DS格式、onTriangleList)。顶点集是顶点及其法向量的列表,多边形中的顶点将用在下标表示,OpenGL将这个数组视为一个顶点数组。这里存储的法向量是每一个顶点的法向量,而不是多边形的法向量。多边形列表包括一些列的材质,一个材质由这样一组属性组成:漫反射颜色、光照度、和纹理映射等。和每一种材质相对应的是一组三角形,每一个三角形由一组三元整数组表示,它们分别是三角形每个顶点在顶点集中的下标。相关三角形列表和顶点集具有相同的大小,它是一个指向多边形列
4、表每一个包括该顶点的三角形的链表。相关三角形列表被用来建立每个顶点的法向量。有了模型各种属性的信息,我们就可以在创立显示列表中根据这些指针变量中存进的相应数据来再现模型。在创建新的显示列表(g1NewList)中,使用glBegin(GL_TRIANGLES)和glEnd()函数来绘制模型,所有具体属性的绘制均在这两个函数之间实现。对于每一个面的绘制,都是先赋好材质,再定义法线和渲染纹理,这些工作都完成后,就可以通过绘制顶点来绘制面了。程序中判定是否具有纹理部分省略,实在现过程和其它属性类似。然后在需要绘制模型的时候使用函数调用即可。 在OpenGL程序
5、进3DS模型采用了根据3DS文件的数据格式来编写OpenGL程序来读取数据信息,在程序中天生模型的办法,这种方法在操纵上实际是比较繁琐的,编程量很大。 (二)运用软件将模型转化为cpp文件,然后转进OpenGL程序 有一些现成的软件可以专门用来转换三维模型。3DExploration便是其中的一种。3DExploration也是一种专业的图像技术软件,它可以读进很多建模软件所建的模型文件,并也具有渲染环境和制作动画的功能。 我们使用3DExploration软件读进模型的3DS文件,通过另存为将其转化成能为OpenGL所用的cpp文件。这样我们就较轻
6、松的拥有了表示模型各种参数的代码,而不需要自己编写,从而大大减轻了编程的工作量。终极转化后的文件是由大量的浮点数组成,这些浮点数包含了模型面、材质、顶点、法线和纹理等的全部信息,并按照这些属性分类。然后我们在OpenGL程序中专门定义一个读取模型参数的类,在此类中实现读取相应的浮点数的函数的所有功能,再在主程序中调用。这段代码运行后,这些变量中就会存进对应表示相应属性的数据。最后再编程遍历所有的顶点,法线,纹理,从而天生模型。 通过这种方法实现3DS格式模型的导进,编程简单,但是缺点也很明显,天生的.cpp文件体积较大,无论是存储或传输都很不方便。 将
7、三维模型转进OpenGL程序以实现人机交互控制在工程、游戏等领域有着广泛的应用,非凡是随着虚拟现实技术的发展,更显现出它的重要意义和实用价值。本文结合目前的主流技术对三维模型转进OpenGL程序的方式进行了一定的探究和探索。
此文档下载收益归作者所有