zoukankan      html  css  js  c++  java
  • 转: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需要切开
  • 相关阅读:
    bzoj1415 NOI2005聪聪和可可
    Tyvj1952 Easy
    poj2096 Collecting Bugs
    COGS 1489玩纸牌
    COGS1487 麻球繁衍
    cf 261B.Maxim and Restaurant
    cf 223B.Two Strings
    cf 609E.Minimum spanning tree for each edge
    cf 187B.AlgoRace
    cf 760B.Frodo and pillows
  • 原文地址:https://www.cnblogs.com/skyofbitbit/p/4093486.html
Copyright © 2011-2022 走看看