OGRE基础教程 一 SceneManager、SceneNode、Entity

英语水平有限,欢迎大家批评指正微笑

本文并没有将原文全部翻译,只是将其中的一些知识点翻译总结了一下,想要查看详细讲解的话,可以到原文处看一下,附上英文原文地址:http://www.ogre3d.org/tikiwiki/tiki-index.php?page=Basic+Tutorial+1&structure=Tutorials

1.SceneManager

    SceneManager管理屏幕上出现的所有东西,当对象(Objects)被加入场景中时,SceneManager记录他们的位置。当你创建Camera(摄像机)、plane(平面)、billboard(广告牌)、light(灯光)等时,都由SceneManager来记录他们。

    SceneManager有多种类型,比如渲染terrain(地面)、BSP、Maps等的SceneManager。

2.Entity

    Entity是可以渲染到场景中的对象的一种类型。可以认为Entity是有3D mesh(网格)代表的任何东西。一个Robot、一条鱼、character行走的terrain都是Entity,但是像light、Billboard、particles(粒子)、camera等就不是Entity了。

    有一点要注意,Ogre将可渲染对象的位置和方向分开,这意味着你不能直接把一个Entity加入到场景中。要使Entity依附于一个SceneNode对象上,而SceneNode包含了位置和方向信息。

3.SceneNode

    SceneNode可以记录附加到他的所有对象的位置和方向信息,只有将你创建的Entity附加到一个SceneNode才能渲染到场景中。另外,SceneNode并不是显示到屏幕上的一个对象,只有创建SceneNode并附加一个Entity才能显示出来。

    SceneNode可以附加任意多的对象。比如有一个角色于屏幕上走动,你想在他周围生成一个light。要做出来,首先要创建一个SceneNode,然后为角色创建一个Entity并附加到这个SceneNode上,然后再创建一个light对象并且同样附加到这个SceneNode上,SceneNode也可以附加到其他的SceneNode上。

    下例是Ogre中添加对象的代码:

    Ogre::Entity* ogreHead = mSceneMgr->createEntity("Head", "ogrehead.mesh");                

    Ogre::SceneNode* headNode = mSceneMgr->getRootSceneNode()->createChildSceneNode("HeadNode");

    headNode->attachObject(ogreHead);
  其结果如下图:
    

4.Coordinates and Vectors

    Ogre使用X轴和Z轴作为水平面,Y轴作为垂直轴。
    

    Ogre使用Vector类来代表位置和方向,Vector分为2、3、4维,其中Vector3时最常用的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值