SceneManager(场景管理类)

所有出现在屏幕里的东西都受SceneManager管理(最好是这样),当你放置对象在场景里,SceneManager就会跟踪他们的位置,当你为场景创建一个相机,

SceneManager也会追踪他们,等等.

SceneManager有多种不同类型,如:渲染BSP地图,渲染地形等等.

Entity(实体类)

实体是能在场景里渲染的对象中的一种.他可以是一个3DMesh(模型),一个机器人,一条鱼,你的游戏角色所走的地形也是一个大的实体.

这些就不属于实体,如:灯光,广告板,粒子,相机等等

特别需要说明的是:在Axiom中,不能将一个entity直接添加到场景中,需要将entity绑定到一个ScreenNode上,这个ScreenNode作为场景节点将包含

坐标,方向等信息.

SceneNode(场景节点)

再次强调,ScreenNode是一个包含位置,方向信息的节点类,它不能被渲染,只有当ScreenNode绑定了Entity,才能正确显示.

ScreenNode可以绑定多个物体,例如:一个角色周围环绕着多个灯光.他们一起在场景里移动.

ScreenManager有一个Root节点,而所有ScreenNode的位置都受其父节点影响.

下面是创建一个基本物体的代码

_scene.AmbientLight = new ColorEx(, , );
Entity ent = _scene.CreateEntity("Penguin", "penguin.mesh");
SceneNode node = _scene.RootSceneNode.CreateChildSceneNode("PenguinNode"); node.AttachObject(ent);
Entity ent2 = _scene.CreateEntity("Penguin2", "penguin.mesh");
SceneNode node2 = _scene.RootSceneNode.CreateChildSceneNode("Penguin2", new Vector3(, , ));
node2.AttachObject(ent2);

创建一个指定位置的物体.

Axiom3D学习日记 2.介绍SceneManager,SceneNode,Entity的更多相关文章

  1. Axiom3D学习日记 1.程序配置

    1.需要引用的库 Axiom Axiom.Framework Axiom.Platforms.Win32 Axiom.Plugins.FreeImageCodecs Axiom.Plugins.Par ...

  2. Axiom3D学习日记 3.Cameras, Lights, and Shadows

    Camera 相机: 相机基础知识不写了,需要注意的是:axiom目前不支持同时操作多个相机. 创建,设置位置基本操作. _camera = _scene.CreateCamera("Mai ...

  3. Axiom3D学习日记 5.Frame Listeners, and Input Handling

    Frame Listeners In Ogre's C++, we would register a class to receive notification before and after a ...

  4. Axiom3D学习日记 4.地形,天空,雾

    首先需要引用Axiom.SceneManagers.Octree.dll. 地形: 载入地形配置,从一个文件中. scene.LoadWorldGeometry( "Terrain.xml& ...

  5. Axiom3D学习日记 0.Axiom基础知识

    Axiom 3D Engine An open-source, cross-platform, managed 3D rendering engine for DirectX, XNA and Ope ...

  6. 【转载】Ogre:Beginner Tutorial 1: SceneNode, Entity,和SceneManager 结构

    原文:Beginner Tutorial 1: SceneNode, Entity,和SceneManager 结构   先决条件 这个教程假设你有C++编程的基础并且可以配置并编译OGRE应用程序 ...

  7. Entity Framework Code First 学习日记(1)精

    我最近几天正在学习Entity Framework Code First.我打算分享一系列的学习笔记,今天是第一部分: 为什么要使用Code First: 近 年来,随着domain driven d ...

  8. Linux学习日记-使用EF6 Code First(四)

    一.在linux上使用EF 开发环境 VS2013+mono 3.10.0 +EF 6.1.0 先检测一下EF是不是6的 如果不是  请参阅 Linux学习日记-EF6的安装升级(三) 由于我的数据库 ...

  9. android学习日记03--常用控件checkbox/radiobutton

    常用控件3.checkbox 复选框,确定是否勾选,点击一下勾选,点击第二下取消,当有一系列备选项时适合用checkbox控件,方便用户提交数据. 贴上例子Activity的java代码 packag ...

随机推荐

  1. socket、tcp、http

    第一部分.概念的理解 1.什么是Socket? Socket又称之为“套接字”,是系统提供的用于网络通信的方法.它的实质并不是一种协议,没有规定计算机应当怎么样传递消息,只是给程序员提供了一个发送消息 ...

  2. Android UI基础教程 目录

    从csdn下载了这本英文版的书之后,又去京东搞了一个中文目录下来.对照着看. 话说,这本书绝对超值.有money的童鞋看完英文版记得去买中文版的~~ Android UI基础教程完整英文版 pdf+源 ...

  3. lc面试准备:Partition List

    1 题目 Given a linked list and a value x, partition it such that all nodes less than x come before nod ...

  4. 通过jquery-ui中的sortable来实现拖拽排序

    1.引入文件 <script src="{sh::PUB}js/jquery-1.10.1.min.js"></script> <link rel=& ...

  5. IIS7 上传 下载文件大小限制的设置

    IIS7 上传 下载文件大小限制的设置 本文来自IISBOY网 一.找到修改大小的配置文件和配置节点 本文来自IISBOY网 打开你系统盘(我是C盘),找到 C:\Windows\System32\i ...

  6. ubuntu14.04安装百度云Bcloud

    git地址:https://github.com/LiuLang/bcloud-packages sudo apt-get install python3-setuptools md5sum bclo ...

  7. [JIT_APP]Android SQLite简介

    SQLite介绍 SQLite是一个非常流行的嵌入式数据库,它支持SQL语言,并且只利用很少的内存就有很好的性能.此外它还是开源的,任何人都可以使用它.许多开源项目(Mozilla, PHP, Pyt ...

  8. main函数的3个参数

    最早是在MCU中使用C语言,MCU中的main函数没有参数. 后来在PC上面使用C语言,一般教程都写的是main函数有2个参数: int main(int argc, const char **arg ...

  9. c++异常安全和copy and swap策略

    异常安全有两个目标: 不泄露任何资源.这个通过RAII可以做到. 不破坏数据结构.这是下文要讨论的事情 异常安全有三个级别: 基本安全:异常发生后对象和数据结构还有合法状态.实现简单,应该作为最低要求 ...

  10. ZOJ 3761 Easy billiards 月赛E DFS

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3761 题目大意:给定n个位置的小球,小球的运动方向只能是水平或者 ...