Ogre中的2D显示方法(转)
来源:互联网 发布:放牛班的春天音乐知乎 编辑:程序博客网 时间:2024/06/07 14:51
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也不能支持旋转等操作,如要进行旋转,就只能旋转纹理。
使用Rectangle2D的显示效果:
2. Overlay
(1)在*.overlay文件中添加配置
首先要对Overlay脚本的概念和配置参数有些了解,可以参看 OGRE 手册 版本v1.4.0('Eihort') 中的“3脚本-1-4-0:3.4”这一节。然后要在某个*. Overlay文件中增加Panel,并指定一些参数,我自己是修改了Media\packs\OgreCore.zip中的OgreDebugPanel.overlay,具体修改如下图所示:
(2) 增加代码,显示2D图片。
然后在ExampleFrameListener::updateStats(void)中写以下两行代码即可:
- Ogre中的2D显示方法(转)
- OGRE显示2d
- Ogre的2D显示
- Ogre中显示2D
- OGRE 3D 程序设计 材质 2 (转)
- OGRE 3D程序设计(2)
- Ogre 3D程序设计 Ogre材质2
- Direct2D中的2D显示
- OGRE 3D Beginner--Create real-time 3D application using Ogre 3D 中的问题解决
- Ogre:Animation(Ogre中的动画)
- Ogre:Animation(Ogre中的动画)
- Ogre:Animation(Ogre中的动画)
- Ogre:Animation(Ogre中的动画)
- Ogre::Animation(Ogre中的动画)
- Ogre:Animation(Ogre中的动画)
- Ogre:Animation(Ogre中的动画)
- Ogre:Animation(Ogre中的动画)
- Ogre:Animation(Ogre中的动画)
- dom4j解析xml
- cocos2d-x 回调函数
- 将光盘设置为yum源
- 提问的智慧
- 解压文件并进行删除等操作
- Ogre中的2D显示方法(转)
- HDU 1058 Humble Numbers (DP,打表)
- 深入理解JVM(二)------Java代码执行机制
- 利用nginx+lua+memcache实现灰度发布
- 加班与效率
- JAVA NIO
- js正则去前后空格,类似trim方法
- 项目穿越记
- jquery中使用ajax的同步异步问题