把ogre和bullet的地形整合在一起比預想中的麻煩。
主要是兩個問題:通過heightfield生成三角形網格的方式不一樣,以及heightfiled定址方式不同(ogre轉換成float陣列後,以坐下角為(0,0)點,而bullet的btheightfieldterrainshape類是左上角)。好在需要改動的地方在btheightfieldterrainshape都是虛函式,所以可以通過繼承來解決(看來作者已經預料到這些問題,不過注釋很少,很多東西需要看原始碼才能弄清楚)。以下是改動的地方:
ogre_bullet_heightfiled.h
ogre_bullet_heightfiled.cc
Ogre的mesh和skeleton資料格式分析
首先看一下skeleton檔案,skeleton檔案描述和記錄了物體的骨骼和動畫情況。從上圖可以得知,整個skeleton檔案分成了三部分bones,bonehierarchy,animations。1.bones部分描述了每一塊骨頭的具體情況 從上圖可知,其實一塊骨頭,實際上真正的有效資料僅是乙個...
Ogre記憶體池的使用和說明
大家可能會遇到一些ogre中的記憶體分配的方面問題,我對這個總結了一下記憶體分配的方面資料。ogre在1.7版本後,統一了記憶體分配策略,提供了記憶體是否洩漏的跟蹤和記憶體池等比較方便開發的一些策略,目前提供了四種記憶體分配 ogre memory allocator 方式 define ogre ...
OGRE中的STL和單件設計模式
單件設計模式 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。單件設計模式在ogre中使用還是比較頻繁的,管理日誌的logmanager,還有skeletonmanager等管理器,就連root也使用了這種設計模式。分析ogre的使用,發現這種設計模式是很簡單的,如下 template cl...