buf

BE something YOU love and understand
posts - 94, comments - 35, trackbacks - 0, articles - 2
   :: 首页 :: 新随笔 :: 联系 ::  :: 管理

在OGRE中画坐标轴

Posted on 2011-07-24 16:24 buf 阅读(1169) 评论(0)  编辑 收藏 引用 所属分类: Graphics
以官方教程的框架程序为例:
void TutorialApplication::createScene(void)
{
    
// light...
    
// cam...   
    
// axis...
    Ogre::SceneNode *axis = mSceneMgr->getRootSceneNode()->createChildSceneNode();
    Ogre::ManualObject 
*axisObj = mSceneMgr->createManualObject();    
    axisObj
->begin("BaseWhiteNoLighting", Ogre::RenderOperation::OT_LINE_LIST);    
    axisObj
->position(000);
    axisObj
->colour(100);
    axisObj
->position(100000);   // X axis, red

    axisObj
->position(000);
    axisObj
->colour(010);
    axisObj
->position(010000);   // Y axis, green

    axisObj
->position(000);
    axisObj
->colour(001);
    axisObj
->position(001000);   // Z axis, blue
    axisObj
->end();
    axis
->attachObject(axisObj);

    
// other stuff...
}

上面的代码中,"BaseWhiteNoLighting"是OGRE内置的三个Material之一。
另外,看了下ManualObject的源码,position方法只是把设定的位置保存到一个临时定点mTempVertex,只有当position方法被再次调用或end方法被调用时,前一次定义的定点才会被写入ManualObject对象,colour方法更改的也是临时顶点的属性。
只有注册用户登录后才能发表评论。