有人说没有开过车就造不出好车,没有有过游戏引擎就写不出好的引擎。

所以最近开始学习OGRE,网上很多资料,但是又有点让人无从下手。最后决定还是从pro ogre 3d programing开始看,是中文翻译的版本。

看到第五章,里面有个创建地形的例子,可能由于打字或者是版本的问题,电子书上面贴的代码有点问题,修改了一下才能运行。

用ogre pplication Wizard生成代码修改void yourclass::createScene()

createScene

void yourclass::createScene(void){// Set ambient light

        mSceneMgr->setAmbientLight(Ogre::ColourValue(0.5, 0.5, 0.5));

// Create a light

        Ogre::Light* l = mSceneMgr->createLight("MainLight");

// Accept default settings: point light, white diffuse, just set position

        l->setPosition(20,80,50);

        Ogre::ColourValue fadeColour(0.93, 0.86, 0.76);

        mSceneMgr->setFog( Ogre::FOG_LINEAR, fadeColour, .001, 500, 1000);

        mWindow->getViewport(0)->setBackgroundColour(fadeColour);

        std::string terrain_cfg("terrain.cfg");

        mSceneMgr -> setWorldGeometry(terrain_cfg);

// Infinite far plane?

if (mRoot->getRenderSystem()->getCapabilities()->hasCapability(Ogre::RSC_INFINITE_FAR_PLANE))

        {

            mCamera->setFarClipDistance(0);

        }

// Define the required skyplane

        Ogre::Plane plane;

// 5000 world units from the camera

        plane.d = 300;

// Above the camera, facing down

        plane.normal = -Ogre::Vector3::UNIT_Y;

        mSceneMgr->setSkyPlane(true, plane, "Examples/CloudySky");

// Set a nice viewpoint

        mCamera->setPosition(707,250,528);

        mCamera->lookAt(0, 0, 0);

}

还有一点需要注意:还需要修改void BaseApplication::chooseSceneManager(void)

默认的场景管理器(mSceneMgr = mRoot->createSceneManager(Ogre::ST_GENERIC))似乎不支持从地形配置文件读取地形。

弹以出下错误

代码修改成

void BaseApplication::chooseSceneManager(void)

void BaseApplication::chooseSceneManager(void){// Get the SceneManager, in this case a generic one//mSceneMgr = mRoot->createSceneManager(Ogre::ST_GENERIC);    mSceneMgr = mRoot->createSceneManager(Ogre::ST_EXTERIOR_CLOSE);//mSceneMgr = mRoot->createSceneManager("OctreeSceneManager");

}

才正确:

转载于:https://www.cnblogs.com/wonderKK/archive/2012/03/25/2416593.html

OGRE学习笔记(一)通过例子了解场景管理器---------地形创建相关推荐

  1. Ogre 场景管理器

    转自:http://blog.sina.com.cn/s/blog_694aab1b0100rdvm.html 在通常的情况下,Ogre的场景管理器会负责处理以下事情: ·在场景中创建和放置活动物体. ...

  2. ogre的场景管理器

    原文地址:ogre的场景管理器作者:zhouwenjie 在通常的情况下,Ogre的场景管理器会负责处理以下事情: ·在场景中创建和放置活动物体.灯光以及摄像机,并维护他们的在场景图中的周游和变换. ...

  3. 转:OGRE场景管理器介绍

    一个场景代表在虚拟世界中显示的物品.场景可以包括静态几何体(比如地形或者室内),模型(比如树.椅子等),光和摄像机.场景有下面种类.室内场景:可能由走廊.有家具的屋子和挂着装饰品的墙组成.室外场景:可 ...

  4. ogre 学习笔记 - Day 7

    ogre 学习笔记 - Day 7 [Sample_ParticleFX] 粒子效果 void setupParticles(){ParticleSystem::setDefaultNonVisibl ...

  5. 开源3D图形渲染引擎OGRE学习笔记

    参考资料: 电子书:<Pro OGRE 3D Programming>中文翻译本 官方wiki: http://www.ogre3d.org/wiki/index.php/Main_Pag ...

  6. MySQL学习笔记07【事务、用户管理和权限管理】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

  7. PMBOK(第六版) 学习笔记 ——《第六章 项目进度管理》

    系列文章目录 PMBOK(第六版) 学习笔记 --<第一章 引论> PMBOK(第六版) 学习笔记 --<第二章 项目运行环境> PMBOK(第六版) 学习笔记 --<第 ...

  8. Windows内存管理学习笔记(二)—— 物理内存的管理

    Windows内存管理学习笔记(二)-- 物理内存的管理 物理内存 实验一:理解MmNumberOfPhysicalPages MmPfnDatabase _MMPFN 物理页状态 六个链表 实验二: ...

  9. linux系统管理学习笔记之八---进程与作业的管理

    linux系统管理学习笔记之八---进程与作业的管理 2010-01-05 13:00:42 标签:linux 进程 [推送到技术圈] 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 ...

  10. (实验37)单片机,STM32F4学习笔记,代码讲解【内存管理实验】【正点原子】【原创】

    文章目录 其它文章链接,独家吐血整理 实验现象 主程序 内存池初始化程序 代码讲解 其它文章链接,独家吐血整理 (实验3)单片机,STM32F4学习笔记,代码讲解[按键输入实验][正点原子][原创] ...

最新文章

  1. 【shell 脚本】删除 由windows传入linux含有的 ^M
  2. mysql rollback函数_PHP mysqli_rollback() 函数_程序员人生
  3. Caffe 编译安装
  4. 世界级投资大师们的至理名言
  5. [JavaWeb-MySQL]约束(非空约束,唯一约束,主键约束,外键约束_级联操作)
  6. 【数据大神必看】微信又添新功能!这个微信群可以学英语,而且全程免费
  7. Linux系统编程38:多线程之什么是线程同步以及条件变量函数
  8. 社交媒体广告看不出来?Instagram加标签让你一目了然
  9. 高质量的设计灵感社区网站
  10. Kotlin入门(24)如何自定义视图
  11. 网络知识===wireshark抓包,三次握手分析
  12. OpenCV_(Laplacian Transform to find the edges)图像拉普拉斯变换查找边缘 图像识别
  13. 2 EDA技术实用教程【Verilog 语句基本类型】
  14. CISSP工资百万, 认证培训2899美元,是不是太高?
  15. excel合并两列内容_一起来学习Excel表格两列合并一列的两种方法
  16. gcc/g++编译错误Assembler Error
  17. Mysql DBA(一)
  18. Mac上Elasticsearch 安装及PHP使用
  19. Oracle中的dual
  20. 如何添加桌面便签?在桌面上添加便签的方法

热门文章

  1. 中级软件设计师下午试题(百度文库 )
  2. java 泛型的类型擦除和桥方法
  3. 【转】SpringMVC整合websocket实现消息推送及触发
  4. JMS-activeMq点对点模式
  5. 2016 网易校招内推C/C++第二场8.6
  6. ((ios开发学习笔记 十二))Nib加载的方式实现自定义TableView
  7. LE SHAN GIANT BUDDHA and LINGYUN TEMPLE
  8. Obj-C 实现设计模式 -- Adapter
  9. AI YOLO目标检测算法
  10. 简单的实现HTTP密码验证登陆