Axiom3D学习日记 2.介绍SceneManager,SceneNode,Entity
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的更多相关文章
- Axiom3D学习日记 1.程序配置
1.需要引用的库 Axiom Axiom.Framework Axiom.Platforms.Win32 Axiom.Plugins.FreeImageCodecs Axiom.Plugins.Par ...
- Axiom3D学习日记 3.Cameras, Lights, and Shadows
Camera 相机: 相机基础知识不写了,需要注意的是:axiom目前不支持同时操作多个相机. 创建,设置位置基本操作. _camera = _scene.CreateCamera("Mai ...
- 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 ...
- Axiom3D学习日记 4.地形,天空,雾
首先需要引用Axiom.SceneManagers.Octree.dll. 地形: 载入地形配置,从一个文件中. scene.LoadWorldGeometry( "Terrain.xml& ...
- Axiom3D学习日记 0.Axiom基础知识
Axiom 3D Engine An open-source, cross-platform, managed 3D rendering engine for DirectX, XNA and Ope ...
- 【转载】Ogre:Beginner Tutorial 1: SceneNode, Entity,和SceneManager 结构
原文:Beginner Tutorial 1: SceneNode, Entity,和SceneManager 结构 先决条件 这个教程假设你有C++编程的基础并且可以配置并编译OGRE应用程序 ...
- Entity Framework Code First 学习日记(1)精
我最近几天正在学习Entity Framework Code First.我打算分享一系列的学习笔记,今天是第一部分: 为什么要使用Code First: 近 年来,随着domain driven d ...
- Linux学习日记-使用EF6 Code First(四)
一.在linux上使用EF 开发环境 VS2013+mono 3.10.0 +EF 6.1.0 先检测一下EF是不是6的 如果不是 请参阅 Linux学习日记-EF6的安装升级(三) 由于我的数据库 ...
- android学习日记03--常用控件checkbox/radiobutton
常用控件3.checkbox 复选框,确定是否勾选,点击一下勾选,点击第二下取消,当有一系列备选项时适合用checkbox控件,方便用户提交数据. 贴上例子Activity的java代码 packag ...
随机推荐
- Java语言基础(三) Java注释
Java注释 Java提供了三种注释的方式: ①单行注释:// ②多行注释:/* ... */ ③归档(JavaDoc)注释: /** * 作者:heyiyong * 时间:2013年11月27日 ...
- Android Studio启动时Fetching android sdk component information超时的解决方案
1)进入刚安装的Android Studio目录下的bin目录.找到idea.properties文件,用文本编辑器打开. 2)在idea.properties文件末尾添加一行: disable.an ...
- C++0x对局部静态初始化作出了线程安全的要求,singleton的写法可以回归到最原始的方式
class Foo{public: staticFoo& instance(void) { static Foo s_instance; return s_instance; }}; 以下摘自 ...
- 字符串(后缀数组):HAOI2016 找相同子串
[HAOI2016]找相同子串 [题目描述] 给定两个字符串,求出在两个字符串中各取出一个子串使得这两个子串相同的方案数.两个方案不同当且仅当这两个子串中有一个位置不同. [输入格式] 两行,两个字符 ...
- 连接池 BoneCPDataSource
一篇连接池不错的文章 http://blog.csdn.net/vincent_czz/article/details/7646392
- HDOJ 1716 排列2 next_permutation函数
Problem Description Ray又对数字的列产生了兴趣: 现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数. Input 每组数据占一行,代表四张卡 ...
- UVa 10294 Arif in Dhaka (First Love Part 2)(置换)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=35397 [思路] Polya定理. 旋转:循环节为gcd(i,n) ...
- cocos2d的ARC开启
ARC,官方解释是Automatic Reference Counting,是Apple公司从iOS5开始为开发者新添加的一个功能. 相信很多写移动开发,可能不只是移动开发的人都深有体会,创建一个对象 ...
- 阿里云如何添加多个网站 for Linux(绑定域名)
我们可以通过.htaccess文件来达到一个空间帮顶多个域名的效果,即域名1访问空间上webroot下的目录1(即二级目录),域名2访问空间上webroot下的目录2,等等.二级目录名为fuli,需要 ...
- Hadoop Hive概念学习系列之什么是Hive?(一)
参考 <Hadoop大数据分析与挖掘实战>的在线电子书阅读 http://yuedu.baidu.com/ebook/d128cf8e33687e21 ...