教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 法律文档 >

MFC构架下的OpenGL动画技术

来源:网络收集 时间:2026-02-24
导读: 介绍MFC框架下如何配置OpenGL绘制环境 第28卷第3期 应 用 科 技 Vol.28,№.32001年3月 Applied Science and Technology Mar.,2001 文章编号:1009-671X(2001)03-0031-02 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字,全部文档内容请下载后查看。喜欢就下载吧 ……
MFC构架下的OpenGL动画技术.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/1418084.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)