基于opengl的三维曲面数据场动态显示(1)

基于opengl的三维曲面数据场动态显示(1)

ID:30639989

大小:18.59 KB

页数:7页

时间:2019-01-02

基于opengl的三维曲面数据场动态显示(1)_第1页
基于opengl的三维曲面数据场动态显示(1)_第2页
基于opengl的三维曲面数据场动态显示(1)_第3页
基于opengl的三维曲面数据场动态显示(1)_第4页
基于opengl的三维曲面数据场动态显示(1)_第5页
资源描述:

《基于opengl的三维曲面数据场动态显示(1)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、从本学科出发,应着重选对国民经济具有一定实用价值和理论意义的课题。课题具有先进性,便于研究生提出新见解,特别是博士生必须有创新性的成果基于OpenGL的三维曲面数据场动态显示(1)摘要在大数据量条件下,实时动态显示三维曲面较困难,其关键在于提高三维图形数据处理和图形绘制速度。通过对基于图形工业标准OpenGL实现三维曲面动态显示的原理和方法的讨论,提出采用OpenGL的双缓存、显示列表技术,大幅度提高了图形数据处理和刷新速度,保证了每帧数据图形绘制的连续性和完整性,成功实现了三维曲面数据场实时动态显示。

2、关键词OpenGL三维曲面动态显示1引言在某三维数据场中,数据随时间的变化而发生变化,为直观观察数据随时间变化的态势,需对数据场的变化实时动态显示。利用网格曲面显示三维数据场是一种直观的方法,但需经过数据插值、投影、曲面拼接、消隐等处理后方可绘制图形,计算量较大。在数据量较大的情况下,实时动态显示三维曲面图形较困难,其关键在于提高每帧图形处理和绘制刷新速度,以保证每帧三维曲面显示时的连贯性和完整性。OpenGL是性能卓越的图形处理工具,采用OpenGL双缓存和绘图操作予编译技术,较好解决了三维图形数据处

3、理和绘图刷新速度问题。利用VisualC++调用OpenGL的三维图形编程接口成功实现了大数据量的三维曲面图形的实时动态显示。2基于OpenGL的三维曲面动态显示原理基于OpenGL三维曲面图形显示原理课题份量和难易程度要恰当,博士生能在二年内作出结果,硕士生能在一年内作出结果,特别是对实验条件等要有恰当的估计。从本学科出发,应着重选对国民经济具有一定实用价值和理论意义的课题。课题具有先进性,便于研究生提出新见解,特别是博士生必须有创新性的成果OpenGL是独立于操作系统的开放式三维图形软件接口。其主要

4、功能是将三维曲面通过顶点序列或像素点进行描述,并进行相应的透视、光照、纹理操作,最终转换成帧缓存中的图像数据,利用该图像数据进行三维曲面图形的着色。三维曲面图形显示归纳为以下几个步骤:在三维场景中建立曲面绘制的模型。选用插值方法、参数曲面函数,计算曲面控制点,进行曲面重构;设置视点和透视方式;进行消隐、光照、纹理、明暗处理;绘制场景,输出到屏幕窗口。图1三维曲面图形显示基本流程利用双缓存实现动态显示原理三维曲面动态显示需要连续地绘制三维曲面并显示场景,用不同的曲面数据刷新屏幕视窗。在OpenGL中利用双

5、缓存技术,分配两个帧缓存区,在连续显示三维曲面时,一个帧缓冲区中的数据执行绘制曲面命令的同时,另一个帧缓存区中的数据进行图形显示。当前可见视频缓存称为前台视频缓存,不可见的正在绘图的视频缓存称为后台视频缓存。当后台视频缓存中的数据要求显示时,OpenGL就将它拷贝至前台视频缓存,显示硬件不断地读可见视频缓存中的内容,并把结果显示在屏幕上。应用双缓存,每一帧三维曲面只在绘制完成之后才显示出来,所以观察者可以看到每一帧完整三维曲面,而不是曲面的绘制过程。使用双缓存实现三维曲面动态显示的步骤如下:设置Open

6、GL窗口显示属性为双缓存机制:auxInitDisplayMode(AUX_DOUBLE

7、AUX_RGBA);课题份量和难易程度要恰当,博士生能在二年内作出结果,硕士生能在一年内作出结果,特别是对实验条件等要有恰当的估计。从本学科出发,应着重选对国民经济具有一定实用价值和理论意义的课题。课题具有先进性,便于研究生提出新见解,特别是博士生必须有创新性的成果利用OpenGL基本绘图命令绘制三维曲面;一帧曲面绘图结束后缓存拷贝,切换缓存:auxSwapBuffers();SwapBuffers(wglGetC

8、urrentDC());2.利用显示列表提高程序运行效率显示列表是一组预先存储起来留待以后调用的函数语句。调用显示列表时就按次序执行其中的函数。显示列表将反复执行的绘图操作以编译好的命令方式进行存储,设计成命令的高速缓存,而不是动态的数据库缓存,所以可以优化程序运行性能。实现和调用显示列表的方法:创建列表:voidglNewList(Gluintlist,Glenmmode);voidglBegin(Glenummode);voidglEnd(void);voidglEndList();调用列表:voi

9、dglCallList(Gluintlist);3基于OpenGL的三维曲面动态显示实现在使用VisualC++的MFCAppWizard建立应用程序框架后,生成了多个类,与OpenGL编程相关的类是视图类,主要的显示任务都在其中完成。基于OpenGL绘图的基本设置设置必要的编译链接环境OpenGL的图形编程接口包括的主要函数和库函数被封装在动态链接库中,因此在项目中要添加、和三个库。同时在应用程序的视类头文件中加入OpenGL头文件说明:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。