• 转:OGRE场景管理器介绍


    一个场景代表在虚拟世界中显示的物品。场景可以包括静态几何体(比如地形或者室内),模型(比如树、椅子等),光和摄像机。场景有下面种类。室内场景:可能由走廊、有家具的屋子和挂着装饰品的墙组成。室外场景:可能由山,树木,微微摇动的草地,飘着云彩的天空组成。Ogre提供了一套不同的场景管理器,每一种特别支持某种场景,本文档将列出Ogre提供的场景管理器和它们的优缺点。  

    选择一个场景管理器

    你可以通过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需要切开
  • 相关阅读:
    程序集、属性和元数据
    wget 使用探索
    为wget使用代理
    创建项目 (Visual C#)
    wget 下载整个网站,或者特定目录
    演练:使用 Visual C# 创作用户控件
    NavigateUrl属性绑定 天高地厚
    【转载】Repeater控件里的大智慧 天高地厚
    【转载】ASP.NET Page 那点事 天高地厚
    意向锁如何提高性能 天高地厚
  • 原文地址:https://www.cnblogs.com/skyofbitbit/p/4093486.html
Copyright © 2020-2023  润新知