焦作制作如何很好地管理包含着成千上万物体的复杂场景动画?
3.3 场景建模管理 如何很好地管理包含着成千上万物体的复杂场景,是动画设计系统必须要考虑的问题场景管理需 要做的,就是给场景提供良好的层次关系,以便更好地进行筛选和隐藏面消除。场景管理涉及可视性 处理和碰撞检测,系统需要判断场景的哪些部分在视见约束体之内,另外如果两个物体有碰撞关系, 则需要计算碰撞点的值。 为了达到实时效果,传统的场景管理技术无法适用。因为场景已经非常复杂,如果只采用Z缓冲的 方法进行可见性处理是不现实的。目前将场景分层的方法,可以把辅助数据结构应用于场景中,先把 场景分区,再分物体,甚至一直分割到多边形。如在室内场景管理中有两1、经常用到的层次体系: BSP( binary space partitioning)树1刊和包围体树(bouncling volumc_tree)E6]。前者是八叉树的 推广,用于加速剔除,而后者主要用于碰撞检测。
3.3.1 场景的组织和管理 场景的组织结构是渲染系统最基础和最重要的部分,也是实现的难点,是很多后续工作的基础, 如碰撞检测、消隐、阴影等。首先涉及的概念是空间细分,空间细分考虑整个物体空间并且根据物体 的空间占有(object occupancy)对空间中的每一个点进行分类。世界空间中的物体可以细分为立方体 素( voxel),然后再对体素进行分类。 八又树( octree):’:是一种描述三维空间的树状数据结构,
它可以描述一个三维场景内物体的 分布情况,并简单地将体素安排在层次结构中。因此场景管理可以在预处理的时候建立一棵树,这里 可以忽略物体的表示方法,而把焦点集中在场景的划分上。在树建立起来之后.通过实时遍历这棵树 来发现是否有两个物体占据了同一个空间而发生冲突,或者一个物体的空间是否不在视见约束体之内 。这样,所有筛选操作都可以简化为对树的遍历,这是一个线形时间的操作。
另一种表示场景的数据结构是BSP树,它被广泛应用于室内场景的处理巾,它使用一个分离面 (splitting plane)对每一层一分为二,从而实现对空间的划分,其中用于分割的平而川.以出现在任 何方位。BSP的想法最早在Fuchs( 1980)中被提出,起初的目的是为了解决文时消除隐藏面。BSP是八 叉树的一般化。前人在这方面已经做了很多有效的厂作。FLi-hs首i父将BSP技术中剖分平面的确定正 反侧性质应用于多边形场景的剖分,建立起空间二叉树结构。该二叉树的每一个结点表示一个子空间 及空间内所包禽的多边形。柱每…个结点’在问中,选取其中一个平面作为剖分平面,将该空间继续 削分成)1:负两个厂.,间,分别作勾[孩结。Lli的两个子结点,其巾与剖分平面有交的多边形被分割 成两个多边彤,分圳11 1入相成的于空间
转载请注明:
焦作flash动画制作公司:http://www.flash520.com/city101/