Ogre的2D显示

        Ogre对于3D的渲染效果和速度的优势是大家公认的 ,对于如何用Ogre渲染2D似乎对很多人是个疑问,其实并不是因为Ogre渲染2D不好,只是在目前的1.0和1.2版本中Ogre没有提供方便的接口或者类来做这件事,这就给很多用Ogre的人造成了麻烦,比如在汽车、飞机游戏中渲染一个HUD,很多人感觉无从下手。

       其实目前可以有多种方法实现2D的:

      1.  用Ogre的Overlay,就是通常显示FPS的那个东东,只要根据自己的需要贴上相应的纹理就可以了。当然估计也可以将Render to texture的结果贴上去。

      2.  有一片Ogre的wiki,叫SpriteMananger2d的,具体内容可以在这个网址看到,http://www.ogre3d.org/wiki/index.php/SpriteManager2d,它利用了RenderQueueListner、RenderSystem、RenderOperation和VertexHardwareBuffer这几个类来实现,后面三个类就不说了,关于RenderQueueListner类:在每个RenderQueue Group渲染前SceneManager会调用RenderQueueListner对象的renderQueueStarted(...)函数,在Group渲染后调用renderQueueEnded(...)函数,这跟VTree中的回调PreRender()和PostRender()很像。SpriteManager2d就是继承了RenderQueueListner类,将2d的渲染放在了Overlay Group的紧前或随后。

       3.  利用Ogre的ManualObject,这个功能相应的wiki:http://www.ogre3d.org/wiki/index.php/ManualObject_2D,这个我还没有看,不过知道这个功能是在预计今年年底发布的1.4版本中会正式提供的,现在要用的话要跟SpriteManager2d那样自己包含一些文件了。

       想必最后一个方法会成为Ogre用户的福音。

       以上都是个人的看法,如果有什么问题,还希望各位批评指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值