b基于mfc的opengl三维图形类的创建

b基于mfc的opengl三维图形类的创建

ID:34473027

大小:286.93 KB

页数:4页

时间:2019-03-06

b基于mfc的opengl三维图形类的创建_第1页
b基于mfc的opengl三维图形类的创建_第2页
b基于mfc的opengl三维图形类的创建_第3页
b基于mfc的opengl三维图形类的创建_第4页
资源描述:

《b基于mfc的opengl三维图形类的创建》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5卷第17期2005年9月科学技术与工程Vol.5No.17Sep.20051671-1815(2005)17-1309-04ScienceTechnologyandEngineering@2005Sci.Tech.Engng.基于MFC的OpenGL三维图形类的创建徐俊波李晓红(哈尔滨工程大学哈尔滨150001)摘要介绍了使用OpenGL编程技术的相关知识及工作流程,重点运用面向对象编程的思想和基于MFC封装OpenGL功能的可重用图形类的设计。关键词OpenGLMFC面向对象三维图形类中图法分类号TP391.41;文献标识码BOpenGL是目前比较完善的三

2、维图形标准,也法向量、RGBA颜色值、纹理坐标等。这些数据沿独立于窗口系统、操作系统和硬件系统的图形开发箭头方向传输,求值器将这些数据转换为顶点并对环境。但作为图形软件接口,它仅是一个包含120每一个顶点执行相应的计算,随后光栅化为片元并多个基本图形函数组成的图形库,缺乏面向对象编送人帧缓存;像素数据,其处理方式是与几何数据不程能力,也不适应当前流行的软件设计思想。同时,同的。它将从内存中读出的像素数据经过像素操作在MFC环境中使用OpenGL绘制图形时,它将对后送人纹理内存中进行组装,或者把这些结果数据像素结构描述、创建和清除渲染场景等代码都添加光栅化为片元后

3、送人帧缓存,而从帧缓存中读出的到视类中处理,不利于修改和维护,不利于软件的重数据经过像素操作后被送人处理器内存中。同时,复使用,也不符合软件编程习惯。VC+十中的OpenGL中的所有数据,包括几何数据和像素数据,都可以存储在显示列表中或者被立即处理,存储在MFC包含了强大的基于Windows的应用框架,提显示列表中的数据可根据不同情况沿箭头方向进行供了丰富的窗口和事件管理函数,而且已经成为当前比较流行的工作平台。因此,本文提出在MFC相应处理。的框架下构造OpenGL图形类来封装、重载Open-像素数据几何数据GL函数或代码解决上述问题。1OpenGLOpenG

4、L最初是SGI公司为其图形工作站(I-RISGL)开发的,其目的是将用户从具体的操作系统和硬件环境中解放出来,可以完全不去理解这些系统的结构和指令系统。后来,SGI对IRISGL改进以使其适应多种不同的平台,从而产生了性能优尹..:1越,具有跨平台和高度可重用性的OpenGL,Open-....GL的工作流程如图1所示〔‘〕。……图1中,几何数据是由一组顶点和它所描述的1..图元组成,顶点数据除了包括顶点坐标之外,还包含…2005年5月17日收到图1OpenGL的工作流程第一作者简介:徐俊波,男,1971年生,黑龙江省肇州县人,大学本科,工程师,研究方向:计算机

5、应用。1310科学技术与工程5卷为了利用MFC的强大功能来实现对OpenGL出来。这样划分的优点在于代码更具有独立性,能三维图形的绘制,Windows提供了OpenGL32.够提高代码的重复利用率,也便于对类进行维护和DLL和GLU32.DLL动态链接库,VisualC++包功能扩充,下面将具体介绍这几个类的设计与实现。含了GL库(opengl32.lib)、辅助库(glaux.lib)和实用库(glu32.lib)。另外,OpenGL1.1版本中加强并引人了一些新功能,如:在增强元文件中包含OpenGL调用,提高顶点数组的新特性,提高顶点位置、法线、颜色及色彩

6、指数、纹理坐标、多边形边缘标识的传输速度,引人新的纹理特性。OpenGL1.5又新增了”OpenGLShadingLanguage",该语言是"OpenGL2.0”的底核,用于着色对象、顶点着色以及片断着色技术的扩展功能,这些都为在计算机上实现高品质、交互式三维图像开发提供了良好的便图2类COpenGLView结构利条件〔2,3]。2.1类COpenGLDC设计2封装OpenGL功能C++类的设计COpenGLDC中封装了在MFC环境下设置根据OpenGL的功能,本文设计一些封装了OpenGL环境和调用OpenGL绘图的功能,如同使OpenGL相关功能的C++类

7、,并通过对这些类的用类CDC进行GDI(GraphicDeviceInterface)图形操作,使得在基于MFC环境中操作OpenGL更加绘制一样,类COpenGLDC定义如下。方便。另外,通过封装部分标准OpenGL函数代码classCOpenGLDC实现参数化抽象,进行函数重载,使在同一个作用域{private;内的若干个参数特征不同的函数使用相同的函数名HWndmhWnd://关联窗口句柄称,这样就可以使所设计的类的功能具有较强的功HDCmhDC;//设备场景句柄能性和相对的独立性。HGIRCmhRC://渲染环境句柄在MFC视图类Mew的基础上派生一个封

8、装public;了Ope

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

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

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