1、基于元球的几何造型与变形动画技术叶婧 刘骥才 汪国平 董士海 1北京大学计算机科学技术系,北京 100871摘要 元球所具有的特殊 势函数分布,提出了一个新的用更小的数据量包含更多的几何信息的造型和变形模型。元球造型以独特的 优点在几何造型和 变形动画得到了广泛的应用,本文围绕元球造型在上述两个方面,通 过实验进行了 详细的讨论。同时针对元球曲面是隐式曲面效率不高的问题,对曲面形式和算法都进 行了改进和加速,得到了可 观的动画效果。关键词 元球造型;变形动画;等势面;Marching Cube 算法1 引言在计算机动画和几何造型中,一个很重要的研究课题是怎样调整物体的形状。电影和动画中往往通过
2、物体的变形来实现一些具有冲击性的特效。传统的变形方法是通过移动物体的顶点或控制顶点,但是,当我们要对物体进行某种整体变形或者需移动的顶点非常多时,该方法就显得相当费时和繁琐。相比之下,一种于 80 年代提出的造型技术元球造型技术,却在许多方面体现出了明显的优势。一方面通过对于普通的球体定义具有物理意义的势函数,使得球体之间有了相互作用:靠近可以相互吸引以至融合,将元球质量定义为负数,还可以产生尖锐和凹陷的效果。另一方面,通过对元球的各种参数:半径,势函数公式,空间坐标,阈值的设定与调节,可以方便的修改模型和形变的效果。这种概念就像是“牵一发而动全身” ,不过这种牵制是一种自然的方式进行的,而通
3、过对参数的调节,又可以保证较好的局部性,不至于影响到全局1。2 背景21 元球的定义元球又叫变形球,英文名是 Metaball,它被定义为三维空间的可变密度场,从中心向外辐射着势能,凡是处于它密度场之内的其它的元球都会和它相互吸引。距离越1 本文得到国家自然基金(编号:60173062) 、北京市自然基金(编号:4012008) 十五 863 项目(编号:2001AA115126)资助。联系作者 刘骥才: 男 21 岁,北京大学计算机系 00 级本科生 ;叶婧 女 20 岁,北京大学计算机系 00 级本科生。导师:汪国平,教授,博士生导师。研究方向:计算机图形学,CAD 与几何造型,人机交
4、互与虚拟现实,网络多媒体技术近,受到的吸引力越大。元球曲面是一个特殊的隐函数曲面,它采用具有等势场值的点来定义曲面,因此元球曲面实际上是一张等势面(iso-surface)。元球具有相互靠近到一定距离产生变形,再进一步靠近是融合成光滑表面的特性2。以两个元球为例,它们靠近是的形变过程如图所示:图 2.1 两个元球靠近并融合的过程同时广义的元球的质量还可以是负数,将一正一负两个元球融合到一起就会产生凹陷的效果,两种情况分别如图:a b 图 2.2 (a)两个质量为正的元球融合的结果 (b)质量为一正一负的两个元球(在左边的较大的质量为正,右边较小的质量为负)22 元球的曲面形式对于每一个元球而言
5、,根据自身的质量(或密度)都有一个势函数,确定了空间中某一点相对于这个元球的势能。常见的势函数有2:(1) Blinn 的幂函数: fi(x,y,z)=exp(-ar2)(2) Nishimura 的分段二次多项式3Rr0 ,)r3(-1i2ifi(x,y,z)= i2ir,)(-(3) Murakami 的四次多项式1- 2 , i)Rr(iRr0fi(x,y,z)= 0 , r Ri(4) Wyvill 的六次多项式i2i4i6i Rr0 1,)r(9-)(17)r(94- fi(x,y,z)= 0 , r Ri其中 r 表示空间中一点(x,y,z)到第 i 个元球球心的距离,Ri 是第
6、i 个元球的有效半径 。这些公式中出现了大量的分数和高次运算,这使得本来效率就很有限的隐式曲面的运算量有大大增加。基于造型和变形动画的用途,我们试图对公式进行简化,降低次数和简化系数,并得到了理想的效果(见 6元球绘制算法以及改进) 。对于一个由 n 个元球所构成的元球系统,它所对应的等势面应该满足: f(x,y,z) = qifi (x,y,z) T 0n1i其中 fi (x,y,z)为第 i 个元球的势函数,T 为阈值, qi 为第 i 个元球的密度(或质量) 。由此公式可得,该系统所确定的表面的势能即为阈值 T。同时,对于空间中任何一点也可以通过比较该点的势能与 T 的大小来判断到底是在
7、等势面内部还是外部大于 T,在表面内部;小于 T,则处于表面外部;等于 T 的时候,恰好在等势面上。23 元球造型技术的主要优点将多个元球组合起来能够生成非常复杂的形状,如人体器官,动物形体,液体颗粒群等。元球造型技术主要有以下优点:(1) 所需的数据量通常比多边形表示少 23 个数量级。例如,用 500 个元球就可以构造出一个较好的人体。(2) 适合于采用 CSG 模型来描述景物。(3) 适合表示可以变形的物体。采用元球造型,物体的变形能以一种自然的方式进行。(4) 适合于人体,动物器官和液体的造型:在计算机动画中,人体造型是一个难点。人的肌肉不仅形状复杂,而且随人体的运动而变形,元球是解决
8、这类问题的有效手段(5) 生成的曲面永远是光滑的。正是这些性质,使得元球造型技术得到了广泛的应用。通过位置、朝向、大小和密度的巧妙控制,可用元球生成许多复杂的形体,而这些形体又是传统造型方法很难做到的。3 相关工作隐式曲面的造型和动画研究近年来逐渐为人们研究的热点,欧洲图形学学会专门设立了相应的 Implicit Surface 学术会议。该会议从 1995 年开始,每一年半举办一次。隐式曲面是元球的更一般形式,它在表现人体的肌肉、水滴、云、树等物体的造型和动画方面有很大的优势。元球由于其本身所特有的良好的表面光滑性,特殊的可变形性被广泛地应用在人体和动物的造型、流体模拟等实现当中。基于三层模
9、型的肌肉模型涉及到复杂的运动学计算和有限元分析计算,故计算量非常巨大,所以,有研究者提出采用自由变形技术(Free Form Deformation,FFD )来驱动皮肤表面几何的变形3。使用元球造型可以模拟骨骼、肌肉和脂肪组织总的行为。这种方法简单直观,与隐式曲面、参数曲面和多边形曲面结合使用可以产生非常真实健壮的人体变形。Ryouji Matsuda 和Tomuyuki Nishita曾提出过利用元球根据所测得的人体三围数据进行人体的建模,以将此应用在服装CAD当中的基本方法和实现。由于人体的轮廓能够简单地由若干球体相互交融搭建而成,因此可以很轻易地依据一些基本的轮廓数据:如三围,身高等确
10、定人体的大致轮廓。而且可以进行即时的修改4。由于元球的和水滴相象的性质,元球还可以被用来进行液体颗粒的模拟,尤其是浓度比较大,胶着性比较好的液体。Young-Jung Yu,Ho-Youl Jung,Hwan-Gue Cho等人利用这一特性进行了基于元球的水波的模拟,在普通的单纯球体基础上又加了改进:增加了水滴液体对光的折射和反射,在重力场作用下发生的形变以及非球形水滴的模拟。5元球也因为其良好的微粒性,渐渐地在云彩,流水等液体颗粒群的模拟也中越来越多地被用到。64实例说明:元球在几何造型上的优势一个简单的事实可以看出元球造型的独到的特点:由多个元球组成的系统所决定的等势面,就像是在依附在以球
11、体为支架的表面。这就使得元球造型特别适合动物和人体的造型 我们可以根据真实的生理结构(一般情况下,按照骨骼结构) ,来确定对应元球的位置,而显示时对应的等势面就跟实际上生物体的形态很相似,并且通过对于各个球体的半径和势能的调整,就可以对模型的不同部位作细部调整。 7为了更加清晰的说明,下面我们使用图示,将元球表示,等势面表示,生物骨骼一并放在一起,对比来看看这一独特的优势:【例一】剑龙 图 4.1 (a)剑龙的骨骼图片 (b)剑龙模型对应的元球位置分布 a (c)与(b)相对应的剑龙模型的元球等势面 b c图片来源:图(a)http:/ 2003-6-26)图 (b) (c) http:/ww
12、w.studio- (最后访问时间 2003-6-26)通过对照图 4.1(a)与(b) ,可以看出,在使用元球造型构造剑龙模型的时候,基本可以对照实际的剑龙的骨骼图片。在建立好了基本模型之后,对每一个元球的半径和势能的修改都是具有实际的物理意义的:修改半径相当于修改某一个骨骼或者关节的大小,修改势能相当于修改附着于骨骼上的肌肉组织,它们都会影响到模型的显示效果。传统的造型方式主要是分为骨骼、肌肉、皮肤三个系统,操作相对繁琐,并且修改起来也非常不方便。元球的这些性质决定了它的一个非常显著的优点当模型运动的时候,肌肉能够跟随着骨骼非常一致的运动,这使得元球造型技术不仅适合静态模型的造型,对于非常
13、适合模型的变形和运动的动画。【例二】人的头部人的头部是一个非常典型的由骨骼和肌肉来确定脸形和外表的模型(考古学家经常只用对头骨的分析就可以判断死者的性别和年龄) 。在我们的实验中,也按照头骨的基本结构,尝试着构造了人体的头部模型,如图 4.2:图 4.2 (a)头部的元球模型 (b)与(a)相对应的等势面 a b (c)将(a)中的颚骨处修改的消瘦一些的元球模型 c d (d)与(c)相对应的等势面在(a)与(c)中,为了显示出空间的重叠关系,对元球模型采用的是线框模型表示,这样可以清楚的看到位于较大的球体内部的元球。对于眼部,耳部等处的凹陷效果,是通过在对应的位置安放质量为负的元球来达到的(
14、例如,图 4.2(a)与(c)中红色和绿色的小球的质量都是负的) 。同时我们还可以看到的是,以上的线框模型与实际上的人的头骨结构是非常相似的:在对应与鼻骨,颧骨,下巴,脸颊,耳朵的位置上,我们也分别放置了大小不同的元球,得到的效果在(b)和(d)中都可以看出。在前面也提到过,使用元球造型技术,对于模型的修改非常简单方便。如果我们希望人物的脸颊比较消瘦,只需要将对应于脸颊处的元球进行简单缩放。图 4.2(c)与(a)的唯一不同就是表示脸颊的元球(半径第二大的元球)的半径要小一些,虽然只作了这样小的改动,但是(d)与(b)相比,这个脸部的变化不仅明显而且自然。相应的,对于脸部其他部位的元球作半径和
15、空间坐标的调整,可以很方便地对人脸造型的骨骼和肌肉进行修改。【例三】其它动物的造型基于元球在造动物形体方面的另一个优势就是所需要的数据量非常的小。以海豚为例:造出比较逼真的海豚轮廓(如图4.3(a),(b))一共用到了50个元球,2718个空间点,5424个三角片,将元球的半径、三维空间坐标存储在一个文件中导出,所占的空间是0.73k;而转换为同等的3ds文件,所占的空间为74.5k。从一个3D造型的数据量看,元球造型所需要的数据量是三角片造型的1/102 !在图 4.3(c)和(d)中还列出了使用元球造型的鸵鸟。按照普遍的经验来看,元球造型所需的数据量一般也都会比传统造型所需的数据量少 23
16、 个数量级。图 4.3 (a)、(b)海豚模型 a b (c)、(d)鸵鸟模型 c d 5元球造型在变形动画上的优势当两个元球在靠近的时候,会有一个类似于水银的融合的过程,由于导致这些效果的根本原因是因为元球是具有势能的,所以它非常适合模拟液体的流动和融合效果,并且从一个模型变为另一个模型的时候可以非常的自然,圆滑。著名电影终结者II中,从金属液体变成机器人的特效就是使用元球造型技术完成的。在我们的工作中,实现了对造型之后的模型之间的转换,而且变形的方式非常的灵活,用户可以根据自己的需要自行定义。因为在元球造型中的基本单位是一个元球,那么我们可以将当前模型的某一个元球对应到下一个模型的一个元球
17、,所需要的变化实际上就是该球体位置和大小的改变。例如希望模型转换采用的方式是切向运动,那么只需在每一祯刷新的时候,用该元球的目标位置减去当前的位置,可以确定当前速度的方向,大小可以由具体的需要自行定义。当然,为了得到自然的平移运动效果(一般这样的情况对应的是在同一个模型运动的关键祯之间插值变换),元球的位置应该有很强的对应关系,也就是如果在某一个关键祯第 5 号元球表示海豚的尾巴,到了下一个关键祯, 5 号元球也应该表示海豚的尾巴。例如,我们试着对一只鸟的模型中右腿位置稍作了改变,那么就可以得到图 5.1 中的变形效果(为了反映动画效果,将不同时刻的图进行合成得到)。图 5.1 鸵鸟的右腿抬起
18、的过程抓图如果希望在变换的时候由飞散的粒子效果(一般这种情况是用在不同模型之间的变形),我们可以将模型间元球的对应关系打散,也就是使得元球的位置发生较大的变化,这样原来聚集到一起的球体就会散开,又聚拢。图 5.2 是我们实验中得到的效果图,其中表面的金属感是通过添加纹理和光照得到。图 5.2 较为分散的形变效果 (a)海豚 (b)中间过程 (c)剑龙 a b c 基本配置:处理器 AMD Athlon Processor 内存 256MB 显卡 NVIDIA RIVA TNT2 M64(32M 显存)显示效果:在 452*329*16 位色的分辨率下 达到 7-10 fps6元球绘制算法以及改
19、进虽然元球造型在变形动画上有许多独到的优势,但是由于它的曲面形式是隐式曲面,对于隐式函数的计算往往成为绘制的瓶颈,尤其是在即时动画方面的应用。对于元球的绘制采用的比较普遍的算法是 marching cube 算法,这也是应用得很普遍的绘制等势面或者隐函数曲线算法。基本思想是按照空间坐标将空间划分成或干等大小的立方体(cube) 。通过测试空间每一个立方体的每一个顶点,针对所对应的应该在此 cube坐标应该绘制的情况替换为一系列适当的三角片。最终所得的结果就是一个近似于等势面的光滑表面8 。首先考虑对势能公式的简化。最典型的等势面势能计算公式为 Wyvill 的六次多项式,由于在元球造型上的应用
20、有其特殊性和局限性,可以抛开大计算量的高次公式,而使用类似于分子势能的计算方法,来模拟分子间的作用力,公式如下:f(x,y,z) = m / distance2 m 代表该元球的质量, distance 代表空间上一点 (x,y,z)到该元球球心的距离。其次考虑到真正与元球相交的体元一般都占不到整体的 10%。如果对 cube 空间中的每一个点都计算与等势面的相交的情况,这样的计算是很不明智的。将算法作以下改进:每次的计算都是从一个元球的中心开始,沿着 z 轴正方向移动,直到遇到等势面。等势面的绘制采用基于连通图的 marching cube 绘制方式9查找到一个需绘制 cube 之后紧接着绘
21、制它的邻接 cube 。类似于填充算法中的种子算法,从等势面上一个面片开始,将与此连通的整个等势面依次绘制出来。参考文献:1 Xiaogang Jin, Y.F. Li, Qunsheng Peng, “General Constrained Deformation Based on Generalized Metaballs“ Pacific Graphics98, 1998, Singapore, IEEE Computer Society, PP.115-124.2 彭群生,鲍虎君,金小刚 编著 计算机真实感图形的算法基础, 科学出版社 1999 年 3 彭群生,鲍虎军,金小刚,冯结青,
22、吕思超 计算机动画算法及应用, 浙江省科技进步三等奖 19984 Ryouji Matsuda, Tomuyuki Nishita: Modeling and Deformation Method of Human Body Model Based on Range Data,. Shape Modeling International 19995 Yu, Y.J., Jung, H.Y., Cho, H.G., A New Rendering Technique for Water Droplet using Metaball in the Gravitation Force, 6th In
23、ternational Conference in Central Europe on Computer Graphics and Visualization (WSCG 98), pp.448-454, 1998.6 T. Nishita, Y. Dobashi: Modeling and Rendering Methods of Clouds ,Proceedings of the 7th Pacific Conference, 1999-10, pp. 218-2197 金小刚 彭群生:基于广义元球的一般约束变形 , 软件学报, 1998 年 第 9 卷 第 9 期 No.9 Vol.9
24、 19988 C.Montani,R.Scateni,R.Scopigno , Discretized Marching Cubes, In R. D. Bergeron and A. E. Kaufman, editors, Visualization 94 Proceedings, pages 281-287. IEEE Computer Society, IEEE Computer Society Press, 1994.9 Y. Kenmochi, K. Kotani and A. Imiya, “Marching Cubes Method with Connectivity Cons
25、ideration,“ PRMU-98-218, pp. 197-204, 1999.The technique of modeling and animation base on meatballYE Jing, LIU Jicai, WANG Guoping, DONG ShihaiDepartment of Computer Science and Technology, Peking UniversityAbstract:The special distribution of the potential fuction of metaballs ,has provided us a n
26、ew modeling and deformation technique that can contain more geometrical information in a much small data set,Hence Techniques based on metaballs have been widely applied to geometrical modeling and deformation animation.In this paper,the authors elaborate on the merits of the modeling method based o
27、n metaballs in the above two respects, and proposed an efficient calculation method to improve the both the fuction and algorithm of implict surfaces .Experiments show the deformation and animation based on our model is efficient,and displays considerable visual effects. keyword: metaball modeling, deformation animation,iso-surface,Marching Cube algorithm