【轉】Ogitor中Gizmo的繪製技巧
阿新 • • 發佈:2019-01-24
Gizmo可以理解為座標軸,就是3D軟體裡3個軸並可以調整物件的各種變換屬性的東西.
繪製Gizmo其實很簡單,這裡只說箭頭的繪製中的一些技巧.一開始我的做法是MAX裡建模,如圖
然後建立3個模型物件,以Z為父級(我的座標系是Z朝上), X,Y分別掛接Z節點
按照Ogitor中的介紹,需要將Z關閉繪製,結果,繪製順序有錯誤
正確的效果應該是藍色(Z軸,朝上)蓋住綠色的Y軸.
這就涉及到X,Y,Z軸模型在Z關閉後的繪製順序,需要通過檢查物件的位置,按照從遠到近的順序進行繪製.
但是一開始每個軸的單位座標都是在箭頭的下部,因此,怎麼旋轉攝像機,都只能出1個繪製順序.這就是問題所在. 因此,決定重新修改箭頭的本地座標系,調整為下圖所示
MAX中,將箭頭作為本地座標原點, 並修改排序演算法,對Z關閉後的物件按照畫家演算法排序,如圖:
繪製效果正確.
解決這個問題時,我查閱了Ogitor程式碼,並在Ogitor編輯器資源裡找到了箭頭資源,但是程式碼中並沒有用到這個資源,而是改用
AxisGizmo::createMesh(Ogre::SceneManager *manager, Ogre::String name)
函式用程式碼方式建立Gizmo,估計也是和我碰到一樣的問題吧