转:OGRE场景管理器介绍
一个场景代表在虚拟世界中显示的物品。场景可以包括静态几何体(比如地形或者室内),模型(比如树、椅子等),光和摄像机。场景有下面种类。室内场景:可能由走廊、有家具的屋子和挂着装饰品的墙组成。室外场景:可能由山,树木,微微摇动的草地,飘着云彩的天空组成。Ogre提供了一套不同的场景管理器,每一种特别支持某种场景,本文档将列出Ogre提供的场景管理器和它们的优缺点。
- 1 选择一个场景管理器
- 2 八叉树场景管理器(Octree Scene Manager)
- 3 地形场景管理器(Terrain Scene Manager)
- 4 自然场景管理器(Nature Scene Manager –插件)
- 5 分页场景管理器(Paging Scene Manager –插件)
- 6 BSP 场景管理器
- 7 DotSceneOctree 场景管理器 (插件)
选择一个场景管理器
你可以通过getSceneManager 方法选择一种场景管理器,来代替默认的ST_GENERIC :
Dagon 1.2 version 以后版本:
mRoot->createSceneManager (ST_GENERIC);
老版本:
mRoot->getSceneManager (ST_GENERIC);
它们的参数有以下值可选择:
- ST_GENERIC – 如果你设定加载Plugin_OctreeSceneManager 将使用八叉树管理, 如果你设定加载Plugin_DotSceneManager 就可以加载DotScene (.scene)
- ST_EXTERIOR_CLOSE – 地形场景管理Terrain_Scene_Manager
- ST_EXTERIOR_FAR – 自然场景管理(Nature scene manager)
- ST_EXTERIOR_REAL_FAR – 分页场景管理Paging_Scene_Manager
- ST_INTERIOR – BSP场景管理
1. 八叉树场景管理器(Octree Scene Manager)
用八叉树分割场景,对于多数场景效果良好,除了那些非常封闭的场景。
优点:
- 一个简单的解决方案,对于多数场景实用。
- 如果有大量静态几何体,可以用StaticGeometry 类来加速
缺点:
- 对特殊的场景结构没有加速
- 不适用于非常封闭的空间
2. 地形场景管理器(Terrain Scene Manager )
terrain scene manager 是为非常小的包含静态地形的场景所设计的。这个场景管理器方便从高度图来产生场景。(通过读取media目录下的terrain.cfg文件来生成地形)
优点:
- 可以很快渲染高分辨率的地形
- 可以很方便地由高度图和地形材质产生地形
- 材质可以使用shader
缺点:
- 没有分页- 有hooks接口但是你需要添加它
具体描述地形管理器的文档可以在这里找到。
3. 自然场景管理器 (Nature Scene Manager:插件)
似乎没人用,略。
4. 分页场景管理器(Paging Scene Manager:插件)
Paging Scene Manager 可以将场景分成多页。只有哪些正在被使用的页面才会显示,随意可以用在非常大的场景上。每个页有自己的高度图,并且可以使用不同材质。(可以创建绿色平原上的雪山之类的场景)
优点:
- 可以处理比terrain and nature scene managers更大的场景
- 允许实时卸保存载地形
- 允许多个高度图,每个高度图允许多材质
- 地图工具 ( "Mapsplitter") 可以将大地图和材质分成页
- 支持16 bits per height 的Raw 格式的高度图
- 实时改变地图和材质
- Demo: http://tuan.kuranes.free.fr/Ogre.html
- Horizon Occlusion Visibility Real-time determination:比如山之后的物体不会被送到显卡处理
- 支持八叉树
缺点:
- 需要安装paging scene manager 插件
- 需要用地图工具来产生分页
- 更多的选择也意味着更复杂
5. BSP 场景管理器
该场景管理器用来管理室内场景。特别会优化那种有交错的墙壁和走廊组成的场景。
为BSP场景管理器产生level的步骤简要如下:
- 可以用 各种level编辑工具来创建你的level,用.map格式保存
- 将.map格式编译成Quake 3的.bsp格式,这种格式可以被BSP场景管理器读取。(可以用q3map3来转换)
优点:
- 可优化室内场景
- 很多level编辑工具可选择
缺点:
- 现在可能有一些GPU处理不了Quake 3的 .bsp 格式
- 一些人建议不要用Blender来创建level, 而是要导出为.scene格式
6. DotSceneOctree 场景管理器(插件)
DotSceneOctree 场景管理器可以令几何体和mesh存在同一个文件中。
优点:
- 可以在一个文件中包括所有场景
- meshes可是是静态或者动态
- 支持八叉树
Cons:
- 需要工具来建立八叉树文件 (.bin)
- 不支持32 bit indices,所以大的mesh需要切开
转:OGRE场景管理器介绍相关推荐
- Ogre 场景管理器
转自:http://blog.sina.com.cn/s/blog_694aab1b0100rdvm.html 在通常的情况下,Ogre的场景管理器会负责处理以下事情: ·在场景中创建和放置活动物体. ...
- ogre的场景管理器
原文地址:ogre的场景管理器作者:zhouwenjie 在通常的情况下,Ogre的场景管理器会负责处理以下事情: ·在场景中创建和放置活动物体.灯光以及摄像机,并维护他们的在场景图中的周游和变换. ...
- mt管理器逆向了解安卓----【mt管理器介绍】
mt管理器介绍 ps:此教程完全适合新手,如已了解请略过
- Laya:场景管理器。
在Laya中打开新场景时,使用Laya.Scene.open方法即可.但直接这样使用会有一个问题:如果在场景A中挂在了一个脚本,且在Update里执行了某个方法,当打开新场景B时,场景A里的Updat ...
- ION内存管理器介绍
1. ION介绍 ION是google在Android4.0为了解决内存碎片化管理而引入的通用内存管理器,用来支持不同的内存分配机制,如CARVOUT(PMEM),物理连续内存(kmalloc),虚拟 ...
- Swing布局管理器介绍
当选择使用JPanel和顶层容器的content pane时,需要考虑布局管理.JPanel缺省是初始化一个FlowLayout,而content pane缺省是初始化一个BorderLayout. ...
- Node npm包管理器介绍
NPM(重点) 介绍 npm(node package manage)node 包 管理器.管理node包的工具. 包是什么?包就是模块.(包约等于模块,一个包可以包括一个或多个模块) npm这个工具 ...
- Python3中上下文管理器介绍
在任何编程语言中,文件操作或数据库连接等资源的使用都很常见.但这些资源供应有限.因此,主要问题在于确保在使用后释放这些资源.如果不释放它们,则会导致资源泄漏,并可能导致系统变慢或崩溃.如果用户有一个自 ...
- NPM js 包管理器介绍
NPM的定义 npm 全称 Node Package Manager , 是Node.js 默认的, 以javascript 编写的软件包管理系统 用于分享和使用代码,早已成为前端的标配. 作用类似与 ...
最新文章
- 电子科技大学计算机网络实验,计算机网络实验电子科技大学.doc
- dubbo protocol port 消费者端_springboot整合dubbo设置全局唯一ID进行日志追踪
- 新书上市:《FLUENT 14.0超级学习手册》
- 使用.net资源文件时候发生的问题
- 计算机选配 注意事项,选择鼠标注意事项有哪些
- c盘保护软件_电脑C盘空间越来越小?简单操作这几步,可以释放大量空间
- SpringCloud 从菜鸟到大牛之七 服务网关 Zuul API网关等等
- 牛刀:开发商不差钱不等于房价不暴跌 (转载)
- 解决python 提示 SyntaxError: Missing parentheses in call to 'print'
- C#将子窗体填充到父窗体的panel中
- DOM之节点操作总结(附实例、图解)
- 扫雷游戏网页版_两个在线版复古小游戏,嗯还是熟悉的味道!
- linux 虚拟ip 漂移,keepalived 虚拟ip切换
- 知识点九:散列表(中)
- 数据库分页的几种实现
- 三七互娱U3D面试记录
- ruby语言学习-开启篇
- Cesium 影像卷帘对比
- 信息数据管理思维导图(Xmind)
- java计算机毕业设计网络作业提交与批改系统源代码+数据库+系统+lw文档
热门文章
- 如何制定自动化测试战略?10年经验让我考虑这些关键要素!
- 调用 oauth2_奥利给,再也不怕面试官问我OAuth 2.0授权了
- 更改计算机名后无法联网,更改计算机名后,DB2不能正常使用的解决情况
- 基于c的语言开发,基于CC++等高级编程语言开发电子系统的设计自动化系统.doc
- mysql deadlock 记录_MySQL DeadLock故障排查全过程记录
- Inception-Resnet结构(code)
- 【python】快速对图像进行傅里叶变换
- 模型保存的方法-----仅保存权重
- Java实现计算器的基本功能
- pandas mysql insert_python – Pandas将数据插入MySQL