Mogre入门
来源:互联网 发布:淘宝营销方式有哪些 编辑:程序博客网 时间:2024/06/06 06:49
Mogre是Ogre在C#环境下的语言。这里记录一下Mogre的基本概念(不全,是我使用中遇到的,可能语言描述不够严谨)。很多概念与Ogre是一样的,因此也可以用于Ogre。
一、SceneManager
它是显示控制器,管理所有屏幕上显示的对象。具体来说,它保存了所有对象的track(追踪)。
二、Entity
它是Mogre世界中的基本对象。所有可视对象都是Entity。它只包含对象的本身属性,而不包含方位信息。
三、SceneNode
它包含着Entity的方位信息。具体有以下几点需要注意:
1、通过AttachObject进行绑定:
SceneNode node;Entity entity;node.AttachObject(entity);
2、不同的Entity可以使用同一个SceneNode的信息。
3、SceneNode的位置信息是相对于其父节点而言的。
四、Camera
用来观察创建的对象。使用方法与组织方式类似于SceneNode,可将其视为特殊的Node。同样需要设置Position属性来确定方位。
使用camera.Near(Far)ClipDistance设定裁剪范围。
可以有多个Camera对象。必须告诉窗体使用哪个Camera对象。必须有ViewPort对象。示例如下:
ViewPort vp = this.RenderWindow.AddViewPort(camera);五、Listener
添加Frame事件响应。用Listener作为事件响应的优点是实时性较高。具体使用方式如下:
root.FrameStarted += new FrameListener.FrameStarted(hander);此函数可放在创建场景的函数中。
六、键盘、鼠标响应
Mogre使用MOIS库进行键盘与鼠标的控制。需要注意以下两点:
1、需要添加Timer才能使监听生效。
2、注意使用缓冲区(使用缓冲区,才能改变鼠标键盘的状态)。
七、画基本几何体
使用ManualObject类。
ManualObject mo = smgr.CreateManualObject("mobj");mo.Begin("Core/NodeMaterial", RenderOperation.OperationTypes.OT_POINT_LIST);mo.Position(new Vector3(0, 0, 0));mo.Position(new Vector3(1, 1, 1));mo.End();其中Begin函数的第一个参数是materialName,不能随便写。
由于ManualObject也属于Entity,因此也需要绑定到SceneNode上。
八、光线探测
在进行场景查询时,例如实现鼠标选择的功能时,MOgre内设了一套光线探测的方法。通过getCameraToViewPortRay()建立一条射线。
场景查询返回的是MovableObj或者WorldFragment(二者之一)。worldFragment结构包含射线击中目标的位置。
待续
- Mogre入门
- Mogre学习笔记(一)
- Mogre学习笔记(二)
- Mogre学习笔记(三)
- Mogre学习笔记(四)
- Mogre学习笔记(五)
- Mogre学习笔记(六)
- Mogre学习笔记(七)
- 开源库MOGRE托管版编译教程
- Mogre学习系列(1)安装运行环境
- Mogre学习系列(3)基本概念Cameras, Lights, and Shadows
- Mogre学习系列(2)基本概念The SceneNode, Entity, and SceneManager constructs
- Mogre学习系列(4)Frame Listeners 和Windows.Forms Input
- Mogre学习系列(5)如何使用Ogre建立游戏程序
- Mogre学习系列(5)如何使用Ogre建立游戏程序
- MOGRE学习笔记(1) - OGRE简介及在vs2010下配置
- 入门
- 入门
- 数据结构与算法笔记 lesson 14 循环队列
- iOS 环信集成 实现单聊
- A Knight's Journey(深度搜索)
- 第十四周-输入一个数插入有序数组中
- Linux网络事件通知机制
- Mogre入门
- Problem D: 旭神的密码 粗心的旭神,今天竟然又把校园卡丢了,他去挂失,但是不幸的是
- 16哈理工新生赛 C 方方正正 (证明题)
- Ubuntu终端快捷键
- 创建型设计模式
- 第十四周-进制转换(十进制转二进制)
- ffmpeg 解码
- LeetCode 126 Word Ladder II
- MFC FrameWork函数