读书人

场景的治理 :MovableObject

发布时间: 2012-12-30 10:43:15 作者: rapoo

场景的管理 :MovableObject

MovableObject :是可移动的对象,对象是挂接到节点上的,它才是场景中我们真实看的见的东西。

?

场景的治理 :MovableObject

?

父类:

1.AnimableObject :

?

?

?这个类比较重要的一个比较重要的方法就是这个方法,能够获取一个AnimableValuePtr指针,而AnimableValuePtr
?指针是用于数值动画的,继承这个类说明MovableObject具备数值动画的能力。

2.ShadowCaster :

这个类是用于创建阴影的,ogre创建阴影是采用Z-PASS和Z-PAIL 这两种阴影体方式,产生阴影的细节比较复杂,尤其是建立在一个复杂场景之上的时候。

继承这两个类,使MovableObject?获得了播放数值动画和产生阴影的能力。

?

MovableObject?:

?

String mName;MovableObjectFactory* mCreator;SceneManager* mManager;Node* mParentNode;bool mParentIsTagPoint;bool mVisible;bool mDebugDisplay;Real mUpperDistance;               // ??? Real mSquaredUpperDistance;  // ??? Real mMinPixelSize;                   // ??? bool mBeyondFarDistance;  // 是否隐藏,超过距离UserObjectBindings mUserObjectBindings; // 用户对象的约束,一个存放属性的mapuint8 mRenderQueueID; bool mRenderQueueIDSet;ushort mRenderQueuePriority;bool mRenderQueuePrioritySet;uint32 mQueryFlags;    // 标志位,标志该对象是否可以被查询uint32 mVisibilityFlags; // 标志位,标志该对象是否被场景管理器可见mutable AxisAlignedBox mWorldAABB;  // 此物体的边界框mutable Sphere mWorldBoundingSphere; // 此物体的边界球mutable AxisAlignedBox mWorldDarkCapBounds; // 我的理解,此物体产生的阴影体,不一定对 - -bool mCastShadows; // 是否被阴影遮盖,此物体bool mRenderingDisabled; // 渲染监听器是否禁用Listener* mListener; mutable LightList mLightList; // 能照到此物体的所有的光mutable ulong mLightListUpdated;uint32 mLightMask;static uint32 msDefaultQueryFlags;static uint32 msDefaultVisibilityFlags;

MovableObject 里面没有特别复杂的逻辑,主要是维护这些字段,从这些字段可以看出,MovableObject?依旧是对可移动物体的抽象描述。

?

?

读书人网 >编程

热点推荐