Ogre中创建基本的图形,比如圆,有一个很好的对象,ManualObject.
ManualObject是MoveObject类的派生类,所以可以移动,同时它内部包含一个Renderable列表
可以向里面填充数据
现在就以产生一个矩形为例子
OGRE::ManualObject *pRectManual = g_SenceMgr->createManualObject("Rect"); // 名字可以随便写
g_SenceMgr->getRootSceneNode()->createChildSceneNode("TerrainShapeNode")->attachObject(pRectManual );
//填充数据
ManualObject内部维护一个Renderable列表,填充数据的时候是按顺序填充的,第一次是写入第一个Renderable
对每一个Renderable操作都是由beign开始,end结束
pRectManual ->setCastShadows(false);
pRectManual->begin(mat,Ogre::RenderOperation::OT_LINE_STRIP);
int nIndex = 0;
for(int i=0.i<10;i++)
{
pRectManual->position(,,,);
...
pRectManual->index(nIndex++);
}
pRectManual->index(0);
pRectManual->end();