OgreRoot

   OgreRoot相當於總的主管。
createSceneManager() - 創建場景管理器
getTimer() - 獲取時間
getSingleton() - 獲取單件引用
showConfigDialog() - 顯示配置對話框
restoreConfig() - 恢復配置
initialise() - 初始化窗口


事件與實體,綁定。動態綁定,靜態綁定。
封裝應用邏輯,可獲取root
                    SceneManager
                    ResourceManager
                    RenderWindow
SceneManager
createCamera() - 創建攝影機
createEntity() - 創建實體
createLight() - 創建光源
createMovableObject() - 創建移動對象
createParticleSystem() - 創建粒子系統
createRayQuery() - 創建射線查詢器


setAmbientLight() - 設置環境光
setFog() - 設置霧
setShadowColor() - 設置陰影顏色
setShadowTechnique() - 設置陰影Technique
setSkyDome() - 設置天空穹
showBoundingBoxes() - 顯示包圍盒


//設置陰影
Ogre::SHADOWTYPE_STENCIL_ADDITIVE 模板陰影
SceneManager::setShadowTechnique(
MoveableObject Entity
SceneNode


要渲染用Renderble, 
    Renderble是靜態的。不移動的。


要移動用Movable
即渲染又移動SimpleRenderable, 多繼承


Ogre::SceneNode  場景結點
Ogre::BspSceneNode 靜態場景結點
Ogre::OctreeNode 八叉樹室外場景結點
Ogre::PCZSceneNode 室內場景
detachObject() 解綁,支持換裝
               比如換刀,換盔甲等。
showBoudingBox 顯示包圍盒


每個Entity都有Listener,特定的事件可以
爲特定的Entity來編寫。
      這樣就分開了,屬於事件驅動。
實際上控制的變化,都在Listener內。
Listener與攝影機發生交互,那就可以將Listener與攝影機合併。
而如果是特定實體的事件,則可以將Lisener綁定到實體上。
而實體不需要時則可以解綁。
    這樣事件是可複用的。所以邏輯算法基本上就是控制
    Lisener。
Entity::getListener
Entity::setListener(); 添加一個事件
SceneNode::setListner(); 添加一個事件
SceneNode::getListner(); 獲取一個事件
各種Listener 監聽器
FrameListener 幀監聽器
WindowEventListener 管理窗體事件
RenderTargetListner()


Effects 效果
Compositor 效果後期合成等
Partical 粒子
Billboard 公告板
Materials 材質,真實感都與材質算法有關。
Math 是數學庫是實現具體算法的。
Overlay 


RTShader - 可編程,用於效果處理





發佈了24 篇原創文章 · 獲贊 12 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章