zoukankan      html  css  js  c++  java
  • 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(1, 1, 1);
    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(100, 0, 0));
    node2.AttachObject(ent2);

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

  • 相关阅读:
    Vue Router详细教程
    Vue CLI使用
    百度点选识别,单字90+
    CPU毫秒级 | 极验点选识别
    Linux内核之进程管理
    Linux内核之基本概念
    MySQL InnoDB技术内幕:内存管理、事务和锁
    ZooKeeper简介
    分布式一致性协议之ZAB
    图解HTTP读书笔记
  • 原文地址:https://www.cnblogs.com/niconico/p/5007473.html
Copyright © 2011-2022 走看看