閱讀157 返回首頁    go 魔獸


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

  上一篇:go 深入理解linux互斥鎖(mutex)
  下一篇:go 連接遠程Oracle