OGRE教程学习笔记-1.1

本文介绍了Ogre3D的基础操作,包括设置环境光、创建实体、场景节点管理及对象的移动、旋转与缩放等关键技术点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

声明:

1)请转载的博主注明出处。

2)此笔记是本人在自习学习Ogre教程的过程中的笔记 在原教程第一个函数出现的时候,我都会引用OGRE API Reference做出相应的解释,在这里感谢免费打工仔还有该教程的翻译者付出的辛勤劳动。 Ogre教程详见http://www.ogre3d.cn 以后我几乎每天都会更新的,嘿嘿。。。

基础教程一

1. setAmbientLight()。

首先需要为整个场景设置环境光,这样才可以看到要显示的内容,通过调用setAmbientLight函数并指定环境光的颜色就可以做到这些。指定的颜色由红、绿、蓝三种颜色组成,且每种色数值范围在 0 到 1 之间。

mSceneMgr->setAmbientLight(ColourValue(1,1,1));

注释: void Ogre::Materail::setAmbient(Real red, Real green, Real blue) 为每一个Technique中的每一个Pass设置环境光反射系数。

 注意: 此属性已被转移到Pass类,它是通过Technology访问。为简单起见,此方法允许您为每个当前技术设置这些属性,并且每一个Pass包含在这些Technology中。如果您需要更精确的信息,检索Technology和Pass的情况,并设置其属性

另外还有: Pass::setAmbient

2. 创建实体(Entity):

Entity *ent = mSceneMgr->createEntity(“Robot”,”robot.mesh”);

注: Virtual Entity* Ogre::SceneManager::createEntity(const String & entityName, const String & meshName) [virtual] 创建一个实体

参数: entityName 创建实体的名字(必需唯一) meshName 网格(mesh)的名字(比如:‘knot.oof’),该网格会被加载如果它是第一次加载的话。

3 创建场景节点:

SceneNode *node1= mSceneMgr->getRootSceneNode()->createChildSceneNode(“RotbotNode”);

注意: 3.1 virtual SceneNode* Ogre::SceneManager::getRootSceneNode(void) [virtual] 在场景层次跟节点处获得SceneNode

 注意: 整个场景由节点层次结构维持,它允许这样像相对变换,在渲染状态一般变动等(参见SceneNode获取更多的信息)事情的发生。在这个基本场景管理器类,应用程序使用Ogre是自用的使用这种层次结构无论他是什么样子,因为除了相对于每个节点相对变换,它还没有什么真实的意义(更具体的子类将构造专门的节点结构提供一些功能方法,例如加载节点BSP树)。

3.2 Virtual SceneNode* Ogre::SceneNode::createChildSceneNode( const Vector3 & translate = Vector3::ZERO, const Quaternion & rotate = Quaternion::IDENTITY ) [virtual]

创建一个无名的新的SceneNode作为这个节点的孩子节点

参数: translate 最初孩子节点相对于父节点的平移偏移量 rotate 相对于父节点的初始化旋转

4 把实体绑定到已存在的节点上

Node1->attachObject(ent1);

Virtual void Ogre::SceneNode::attachObject(MovableObject* obj)[virtual]

 添加一个场景对象的实例到这个节点上

评论: 场景对象可以包括实体对象,摄像机对象,灯光对象,粒子系统对象等,每一个可移动对象的子类都可以的。

5 移动节点:

Node1->translate(Vector3(25,0,0));

virtual void Ogre::Node::translate( Const Vector3 & d, TransformSpace relativeTo = TS_PARENT ) [virtual] 沿着笛卡尔坐标轴移动节点 这种方法通过沿着笛卡尔坐标轴(也就是世界坐标系下的x,y,z)的固定向量来移动节点

参数: d 向量x,y,z的值代表着移动距离 relativeTo 移动相关的空间 另外还有函数: virtual void Ogre::Node::translate( Real x, Real y, Real z, TransformSpace relativeTo = TS_PARENT ) [virtual]

6缩放网格: node->scale(0.5,1,2);

void Ogre::AxisAlignedBox::scale(const Vector3 & s)

根据给定的向量缩放AABB 在OgreAxisAlignedBox.h文件的645行处定义这个函数

7对象旋转 node->pitch(Degree(-90));//yaw,roll virtual void Ogre::Node::pitch( const Radian & angle, TransformSpace relativeTo = TS_LOCAL ) [virtual]

围绕X轴旋转节点

                                                                                

                                                                                                                                                               OGRE-旺

                                                                                                                                                              记于2009-11-28夜

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值