在ogre里面显示二维图片

来源:互联网 发布:燕京啤酒 知乎 编辑:程序博客网 时间:2024/04/28 23:49

最近我想在ogre里面实现这样的功能:指向一个物体,显示一张二维图片,介绍该物体的相关信息。

在ogre社区找到了解决办法,

如下:

 

创建一个2D长方形:Rectangle2D *rect = new Rectangle2D(true);
设置长方形大小: rect->setCorners(-0.5f,0.5f,0.5f,-0.5f);

设置材质、渲染队列等:

 rect->setMaterial("Examples/Test"); 
 rect->setRenderQueueGroup(Ogre::RENDER_QUEUE_OVERLAY);

(这里设的OVERLAY层,当然你可以设为BACKGROUD等其它层)


 这里需要创建一个包围盒:

 AxisAlignedBox *aabb = new AxisAlignedBox();
 aabb->setInfinite();

( Ogre是一个3D引擎,它会把2D物体当作在3D空间里对待。这意味着,如果我们创建这个物体,并把它绑在场景节点上,当我们远一点观看时会消失。为了修正这个问题,我们将把这个物体的包围盒设置成无限大,这样摄像机就永远在它里面 )

 

将二者联合起来,并绑定在一个节点上:

rect->setBoundingBox(*aabb);                             
SceneNode* backNode=mSceneMgr->getRootSceneNode()->createChildSceneNode("BackgroundNode");             
backNode->attachObject(rect);

 

 

呵呵,这样就实现了。

 

原创粉丝点击