OGRE显示2d
来源:互联网 发布:四维星软件免费下载 编辑:程序博客网 时间:2024/06/08 08:18
不得不说的事实:在Ogre中3D中仍然有很多效果使用2D的图形处理将更加简单、容易。最显然的例子当属图形用户界面(GUI)。在Ogre中二维图形处理是放在称为“overlay”的渲染队列中的,它是在最后渲染的,也就是显示在场景的最上面。在Ogre里面要实现2D效果,有多种方法。
1.Displaying 2D
在Ogre中创建Displaying 2D还是很简单的:
1# 创建一个2D长方形:Rectangle2D *rect = new Rectangle2D(true);(true表示使用纹理)
2# 设置长方形大小:rect->setCorners(-0.5f,0.5f,0.5f,-0.5f); //这用的是笛卡尔坐标系,原点在窗口的中心,X轴的正半轴在右边(最右边大小为1,最左边就为-1),Y轴的正半轴在上边(最上边为1,最下边就为-1),这个和VC中的窗口默认坐标系有点不一样。
3# 设置材质、渲染队列等:rect->setMaterial("Material/Background"); rect->setRenderQueueGroup(Ogre::RENDER_QUEUE_OVERLAY);(这里设的OVERLAY层,当然你可以设为BACKGROUD等其它层)
4# 这里需要创建一个包围盒:AxisAlignedBox *aabb = new AxisAlignedBox();
aabb->setInfinite();( Ogre是一个3D引擎,它会把2D物体当作在3D空间里对待。这意味着,如果我们创建这个物体,并把它绑在场景节点上,当我们远一点观看时会消失。为了修正这个问题,我们将把这个物体的包围盒设置成无限大,这样摄像机就永远在它里面 )
5# 将二者联合起来,并绑定在一个节点上:rect->setBoundingBox(*aabb); SceneNode* backNode=curr->getRootSceneNode()->createChildSceneNode("BackgroundNode"); backNode->attachObject(rect);
Displaying 2D没有脚本支持,这一点就没有“Overlay”用起方便了。而且在Displaying 2D也不能支持旋转等操作,如要进行旋转,就只能旋转纹理。
2. Overlay
“Overlay”也是我们经常用的,也是最熟悉的。它提供了脚本的支持(我越来越发现支持脚本真方便),后缀名为“.overlay”。
在使用时也很方便,OverlayManager::getSingletonPtr()->getByName("MyOverlay/TestOverlay")->show(); 因为overlay脚本在程序加载资源的时候就已经加载进去了,所以在程序中直接将其显示出来就行了,很简单吧。
脚本的编写可以参考Ogre手册,在Ogre中文网http://ogre3d.cn/wiki/有下载。不过值得注意的是,在程序中不管是容器还是元素设置大小时,如是设置相对大小,则它所相对的是整个窗口的大小而不是父容器大小(也就是元素大小是可以大于包涵它的容器大小的)。
3. Ogre中的2D显示方式好像还有一种方法,不过没用过。
- OGRE显示2d
- Ogre的2D显示
- Ogre中显示2D
- Ogre中的2D显示方法(转)
- Ogre 3D程序设计 Ogre材质2
- OGRE 3D 程序设计 材质 2 (转)
- OGRE 3D程序设计(2)
- OGRE 3D游戏
- Ogre 3D 配置
- Ogre 3D程序设计 Ogre材质1
- OGRE的2D坐标、CEGUI坐标、鼠标坐标
- OGRE的2D坐标、CEGUI坐标、鼠标坐标
- Ogre——Overlay添加2D图片
- Ogre输出屏幕2d文字(Overlay文字)
- Ogre输出屏幕2d文字(Overlay文字)
- OGRE显示中文
- Pro OGRE 3D Programming
- OGRE 3D引擎特性
- getOutputStream() has already been called for this response
- 访问劫持?访问苏宁时发生的怪事
- String类型的赋值的一个坏习惯【优化Adobe Flash Platform 的性能.pdf阅读笔记】
- uva 10601 - Cubes(置换)
- 机器学习课程笔记整理(2)
- OGRE显示2d
- ios学习笔记--png jpg
- java jdbc Statement复用问题
- Qt event
- Go_关于组合的一个案例
- 关于多继承的派生类中数据成员的偏移量
- C++中 auto自动变量,命名空间,using作用以及作用域
- js实现php函数默认参数的功能(另一种方法)
- Jobdu 题目1078:二叉树遍历