- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
OGRE简析
OGRE简析(一)------OGRESampleBrowser框架解析“伟大航路,我把世界上的一切都放在了那里,有种的话就去领取吧”这是OGRE中文网的一则广告,我想,无论作为OGRE的学习者还是漫漫人生的一名旅人,这句话都是非常不错的激励语。放在这,是否能够让你隐约看到属于自己的新世界?简介Ogre(Object-oriented Graphics Rendering Engine)是一款优秀的C++开源图形渲染引擎。OGRE主要提供渲染引擎,但是在系统API,文件管理以及范例中都提供的非常丰富的接口和范例,在设计模式上也有很多考究,代码书写的也比较规范,无论是作为使用还是学习,都有着非常不错的价值。OGRE整体不算小,目前支持Windows、Linux、IPHONE、MAC、SYMBIAN五个平台,作为一个学习三维的新手来说,个人认为难度还算不小。当你运行范例框架时,在惊诧其界面绚丽之余,多少很有一点无从下手。而且OGRE也借助了不少第三方库,其范例界面俨然就是一个典型的Windows游戏界面,对于没有接触过的人们来说,和在.Net下的界面开发有很大的不同,这也加大的初学的难度。如果仅看一个一个的局部案例而缺乏对整体框架的理解,又难免有管中窥豹之遗憾。本文主要是针对范例框架部分的介绍,涵盖范例框架启动、显示和其后的UI界面操作部分。针对范例框架,分析了OGRE在初始化、创建窗口、鼠标键盘事件响应、资源加载以及范例加载、渲染显示这几个模块的技术实现,另外对这几块所用到的框架和设计模式进行了总结。算是对所学知识的总结,也方便接下来对案例所涉及的三维细节技术的研究。备注:OGRE下载编译参考SampleBrowser范例Ogre范例写的很简单,main函数中仅有如下两行OgreBites::SampleBrowsersb;sb.go();可见,范例完全封装在SampleBrowser类中,只需要调用一下go函数即可。但这两句话的效果却非常丰富,展现给我们一个交互式的范例展现界面,期间经过了root的初始化、窗口的创建、鼠标键盘事件的绑定和监听,系统资源的加载、范例程序的加载等,旅途可谓丰富多彩,期间无论是框架还是技术细节实现,都值得学习和推荐。不妨现在就开启此次旅途第一站。范例简析createRootOgre::Root* mRoot是SanmpleBrowser最重要的成员变量,和三维相关的渲染引擎、窗口、以及事件监听都是有其实现的,并完成整个过程的驱动,数据更新和渲染。SanmpleBrowse启动的第一步,就是Root类的构造,Root相当于OGRE的地基,渲染场景和引擎、以及各种文件系统的管理和加载都是在Root构造函数完成的,代码相对简单明了,如果对UGC插件机制了解的话,插件加载等方式也基本一致,相对难度不大。Root构造函数主要进行了:Manager初始化(DynLibManager插件管理、ArchiveManager文件管理、ResourceGroupManager资源文件管理、OverlayManager管理)具体文件系统的加载(普通文件、zip)窗口的初始化(mAutoWindow = 0)插件加载(loadPlugins(pluginFileName),渲染引擎的加载)其后会根据配置文件设置Root的属性,最关键的是设置渲染引擎类型(OpenGL、D3D)createWindow在Root构造之后,便开始窗口的初始化创建过程,其本质是调用Root函数的initialise()函数,返回RenderWindow的窗口指针。Initialize函数调用非常方便,但内部处理还是非常复杂,关键成员对象如下:Rendersystem(GLRenderSystem)GLSupport(Win32GLSupport)RenderWindow(Win32Window)Win32Context其中,Rendersystem就是GL的渲染引擎,Win32GLSupport负责屏幕相关的大小,位深,像素等信息的传递,而Win32Window则负责调用Win系统函数来实现窗口的创建,以及与OpenGL建立关联,而Win32Context则用来存储创建窗口后的句柄等信息,函数大致过程如下:mRoot-initialise(true, OGRE Sample Browser);- Rendersystem _initialise- mGLSupport-createWindow(Win32GLSupport)- Win32GLSupport::newWindow-Win32Window.create- mContext = newWin32Context(mHDC, mGlrc);Win32Window.create函数中,在Cr
您可能关注的文档
- ios7美化教程.doc
- 河南农业大学本科生毕业论文(设计).doc
- iothreads代码阅读笔记.doc
- IOS61修改运营商图标教程.doc
- 泵站施工技术交底720.doc
- 注册土木工程师(港口与航道工程)专业考试所使用的规范标准.doc
- 洪翔中学2015监理规划.doc
- iptable使用实例.doc
- Indiancamp原文及赏析.doc
- 活动类题目答题指导.docx
- 2025年低空通航产业基础设施建设与无人机产业融合发展报告.docx
- 数字藏品在虚拟现实领域的应用与市场前景分析.docx
- 智慧物流园区能源消耗监控与节能管理策略报告.docx
- 密室逃脱场景与虚拟现实技术在文化体验中的应用趋势分析.docx
- 2025年社区智慧安防系统升级改造与智慧社区建设标准制定.docx
- 2025年跨境贸易数字化平台对中小企业的影响与对策研究报告.docx
- 2025年医药冷链物流风险预防与温度监控技术选型研究报告.docx
- 跨境电商独立站流量分析与跨境电商可持续发展报告.docx
- 2025年线上音乐教育直播平台教学资源整合与共享.docx
- 数字孪生技术在智慧城市智慧社区公共设施维护2025年应用研究.docx
最近下载
- 出师表格理解性默写.doc VIP
- 电力用直流电源系统蓄电池组远程核容典型接线图、自动核容报告、双向DCDC装置、换流器技术要求.docx VIP
- 路面铣刨摊铺施工方案.pdf VIP
- 首届档案职业技能竞赛考试题库(含答案).docx VIP
- 建筑工程施工技术课件.ppt VIP
- 医院智慧服务分级评估二级实证材料通用模板(选择项部分)(2024版) .doc VIP
- 黑色冶金行业标准YB/T4001.1-2007(钢格栅板).docx VIP
- 旅游景区开发运营项目指标评估报告.docx VIP
- 2024北京市密云区辅警考试真题及答案.docx VIP
- 高速公路服务设施设计规范-2016-7-26标准.pdf VIP
文档评论(0)