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. ebook-nodej

    http://www.nodebeginner.org/index-zh-cn.html https://about.pinterest.com/careers/engineering/#oFwkXf ...

  2. Altium Designer 定义板子外框

    Altium Designer 提供多种定义板子外形的方法. 第一种方法,在Files 面板(在界面下面System菜单条中查找)中选择PCB Templates命令.在这个界面下您可以选择符合您设计 ...

  3. SQL server 变量if,while,存储过程

    一.变量 1.if循环 2. 3.while循环 declare @ss int set @ss =2while @ss<10begin print 'Hello' set @ss=@ss+1e ...

  4. BZOJ1603: [Usaco2008 Oct]打谷机

    1603: [Usaco2008 Oct]打谷机 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 602  Solved: 458[Submit][Stat ...

  5. HDU 5926 Mr. Frog's Game 【模拟】 (2016CCPC东北地区大学生程序设计竞赛)

    Mr. Frog's Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  6. java生成随机整数

    1. 使用Random类的nextInt方法: Random rand = new Random(); rand.nextInt(max);, 此时输出[0,max),注意右边是开区间,如果需要设定最 ...

  7. bzoj 1026 [SCOI2009]windy数(数位DP)

    1026: [SCOI2009]windy数 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 4550  Solved: 2039[Submit][Sta ...

  8. Top 10 Java Debugging Tips with Eclipse

    In this tutorial we will see about debugging java applications using Eclipse. Debugging helps us to ...

  9. 2015/11/06 社保查询系统持续 挂机ing

  10. php优化技巧

    PHP优化的目的是花最少的代价换来最快的运行速度与最容易维护的代码.本文给大家提供全面的优化技巧. 1.echo比print快. 2.使用echo的多重参数代替字符串连接. 3.在执行for循环之前确 ...