- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于MFC的Ogre三维图形编程框架的设计.pdf
基于MFC的Ogre三维图形编程框架的设计木
瞿德清 罗月童王晓静
合肥工业大学计算机与信息学院可视化与协同计算(VCC)研究室,合肥230009
摘要:Ogre是目前国际流行的面向对象3D渲染引擎,具有强大的三维渲染功能。然而Ogrc在
用程序框架的基础上,实现了基于MFC的Ogre三维图形编程框架,用户可以使用此框架轻松开发出
、Mndows平台下具有友好交互界面的Ogrc三维图形应用程序。
MFC应用程序框架
关键词:Ogre
1 09re简介
Ogre(Obiect.OrientedGraphicsRendering
使用灵活的3D引擎。它的目的是让开发者能更方便和更直接地开发基于3D硬件设备的应用程序或游戏。
接口及其实现。
研究开发基于MFC的Ogre应用程序框架,以简化Ogre在Windows平台下交互界面的设计。
2基于Win32的09re应用程序框架分析
类和EXampleFr帅e“stener类的实现。
2.1ExampleAppIication类
以及开发方法。
Ex锄pleApplication类中定义了以下六个重要数据成员:指向根节点的指针mOgreRoot、指向摄像机
的指针mC锄em、指向场景管理器的指针mSceneManager、指向帧监听器的指针m
ResourcePath。
渲染窗口的指针mRenderW.mdow、指定资源文件路径m
。作者简介:瞿德清(1986-),男,安徽省合肥人,合肥工业大学硕士研究生,主要研究领域为计算机图形学与可视化;罗月童
(1978-),男,安徽青阳人,工学博士,硕士生导师,主要研究方向为计算机图形学、科学计算可视化和图像处理等;王晓静
(1985一),女,辽宁北票人,合肥工业大学硕士研究生,主要研究领域为计算机图形学与可视化.
(createFr锄eListcner)。
2.2ExampleFrameListener乡色
0riented
Ogre的l/o操作通过调用另一个开源类库OIS(Objectlnput
的处理方法有两种模式,分别是立即模式和缓冲模式。其中立即模式适合于3D场景的漫游,而缓冲模式适
系统的I/o输入,并对场景做出控制反应。
现对场景物体的移动,旋转,缩放等交互控制。
3MFC下的Ogre应用程序框架实现
交互界面开发的时间,加快O肿应用程序的开发速度。+
开发MFC框架下的Ogre程序的核心是如何传递句柄、渲染窗口以及进行帧监听,以下分为准备工作,
渲染功能的实现,帧监听功能的实现三个步骤具体介绍。
3.1准备工作
首先创建名为OgreMFC的ⅧCsDI程序。为了能够使用O伊e提供的库函数,需要在预编译头文件
件夹。
为避免09re和MFC之间内存管理的冲突,需要进行以下三项设置:将常规选项卡中的“MFC的使用”
d.1ib”。
接器”的“附加依赖项”中添加“OgreMain
3.2渲染功能的实现
在MFC中通过COgreMFCApp和CO铲eMFCView两个类来实现其功能。
3.2.1
COgreMFCApp类实现
类中创建指向根结点的指针m
询可用的渲染系统(RenderSystem),使用其中的0penGL渲染系统、启用该渲染系统三大步骤。
3.2.2
COgreMFCView类实现
成渲染前的准备工作。
保存cOgreMFcView类的旬柄对象,并将其作为窗口对象m
创建帧监听器(createFr锄eListener)一系列功能。
染功能。OnPaint函数如下:
Void
COgreMFCView::OnPaint(){
CPaintDC
dc(t11is);
if(m ∥判断是否是第一次执行
firStDraw){
mfirstDraw=false; //第一次执行后则置为faIse
Setup();//渲染前的准备
文档评论(0)