3D场景图与相机操作详解
1. 场景图中的子对象层级
在场景图中,允许存在两代子对象。每个 Object3D 实例都有 parent 属性,该属性指向其所在的 ObjectContainer3D 实例。一个3D对象只能有一个父对象,如果对一个已经在场景图其他位置添加过的对象执行 addChild() 方法,它会先从原位置移除,再添加到新的3D容器中。
为了性能考虑,不建议过度嵌套场景图对象。虽然嵌套可以在对象动画时避免复杂的数学计算,但深度嵌套的场景图会增加渲染的处理负担。优化场景时,仅在必要时嵌套对象,以避免不必要的性能损耗。
移除场景图中的3D对象时,需要在该对象的直接父对象上执行 removeChild() 方法。例如:
myParent.removeChild(mySelf); // 可行,myParent是mySelf的父对象
myGrandParent.removeChild(mySelf); // 失败,mySelf不是myGrandParent的子对象
2. 3D中的移动、旋转和缩放
在场景图中,3D对象的坐标不受场景全局坐标系的限制,而是受其在场景图层级中上级3D容器的影响。这种分层坐标系的概念在2D的Flash开发中很常见。例如,在Flash中创建一个 MovieClip 对象,添加到舞台并旋转45度,再在其中创建另一个
超级会员免费看
订阅专栏 解锁全文
1162

被折叠的 条评论
为什么被折叠?



