2012OgreLearn.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Ogre learning创建一个简单的Ogre应用程序自带的demo都是从官方的ExampleApplication继承而来,隐藏了好多细节。因此想要比较好的理解Ogre的整个流程,最好是从零开始创建一个程序。创建一个Root的实例,进行窗口配置Root* root = new Root();Root* root = new Root(“plugins.cfg”);Root* root = new Root(“plugins.cfg”, “ogre.cfg”);Root* root = new Root(“plugins.cfg”, “ogre.cfg”, “ogre.log”);Root* root = new Root(“”, “”);Root-showConfigDialog();用于显示配置窗口,如下所示。如果已经配置过,并有保存。则可以用Root-restoreConfig();来读取配置,可跳过窗口这步。所以可以这么写:if (pOgreRoot-restoreConfig()){pOgreRoot-showConfigDialog();}创建渲染窗口一种是让Ogre自动帮你创建渲染窗口。pOgreRoot-initialise(true,ZHs Ogre Window);RenderWindow* pRenderWindow = pOgreRoot-getAutoCreatedWindow();一种是手动创建场景管理器旧式:mSceneMgr = mRoot-createSceneManager(ST_GENERIC, “ExampleSMInstance”);新式:SceneManager* pSceneManager = pOgreRoot-createSceneManager(TerrainSceneManager);创建摄像机与视口// create cameraCamera* pCamera = pSceneManager-createCamera(MainCamera);pCamera-setPosition(Vector3(0, 0, -300));pCamera-lookAt(Vector3(0, 0, 800));// set viewportViewport* vp = pRenderWindow-addViewport(pCamera);vp-setBackgroundColour(ColourValue(0, 200, 0));渲染自动渲染:pOgreRoot-startRendering();手动渲染:while(keepRendering){//在这里处理引擎使用的网络消息。? //在这里处理引擎使用的输入消息。?//根据消息更新场景管理状态。?//根据新的场景管理状态,渲染下一帧。root-renderOneFrame();?//检查是否需要退出渲染循环//注意:NextMessageInQueue()这个函数只是为了便于解释程序含义//而虚构出来的函数——Ogre引擎中并没有实现它。If(NextMessageInQueue() == QUIT){ keepRendering = false;}}完整的程序:#include Ogre.h#pragma comment(lib, OgreMain_d.lib)using namespace Ogre;int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd ){// initialize applicationRoot* pOgreRoot = new Root(plugins.cfg, ogre.cfg);// read config fileif (!pOgreRoot-restoreConfig()){pOgreRoot-showConfigDialog();}// create rendering windowpOgreRoot-initialise(true,ZHs Ogre Window);RenderWindow* pRenderWindow = pOgreRoot-getAutoCreatedWindow();pRenderWindow-setAutoUpdated(true);// create scene managerSceneManager* pSceneManager = pOgreRoot-createSceneManager(TerrainSceneManager);// create cameraCamera* pCamera = pSceneManager-creat

文档评论(0)

UnHTNCirsq + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档