cegui图片文字写屏

在cegui中, 文字和图片的表现方式一般是以窗口的形式呈现的. 这本主要针对0.7.0以上版本的CEGUI实现文字或图片直接写屏(指的是不用画在窗口上).
这个技术在cegui dome上已经有过展现, 看到每个dome左下方那个会旋转的GUI纹理了吗, 它就是利用GeometryBuffer类进行纹理直接写屏的. 下面就来讲一下如何实现这个效果吧.
1.创建GeometryBuffer的一个对象, 相关代码:
CEGUI::OgreRenderer* pOgrerender;
GeometryBuffer* pGeometryEffect = pOgrerender->createGeometryBuffer();
pOgrerender需要在渲染系统初始化时指向实例对象.
2.设置显示的区间
实例代码: pGeometryEffect->setClippingRegion(CEGUI::Rect(0, 0, 100, 100));
3.设置渲染函数
pOgrerender->getDefaultRenderingRoot().subscribeEvent(CEGUI::RenderingSurface::EventRenderQueueStarted,
CEGUI::Event::Subscriber(&GeometryEffect::overlayHandler, this));
这一句必须在GeometryEffect(自己定义的类)的某个成员函数里写, 并且在GeometryEffect::overlayHandler必须调用pGeometryEffect->draw();才能显示相应的东西. 具体原因有待研究
4.渲染对象
调用CEGUI::Image::draw(), CEGUI::Font::drawText()第一参数里要填写pGeometryEffect,其它参数就不作多的解释了
这个draw不需要在游戏每帧更新时都draw一次, 只要调用一回就可以显示你要的东西了。如果要draw新的东西,最好调用GeometryBuffer::reset()一下.
5.旋转
如果想旋转绘制的东西首先要设置旋转的中心轴:调用pGeometryEffect->setPivot(Vector3((x, y,z));就好了
接着调用pGeometryEffect->setRotation(Vector3(x, y, z));就可以完成旋转的功能了
转载或修改请说明出处
作者:howlet
E-Mial:
howlet3@126.com
3d游戏技术交流群:108546670

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值