SceneManagersFAQ
From Ogre Wiki
一個場景代表在虛擬世界中顯示的物品。場景可以包括靜態(tài)幾何體(比如地形或者室內(nèi)),模型(比如樹、椅子等),光和攝像機。
場景有下面種類。室內(nèi)場景:可能由走廊、有家具的屋子和掛著裝飾品的墻組成。室外場景:可能由山,樹木,微微搖動的草地,飄著云彩的天空組成。
Ogre提供了一套不同的場景管理器,每一種特別支持某種場景。
本文檔將列出Ogre提供的場景管理器和它們的優(yōu)缺點。
[edit]
選擇一個場景管理器
你可以通過getSceneManager 方法選擇一種場景管理器,來代替默認的ST_GENERIC :
Dagon 1.2 version 以后版本:
mRoot->createSceneManager (ST_GENERIC);
老版本:
mRoot->getSceneManager (ST_GENERIC);
它們的參數(shù)有以下值可選擇:
- ST_GENERIC – 如果你設(shè)定加載Plugin_OctreeSceneManager 將使用八叉樹管理, 如果你設(shè)定加載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場景管理
八叉樹場景管理器(Octree Scene Manager)
用八叉樹分割場景,對于多數(shù)場景效果良好,除了那些非常封閉的場景。
優(yōu)點:
缺點:
- 對特殊的場景結(jié)構(gòu)沒有加速
- 不適用于非常封閉的空間
地形場景管理器(Terrain Scene Manager )
terrain scene manager 是為非常小的包含靜態(tài)地形的場景所設(shè)計的。這個場景管理器方便從高度圖來產(chǎn)生場景。(譯注:也就是說有高度圖就用不了八叉樹了?倒……)
優(yōu)點:
- 可以很快渲染高分辨率的地形
- 可以很方便地由高度圖和地形材質(zhì)產(chǎn)生地形
- 材質(zhì)可以使用shader
缺點:
具體描述地形管理器的文檔可以在這里找到。
自然場景管理器 (Nature Scene Manager:插件)
似乎沒人用,略。
分頁場景管理器(Paging Scene Manager:插件)
Paging Scene Manager 可以將場景分成多頁。只有哪些正在被使用的頁面才會顯示,隨意可以用在非常大的場景上。每個頁有自己的高度圖,并且可以使用不同材質(zhì)。(可以創(chuàng)建綠色平原上的雪山之類的場景)
優(yōu)點:
- 可以處理比terrain and nature scene managers更大的場景
- 允許實時卸保存載地形
- 允許多個高度圖,每個高度圖允許多材質(zhì)
- 地圖工具 ( "Mapsplitter") 可以將大地圖和材質(zhì)分成頁
- 支持16 bits per height 的Raw 格式的高度圖
- 實時改變地圖和材質(zhì)
- Demo: http://tuan.kuranes.free.fr/Ogre.html
- Horizon Occlusion Visibility Real-time determination:比如山之后的物體不會被送到顯卡處理
- 支持八叉樹
缺點:
- 需要安裝paging scene manager 插件
- 需要用地圖工具來產(chǎn)生分頁
- 更多的選擇也意味著更復雜
BSP 場景管理器
該場景管理器用來管理室內(nèi)場景。特別會優(yōu)化那種有交錯的墻壁和走廊組成的場景。
為BSP場景管理器產(chǎn)生level的步驟簡要如下:
- 可以用 各種level編輯工具來創(chuàng)建你的level,用.map格式保存
- 將.map格式編譯成Quake 3的.bsp格式,這種格式可以被BSP場景管理器讀取。(可以用q3map3來轉(zhuǎn)換)
優(yōu)點:
- 可優(yōu)化室內(nèi)場景
- 很多level編輯工具可選擇
缺點:
- 現(xiàn)在可能有一些GPU處理不了Quake 3的 .bsp 格式
- 一些人建議不要用Blender來創(chuàng)建level, 而是要導出為.scene格式
DotSceneOctree 場景管理器(插件)
DotSceneOctree 場景管理器可以令幾何體和mesh存在同一個文件中。
優(yōu)點:
- 可以在一個文件中包括所有場景
- meshes可是是靜態(tài)或者動態(tài)
- 支持八叉樹
Cons:
- 需要工具來建立八叉樹文件 (.bin)
- 不支持32 bit indices,所以大的mesh需要切開