MFC构架下的OpenGL动画技术
介绍MFC框架下如何配置OpenGL绘制环境
第28卷第3期 应 用 科 技 Vol.28,№.32001年3月 Applied Science and Technology Mar.,2001 文章编号:1009-671X(2001)03-0031-02
MFC构架下的OpenGL动画技术
杨双华,王以伦,张立勋,曹彩霞
(哈尔滨工程大学机电工程学院,黑龙江哈尔滨150001)
摘 要:介绍了OpenGL动画的实现原理和在MFC构架下的编程要点,并利用此技术开发了水下机器人
①自动工具库的动画模拟软件。
关 键 词:OpenGL;MFC;动画技术中图分类号:TP39 文献标识码:A
OpenGLAnimationTechniqueYANGShuang-huaWANGCai-xia
(CollegeofMechanical&,University,Harbin150001,China)
Abstract:TheGLandtheprogramoutlinesbasedonMFCwereintroducedinthispaper,andthesimulationprogramofanunderwaterrobotautotoolkitwasdeveloped.Keywords:OpenGL;MFC;animation
0 引 言
开放图形程序库OpenGL是一种快速、高质量的3D图形软件,现已成为3D图形软件接口的工业标准。OpenGL仅仅是一个图形函数库而不是一种程序设计语言,不提供诸如程序流控制、窗口操作、人机交互之类的命令或函数,因此只有与其他程序设计语言(OpenGL的宿主语言)相结合才能发挥它的作用。微软基本类库MFC是PC机上Windows操作系统中广泛使用的应用程序框架,它提供可视窗口程序的界面和基本输入输出功能,弥补了OpenGL的不足。因此OpenGL与MFC相结合开发3D图形软件就成为优势互补的理想工具。
器可以运行在同一台计算机上,也可以运行在网络环境下的不同计算机上。OpenGL的库函数被封装在Opengl32.dll动态链接库中。从客户应用程序发布的对OpenGL函数的调用首先被Opengl32.dll处理,再传给服务器被Winsrv.dll进一步进行处理,然后传递给DDI,最后传递给视频显示驱动程序。图1
显示了这一过程。
1 OpenGL的实现原理
1.1 基于Windows的OpenGL体系结构
作为图形硬件的软件接口,OpenGL由几百条指令或函数组成。这些指令用来绘制如点、线、多边形等图形元素,并对这些图形元素进行着色、纹理、光照及动画等操作。OpenGL指令的解释模型是客户/服务器模式,即客户(用OpenGL进行绘制工作的应用程序)向服务器(OpenGL内核)发布命令,这些OpenGL命令则是由服务器来解释的。客户和服务
图1 基于Windows的OpenGL体系结构
1.2 OpenGL象素格式
帧缓冲器是OpenGL所能使用到的颜色缓冲
器、深度缓冲器、模板缓冲器和累积缓冲器的总和。为了有效使用这些缓冲器,必须指定某种象素格式。每个OpenGL窗口都有一种象素格式,它是给定窗口上实际格式的描述。在Windows98上采用数据结构
①收稿日期:2000-12-08 作者简介:杨双华(1970-),男,湖北孝感人,哈尔滨工程大学机电工程学院硕士研究生,主要研究方向:机电控制及自动化。
介绍MFC框架下如何配置OpenGL绘制环境
应 用 科 技 第28卷 32
PIXELFORMATDESCRIPTOR来传送象素的属性。
像素格式;添加成员函数Init()完成像素格式及着色描述表的初始化;为了对像素格式和着色描
述表进行有效管理,必须响应消息WM-CREATE和WM-DESTROY.
建立OpenGL视点 增加Windows消息WM-SIZE,在消息响应函数OnSize()中添加代码,建立视点、启动透视变换及建立透视体。
建立绘制函数在ToolKitView类中添加保护成员函数DrawScene(),在此函数中编写OpenGL的绘制语句,所有的OpenGL的绘制工作都可以通过它来完成;然后在绘图函数OnDraw()中调用DrawScene()即可。
SetTimer()函数,通过该函数的参数可以设置时间间隔,Windows将按此间隔值周期性地向程序发送消息。在消息响应函数OnTimer()中编写程序就可实现动画控制。水下机器人自动工具库的动画模拟界面如图2.可以通过界面菜单或键盘控制工具库的运动,并可通过通信接口监控水下机器人及其工具库的运动
。
这些属性使OpenGL明确:象素缓存是单缓存还是双缓存;象素数据的颜色模式是RGBA模式或颜色索引模式;颜色数据的位数;深度缓存的位数;模板缓存的位数;交叠面类型;掩膜的可见性等。1.3 OpenGL的着色描述表着色描述表RC是OpenGL命令给设备着色的入口,用来存储OpenGL的状态变量,以保持当前的状态设置。着色描述表一般包括:OpenGL驱动程序句柄、窗口客户区句柄、当前象素格式索引号与着色描述表相连的设备描述表句柄等。必须先获取RC,才能用OpenGL命令绘图。
2 OpenGL动画工作原理
画面,变化过程的技术。间,通过足够快的速度显示一系列单个帧以生成活动的感觉。OpenGL支持双缓存技术DB,该技术提供了一种生成平滑动画的机制。程序把帧存看成是两个视频缓存,在任意时刻只有两者中的一个内容能被显示出来。当前可见视频缓存称为前台视频缓存,不可见的正在画的视频缓存称为后台视频缓存。当后台视频缓存中的内容被要求显示时,OpenGL就会将它拷贝至前台视频缓存。显示硬件则不断地读可见视频缓存中的内容,并把结果显示在屏幕上。当完整的画面在后台视频缓存中画出后就调用SwapBuffers()函数,使其成为可见的视频缓存。在交换前后台视频缓存中的内容之前,应调用同步操作函数glFlush()或glFinish().
图2 水下机器人自动工具库动画模拟界面
3 MFC构架下的OpenGL动画编程要点
本文以水下机器人自动工具库动画软件简要
说明MFC构架下OpenGL动画编程的要点。
创建用户界面 利用MFC创建一个名为ToolKit的工程,基类选为CFormView类;因3D图形的绘制、光照、渲染、纹理及动画等都是利用OpenGL的命令或函数来实现的,故在ToolK2itView.h中添加“gl/gl.h”,”gl/glu.h”及”gl/glaux.h”等3个头文件;在Library中增加opengl32.lib,glu32.lib及glaux.lib等3个库文件。设置像素格式和管理着色描述表 本阶段主要完成像素格式的设置和着色描述表的管理。过程如下:添加成员函数bSetupPixelFormat()设置
4 结 论
本文分析了OpenGL动画技术的实现原理,并在MFC构架下利用OpenGL成功地开发了水下机器人自动工具库的动画模拟软件,实现了对水下机器人的可视化控制,对提高水下机器人的作业水平具有重要意义。
参 考 文 献
[1] 向世明.OpenGL编程与实例[M].北京:电子工业
出版社,1999.
[2] EugeneOlafsen.MFCVisualC++6编程技术内幕
[M].北京:机械工业出版社,2000.
…… 此处隐藏:1493字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [法律文档]苏教版七年级语文下册第五单元教学设计
- [法律文档]向市委巡视组进点汇报材料
- [法律文档]绵阳市2018年高三物理上学期第二次月考
- [法律文档]浅析如何解决当代中国“新三座大山”的
- [法律文档]延安北过境线大桥工程防洪评价报告 -
- [法律文档]激活生成元素让数学课堂充满生机
- [法律文档]2014年春学期九年级5月教学质量检测语
- [法律文档]放射科标准及各项计1
- [法律文档]2012年广州化学中考试题和答案(原版)
- [法律文档]地球物理勘查规范
- [法律文档]《12系列建筑标准设计图集》目录
- [法律文档]2018年宁波市专技人员继续教育公需课-
- [法律文档]工会委员会工作职责
- [法律文档]2014新版外研社九年级英语上册课文(完
- [法律文档]《阅微草堂笔记》部分篇目赏析
- [法律文档]尔雅军事理论2018课后答案(南开版)
- [法律文档]储竣-13827 黑娃山沟大开挖穿越说明书
- [法律文档]《产品设计》教学大纲及课程简介
- [法律文档]电动吊篮专项施工方案 - 图文
- [法律文档]实木地板和复合地板的比较
- 探析如何提高电力系统中PLC的可靠性
- 用Excel函数快速实现体能测试成绩统计
- 教师招聘考试重点分析:班主任工作常识
- 高三历史选修一《历史上重大改革回眸》
- 2013年中山市部分职位(工种)人力资源视
- 2015年中国水溶性蛋白市场年度调研报告
- 原地踏步走与立定教学设计
- 何家弘法律英语课件_第十二课
- 海信冰箱经销商大会——齐俊强副总经理
- 犯罪心理学讲座
- 初中英语作文病句和错句修改范例
- 虚拟化群集部署计划及操作流程
- 焊接板式塔顶冷凝器设计
- 浅析语文教学中
- 结构力学——6位移法
- 天正建筑CAD制图技巧
- 中华人民共和国财政部令第57号——注册
- 赢在企业文化展厅设计的起跑线上
- 2013版物理一轮精品复习学案:实验6
- 直隶总督署简介




