157
魔獸
Ogre:ManualObject
通常在Ogre中我們是導入點mesh文件來進行構造實體的,但是很多情況下我們可能就需要創建一個非常簡單的平麵或是線,或是有時想自己在程序中創建這樣物體,這就需要用到Ogre的manual object,它就像你用opengl在程序中繪製一個物體的道理一樣,在程序中定義你繪製的信息,而是用起來也很像在opengl中繪製物體。
創建一個人造物體的方法通常是這樣的:
1.需要先用場景管理器去創建一個人造物體的指針
ManualObject* mo=smgr->createManualObject("mo");
2.然後使用人造物體的begin/end對進行繪製,和在opengl中很類似,但是規則有些不同:
mo->begin("BaseWhiteNoLighting",RenderOperation::OT_TRIANGLE_LIST);首先製定你需要繪製什麼元素,用什麼材質
然後下麵就製定點的信息,
每次用mo->position指定一個點的位置,然後在這句後麵和下一個mo->position前麵指定這個頂點的顏色、法向等,這個和opengl是完全不同的
如
mo->position(-100,100,0)
mo->colour(0,0,1);
mo->position(100,100,0);是說第一個頂點的顏色是藍色,而不是第二個!
如果不指定顏色信息,那麼該店的顏色為上一個指定了顏色的頂點的顏色。
你可以再一個manulobject中書寫多個begin end對
當我們創建好manualobject後,為了在場景中渲染他,隻需要將它用scenenode::attach到一個場景節點上
或者有時你需要將這個manualobject轉化為一個mesh,需要調用manualobject的convertToMesh函數
最後更新:2017-04-02 06:51:23