研究生计算机图形学-第9章.ppt_第1页
研究生计算机图形学-第9章.ppt_第2页
研究生计算机图形学-第9章.ppt_第3页
研究生计算机图形学-第9章.ppt_第4页
研究生计算机图形学-第9章.ppt_第5页
免费预览已结束,剩余92页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章自然景物的模拟与动画技术,9.1分数维几何与自然景物的模拟9.2科学计算可视化9.3计算机动画,9.1分数维几何与自然景物的模拟,9.1.1分维布朗运动(fBm)模型分维布朗运动(fractionalBrownianmotion)是1968年Mordlbrot和VanNess提出的一种一维高斯随机过程,简称fBm,它可用作自然界中许多自然时间序列的模型。在计算机图形学中,该模型可逼真地描绘许多自然现象,是理想的不规则物体的数学模型。fBm的定义如下:,设u是(-,+)中的一实数,w是某一随机函数的值域,属于某个采样空间W,则普通的布朗运动b(u,w)可定义为一个实随机函数,其增量b(u2,w)-b(u1,w)是均值为0,方差为|u2-u1|的正态分布,且当(u1,u2)和(u3,u4)不重叠时,b(u2,w)-b(u1,w)和b(u1,w)-b(u2,w)相互独立。设h为一个参数,且0h1,b0是任意实数,则参数为h、初值为b0的fBmbh(u,w)为,bh(0,w)=b0,(9-1),1.增量自相似性,当bh(u+tu,w)-b-h(u,w)被放大t-h倍时,增量bh(u+tu,w)-bh(u,w)和增量bh(u+u,w)-bh(u,w)具有相同的分布,故称h为自相似参数。,2.可由(9-2)式得到条件期望令bh(0,w)=0,则,在式(9-2)中,取k=0.5,则可得到更简便的形式:,Ebh(u/2,w)|bh(u,w)=0.5bh(u,w)bh(0,w)=0,(9-3),用fBm进行不规则物体模拟的关键问题是fBm的计算。计算fBm的时间复杂度是O(Nlog(N),这种复杂程度使图形的生成十分昂贵。后来Fournier等人提出了近似于fBm的算法,因为该算法使用了细分技术,所以不仅使近似fBm的计算趋于线性,而且可使用递归算法生成近似fBm的曲面。这种算法假设fBm的参数区间为(umin,umax)。在细分时,算法递归地对分区间(u1,u2)进行细分,直到一定的深度为止,这时近似fBm值f1被输出。在计算区间(u1,u2)中点近似fBm时,根据式(9-3),其均值是两个端点近似fBm值的算术平均值。根据fBm的自相似性,其均方根是端点均方根的2-h倍。,图9.1.1分维曲线的生成,图9.1.2分维曲面的生成,图9.1.3近似fBm参数曲面,我们可利用fBm进一步生成参数曲面。如图9.1.3所示,设Q(u,v)是一参数曲面,R(u,v,w)是向量随机函数,或称干扰向量,则,P(u,v)=Q(u,v)+R(u,v,w),(9-4),式(9-4)是随机曲面函数。R(u,v,w)的作用是引起曲面随机变化,而Q(u,v)用以定义整个曲面的位置。为了用fBm表示R(u,v,w),我们可以将fBm作为细分时各级小曲面片边界顶点的干扰向量R(u,v,w)。,我们还可以将fBm用于扰动参数曲面的法向量,从而在参数曲面上生成高度真实感的随机纹理。设参数曲面片上的单位法向量为N0(u,v),干扰向量为R(u,v,w),则扰动后的参数曲面的单位法向量为:,(9-5),这样就得到了随机纹理的参数曲面。由于在近似fBm算法中每一级递归时的自相似参数h可以不同,所以可用一系列h值控制生成图形纹理的粗糙程度。h大则纹理光滑;h小则纹理粗糙,h的参数域可不限于0,1。,9.1.2粒子系统,用粒子系统思想模拟不规则模糊物体的运动过程,可通过下面五个基本步骤实现:(1)确定所描述对象的粒子团初始状态;(2)产生新的粒子并把它们加入到当前的画面中,并赋予每一个新粒子一定的属性,如初始位置、速度及运动方向、初始大小、形状和质感以及存活期等;(3)删除已死亡的粒子;(4)根据粒子的属性对粒子进行移位或者变换;(5)绘制当前存活的所有粒子。,粒子系统的出现使模拟不规则模糊物体的运动变得简单易行。1985年,Reeves及Blau又进一步发展了粒子系统,他们惟妙惟肖地模拟了小草随风飘动的景物,在电影“StarTrek:ThewratgifKhan”中运用粒子系统描绘了两个星球相撞时爆发的大火蔓延整个星球的景象,目前,基于粒子系统,学者们提出了各种模拟模糊物体的模型。下面介绍两个例子,以便读者更好地理解粒子系统模拟景物的思想。,1.制作树木(Reeves,1985)BEGINmean-height,mean-width;/*树木形状的高度、宽度*/delta-height,delta-width;/*树木高度和宽度与其平均值的最大偏差*/rand();/*由计算机产生落在-1.0,1.0区间内的伪随机数*/Height=mean-height+rand().delta-height;Width=mean-width+rand().delta-width;ZK)生成所要树木;END例如对于落叶乔木,可设定:mean-height=60,mean-width=12delta-height=0.6,delta-width=0.05,2.制作火焰模型BEGIN设置初始火焰粒子属性(数量、位置、形状、颜色、速度、大小、亮度等)在燃点处绘制初始火焰REPEATn选择新粒子团赋予粒子团中粒子运动和变换(其粒子运动由其动力学性质确定)粒子存活期减1使部分火焰粒子消亡产生新的火焰粒子绘制新火焰粒子团END,在文献29中提到的火焰模型,是这样设定粒子系统的初始状态的。初始粒子数量:设Meannumber是屏幕上单位区域内产生单位大小的粒子数目的平均值;rand()产生-1,1之间的随机数;Varnumber为方差;Area为显示区域;Size为粒子大小。Number0=Meannumber+rand()VarnumberArea/Size.,初始位置:设燃点中心Position燃=X燃,Y燃,Z燃;燃烧区域半径为R燃;初始粒子的位置为i(t0).Position=Xi(t0),Yi(t0),Zi(t0),1iNumber0,火焰粒子的密度分布为:,其中,R=1/3R燃(火焰呈正态分布,燃点中心粒子密集,边界稀疏)。初始颜色和亮度:设基本色为Color0=r0,g0,b0,a0,颜色变化范围用Delta-color=del-r0,del-g0,del-b0,del-a0表示,则粒子的初始颜色由下式确定:Color(i)=Color0+rand()Delta_color火焰粒子的亮度是一个从0变化到1的实数,粒子的初始亮度最亮,Brightness(i)=1。,虽然粒子系统具有较大的灵活性,能够满足不同细节层次的需要,但根据模糊物体不同变化规律抽象出合适的粒子参数和运动模型比较困难,而且粒子的数量直接影响到系统生成的实时性,因此,要生成基于粒子系统的模糊景物,需要不断地试验、创新和总结。比如火焰模型中,粒子数量决定了火焰密度,数目太少,产生的火焰失真;数目太大,计算及绘制的时间增长,实时性变差。另外,数目又与火焰粒子的大小有关。文献9的火焰模型中,引用了“火苗”粒子,不仅较好地保证了火焰燃烧过程中相关粒子间运动的一致性,而且大大减少渲染时的粒子数,提高了系统生成的实时性。所谓的“火苗”粒子就是结构化粒子,即一组有限的、具有某种相似性质的火星粒子的集合。每个“火苗”有一个头粒子(根部)和一组尾粒子(上端),它们具有相同的颜色、形状和速度,其中头粒子最大最亮,其他粒子逐渐变暗变细,亮度和大小的变化速率相等。,火苗=头粒子,火苗长度=head,length|head火星粒子集,lengthI,length0头粒子和尾粒子的位置关系可以是线性的,也可是随机变化的,这样可产生不同形状的火苗。,9.1.3L系统,L系统是美国生物学家AristidLindenmayer于1968年提出的一种研究植物形态与生长的描述方法。起初,他只是着重于植物的拓扑结构,即植物组件(如主干、旁支等)之间的相邻关系,后来将几何解释加进描述过程,形成后来人们所称的L系统。1984年、1986年A.RSmith和P.Prusinkiewicz分别把L系统引入计算机图形学中来,展示出L系统在模拟植物方面的能力。L系统具有定义简单、结构化程度高、易于实现等优点。它是一种形式语言,需要通过对符号串的意义进行解释并执行相应的操作。L系统对植物生长的模拟是非常成功的,它的思想还可以应用到电子线路设计、其他自然景物模拟等方面。,假设仅考虑植物生长的基本形态,就可以用L系统简单模拟植物及其生长过程,所以它也是制作植物动画的一种方法。L系统首先定义一个元素集V,该集合中每一个元素代表树中不同功能的结点或段落;然后根据该植物的生长过程,产生一个初始元素W,并且有一个生长规律Q,这三个要素(V,W,Q)就构成了一个L系统。,依此思想,植物的生长需经历下面几个过程:长出茎杆;从茎杆的四周长出若干小树枝,生长处称为枝节;一部分小树枝上又长出若干更小的树枝;小树枝上长出一些树叶;重复步过程,直到树枝和树叶的数目不再增加。如图9.1.4中(d)的树结构就可以认为是从(a)到(c)这个过程长大形成的。设A为树的初始元素,其功能是经过一定时间后长成(b)的形态,M的功能是经过同样时间后伸长一倍为(c)的形态。从树苗A开始,按照这个规律,它必然会长成(d)的形态,这就是L系统的并行重写机制。这个过程用L系统代码描述为,W:A;Q-1:AMAA;Q-2:MMMMM;其中,“”按照L系统文法规定为枝条生长方向的偏转,A、M构成集合V,初始状态W是A;Q1,Q2为两条生长规律。在整个建模中,Q1,Q2是不变的。,图9.1.4L系统的分枝模型,从模拟植物的真实感效果上,用这种方法得到的图形不够生动,有些呆板,许多情况下,人们希望在保留主要特征的前提下,出现细节上的不同变化,以得到生动、逼真和美观的造型,为此人们引进了随机操作。随机操作时,把随机性用于字符的解释(如伸长长度、角度可以是随机的)以及产生式上,前者可以保持基本拓扑结构不变,比如代码描述中,可以用“+”与“-”表示左转和右转一个角度增量,该增量可以是随机产生的;后者基于拓扑结构变化,因而生成更加生动的造型。,将随机性应用到产生式上,则L系统可以用有序四元素集合G(f)=(V,W,P,f)表示。其中P是产生式,f是概率函数,产生式集合被映射到产生式概率集合上,即P(0,1。设A为V中的任意一个元素,在非随机L系统中,以A为前驱的产生式只有一个,即每个A的后继均相同。而随机L系统则不同,产生式不只一个,以A为前驱可以有多个不同的产生式,如P-1,P-2,P-3,:,P-m,所有这些产生式的概率之和为1。取产生式Pi的概率为f(pi),在产生式Pi中,连接前驱与后继的箭头符号上,写明该产生式的概率。下面是一个随机L系统的代码描述例子:,L系统代码实质上表达了一个并行重写的过程,若以这些代码编程,就需要设计一个链表结构来表示这棵树。每个链表节点则代表树的相应节点,节点的数据项包括:节点属性、父节点或子节点指针、节点级数等内容,L系统代码每迭代一次,就需要遍历一次链表,并对每一个链表节点修改一次,还要增加新的节点,如此下去,编程比较繁琐,执行效率低,因此出现许多基于L系统的植物模拟改进方法。下面介绍一种方法,希望读者能从中受到启发。,仍以下面的代码为例根据L系统的自相似性质,将其代码变换成一个相对简单的递归表达式。W:A;Q-1:AMAA;Q-2:MMMMM;令G(M)=MM,用Si表示模型各阶段的状态,Mi表示M转换后各阶段的状态。图9.1.5可用下面代码描述:S0=A;S1=MAA;M0=M;S2=G(M-0)S1S1;M1=G(M0);S3=G(M-1)S2S2;M2=G(M1);SN=G(MN-2)SN-1SN-1;,图9.1.5代码改进后的树生长示意图,9.2科学计算可视化,三维空间数据场显示算法大致可分为两类:(1)先由三维空间数据场构造中间几何图素,如曲线、曲面、平面等,然后用计算机图形学技术进行绘制。(2)不进行几何图素构造,而直接由三维数据场产生屏幕上的二维图像,这种方法称为体绘制方法。由于体绘制技术不涉及等值面几何图素模型的构造,因此生成的图像表现细节更丰富,真实感更好,另外对光学参量的适当控制,可以绘制出具出透明效果的图像,这有助于人们对海量数据的直观理解。目前出现了针对体绘制技术速度较慢、真实感较差等问题的若干改进算法。,9.2.1数据场在电磁、振动、温度、气象、有限元分析、流体力学等许多方面均会遇到三维乃至高维数据场的显示问题。数据场的产生涉及到多种学科和领域。在地质勘探中,利用人工地震的方法获得地下岩石信息和资源信息;飞行器高速穿越大气层时,其周围气流的运动情况以及飞行器表面物理特性的变化情况等参数数据信息;在医学上,核磁共振、CT扫描等设备用来产生人体器官密度场,对于不同的组织,所表现的密度场不同,据此,通过多个方向上的多个剖切面的数据。,由于数据场的来源多种多样,所以其数据形式和数据量存在着很大差别。根据数据场在空间的分布情况可将其分为两大类,即规则数据场和不规则数据场。规则数据场是指数据分布在空间规则网格上,这些网格的结点在空间各方向均匀分布。不规则数据场指的是物体所在的区域被划分成许多小的多面体,数据分布在这些小多面体的顶点处。,9.2.2体绘制技术的基本原理通常三维数据场是连续的,但由数值计算或测量得到的数据结果则往往是离散的,这是因为对连续三维数据场进行采样的结果。体绘制技术就是将这些三维空间的采样数据直接转换成屏幕上的二维图像,且尽可能直观准确地再现原始的三维数据场。二维图像也就是一个二维离散的数据场,它决定于帧缓存中对应于每一个像素点的光亮度值,因此体绘制技术就是将离散的三维数据场变换为离散的二维数据场。要将离散的三维数据场变换为二维数据点阵,实现二维图像的显示,首先必须对三维空间的数据场进行重新采样,然后根据三维空间中的一个数据对二维图像的作用,进行图像合成。实现数据场重新采样的主要步骤如下:,(1)选择适当的重构函数,对离散的数据场在整体空间内插值(或重构),得到连续的三维数据场。(2)根据设定的观察方向对连续的三维数据场进行几何变换。(3)因为屏幕上采样点的分辨率已知,所以可直接计算被采样信号的频率极限(NyquistFrequency),即采样频率下限,再利用低通滤波函数去掉高于这一极限频率的高频分量,或使高频分量得以衰减。(4)对滤波后的函数进行重新采样。,9.2.3体绘制常用算法,1.以物体空间为序算法以物体空间为序算法是将物体空间中每一个数据采样点的光亮度值变换到图像平面上,即计算出每一个数据采样点亮度值对应屏幕上相应的像素点,然后进行合成而产生图像。它的优点是易于并行处理,但难以利用以图像空间为序算法中的某些加速技术,步印法(Footprintmethod)为其典型算法。在该算法中,每个采样点作为一个能量贡献源,将其球形重构核投影到图像平面,并确定每个采样点对目标图像的贡献,即把每个体元看作周围空间场的平均值,通过卷积求出其周围空间的密度函数分布,最后将所有体元的密度函数分布相加,就得出整个体内的密度函数。与其他方法比较,它利用了体元作用域(重构核的非零域)的相关性。对每个体元的独立处理,就是首先通过体元的作用域求出其在像平面的投影域,然后计算投影域内每个像素的属性(颜色、不透明度)。对于一个体积为NNN的数据集,若每个数据点的投影半径为MM个像素,则计算量为o(N3M2),即计算量与数据集规模和数据点投影面积之积成线性关系。,下面介绍一种在图像质量和计算速度上较优于标准步印法的空间相关步印法的算法:该算法在标准步印法基础上基于以下三方面的处理:(1)数据场的分布往往具有一定的相关性,即每种物质都占有一定的空间,同一物质块内邻近采用数据值相同或相近。(2)根据采样理论,当重构滤波函数的带宽大于NyquistFrequency时,恢复出的频谱由于高频分量的射入,会产生波纹,产生伪纹理信息,可以通过减小低频信号处的重构滤波函数的带宽或减小采样频率,有效地减小波纹。,(3)浓淡计算采用改进的Phong光照模型:I(i,j,k)=Ka+Kd(LL(P)+Ks(N(P)H)n)(1-KattenZ/Zmax)对于均匀物质内部的点x,梯度为N(x)0,intensityKa。这样处理实际上是把原始数据划分成物质边界和内部块,把“同类物质”作为一个“大”元素处理,这样就相当于减小了采样频率,并且由于元素的合并,避免了对块内每个体素的重复计算。该算法的实现需要两个过程:数据预处理(数据的读入、数据的划分、八叉树的构造)和图形绘制。,首先,对一个离散的数据集,将感兴趣的物质用若干值区间赋予不同的颜色和不同的透明度。假设数据集大小为N3,n类感兴趣的物质的数据空间分别为L1,U1,L2,U2,.,Ln,Un。若体元v(i,j,k)的值f(v)Ls,Us,s0,则计其为物质s的体元,否则记为物质0的体元(表示该物质用户不感兴趣)。若v的邻元(邻元的定义与梯度计算有关,邻元为(i1,j,k),(i,j1,k),(i,j,k1)中有与之不同的物质,或v在体的边界上,则称v为分界体素,否则称为块体素。分界体素的投影在像平面的叠加,形成图像上物质的边界,如图9.2.1所示。,图9.2.1分界体元叠加示意图,其次,组织构造八叉树。在标准步印法中,为了便于组织,按一个体元的8个顶点数据作为一个上级元素组织,形成八叉树。对于一个每边有N个体素(N=2M+1)的体数据集,可将它组织为一个M层八叉树,树的每一层构成一个体,若用R标识,则第R层的体记为VR。V0的每边有N1个体素,V1的每边有(N-1)/2个体素,VM只有一个体素。体素的作用域是作为“步印”预先计算的,每个体素在计算时以此为样板,进行查找和插值,所以步印法较其他体绘制算法快速。在空间相关步印法中,依然采用这种方法,即每个“大”体素都是立方体,这样大体素的投影域可通过简单地放大“步印”而得到。下面是三维体数据的八叉树结构,它有一个存放体数据的多维数组(维数由初始体数据的维数决定)和两个分别指向上一级和下一级的指针:,StructTree-data;Data*P;StructTree_data*upper,*lower;*Volume;,初始体数据为八叉树的第0层,每一层数据用三维数组Pijk存储。每个数据包含两个域:物质号S_Num和值Value,第0层的结点v(i,j,k)的值为,第m+1层结点v(i,j,k)的子结点是第m层的(2i,2j,2k)+(0,1)3,m0,(0,1)3为0或1的三元组,其取值为,当v的所有第m层的子结点的物质号都是s时,v的物质号取为s,值Pm+1ijk.value取为其子结点值的平均值;否则物质号取为一特殊记号max。若Pmijk.S_Num0,且其父结点的物质号小于0或m=0,则此结点为叶结点,即计算时不需访问其下层结点。,绘制时从根结点开始,按前序遍历八叉树。访问第m层的结点v(i,j,k),若它不是叶结点,则依次访问其子结点,直至叶结点。若叶结点在树的第0层,对它按照边界体元绘制;否则对它进行块绘制。块绘制时首先要确定投影区域,第m层的结点v(i,j,k)包含了2m2m2m个体素,所以它的投影域应该覆盖这些体素的投影域,可由这个“大”体素的8个顶点投影计算得到。在此投影域内,光强Intensity用环境光反射系数Ka近似。根据图像的合成公式,2m层不透明度为a0的体元叠加,其不透明度a可由1-a=(1-a0)2m得到。该算法计算时需要的内存较大,适用于中小规模数据的体绘制。,2.以图像空间为序算法以图像空间为序,是从屏幕上的每一个图像像素点发出一射线穿过三维数据场,用三次线形插值求出射线上各采样点的光亮度值,再加以合成,从而获得该像素点的光亮度值。由于它回避了复杂的表面重构过程,并且在分割不是十分正确的情况下,也能在一定程度上显示物体的三维精细结构,因而生成图像质量较高。但因要对三维体数据的随机检索,所以成像速度慢,例如为提高数据搜索效率的八叉树结构,某一层次的结点可能会多次搜索,这样计算速度较慢。该类的典型算法是光线投射算法(Raycasting)。,光线投射算法,早期时是对二维体数据的显示算法。它由像平面上每一个像素点沿观察方向发射出一条光线,计算每条光线与二维体数据的第一个交点,求出距离,再根据距离由一定的明暗方法(ShadingMethod)计算出三维图像。后来由M.Leovy提出的方法处理的是每个体素有阻光度和颜色的三维体数据。光线进入三维体数据后,沿采样点进行阻光度和颜色的累加,当阻光度足够大或采样点足够多时,停止光线投射过程,由光线的阻光度和颜色求出像平面像素点的颜色。目前出现了许多加速光线投射法处理的算法,限于篇幅,不作更多介绍。,9.3计算机动画,9.3.1计算机动画基本制作过程同传统动画一样,无论二维还是三维动画,其制作过程基本相同。大致可分为五个阶段:(1)脚本设计。根据动画目的和具体要求进行创意,形成动画制作的脚本。(2)素材处理。将外部各种形式的资料包括造型来源和图像来源输送给计算机,然后利用各种造型系统进行造型、材质、用光等动画素材的精心创建。,(3)设置运动方式。目前设置运动的方式很多,如三维动画就有关键帧法、插值法、变形法、关节法等。(4)动画生成。就是将动画处理成一系列单帧图像或一个动画文件,并经过反复动画演示、调试,最后进行图像处理、动画合成。(5)动画录制。就是将制作好的计算机动画,录制到录像带或如光盘这样的外存储器上。这个过程往往需要用一些压缩方法。,9.3.2基于模型的计算机动画技术运动的表现是动画制作的核心。动画除了其角色如人、动物或其他事物有运动外,在计算机动画中,光照、纹理、阴影、摄像机视角、景深及整个画面背景都是可以运动的。计算机动画中角色运动有其本身的规律,为了表现出理想的运动状态,出现了许多基于数学模型或物理模型的若干动画技术分支,如关键帧技术、变形技术、基于物理特征动画技术、过程动画技术、位移动画、关节动画和人体动作模拟技术等。由于很难找到统一的模型来描述所有情况,因此通常只能针对性地构造局部模型。各模型之间没有明显分界,且各种动画技术相互交叉利用。,1.关键帧技术该技术直接来源于传统的动画制作,出现在画面中的一段连续画面其实是由一系列静止画面表现的,制作时并不需逐帧绘制,只需选出少数几帧画面绘制,这几帧画面一般出现在动作变化的转折处,对这段连续动作起着关键的控制作用,因此被称为关键帧(KeyFrame),然后根据关键帧,由计算机插画出中间画面。如图9.3.1F1和F2为两个关键帧画面,其余为插画的中间画面。,图9.3.1关键帧与中间画面,关键帧技术中,关键帧的选取和插补算法的使用技巧是关键技术。对设定有两个关键帧的情形,相应的插补按线性进行,如果关键帧数目超过2,则要用高次多项式的拟合方法。对于图9.3.1,可设定F1和F2曲线都是由四个点经过插值或拟合形成,则两曲线可用适当的调配函数描述(参考第5章):,Pi和Qi分别是图中两曲线上基本型值点,它们的对应关系为:PiQi(i=0,1,2,3)且已知。令Ri=(1-t)Pi+tQi,i=0,1,2,3,当t=0时,Ri=Pi,这就是F1关键帧的基本型值点;当t=1时,Ri=Qi,这就是F2关键帧的基本型值点。为了生成中间画面上的曲线,只要将t值取为01的值即可。如取0.25、0.5,0.75,便有:,然后由Rki(i=0,1,2,3;k=1,2,3)用相同的拟合方法得到中间画面曲线:F1(s),F2(s),F3(s)。如图9.3.1中间三曲线。,目前,很多数学方法应用到了各种条件下的插值算法中,例如,用查找表记录参数点弧长以加快计算的速度;通过约束移动点对路径和速度的插值进行规范,以减少运动的不连续性;对样条曲线进行插值以实现局部控制;用三次样条函数把运动的轨迹参数中的时间和空间参数结合起来,以获得对运动路径细节的控制。,2.变形技术计算机动画中另一种重要的运动控制方式是变形技术,包括二维和三维变形。基于图像Morph是一种常用的二维动画技术。图像本身的变形称为Warp,它是首先定义图像的特征结构,然后按特征结构使图像变形;两幅图像之间的插值变形称为Morph,它是首先分别按特征结构对两幅原图像作Warp操作,然后从不同的方向渐隐渐显地得到两个图像系列,最后合成得到Morph结果。图像的特征结构是指由点或结构矢量构成的对图像的框架描述结构。,三维物体的变形分为改变拓扑结构和不改变拓扑结构两类。其中三维Morph变形是指任意两个三维物体之间的插值转换,主要任务是对其进行处理以建立起两者之间的对应点关系,并构造三维Morph的插值路径。三维Morph处理的对象是三维几何体,也可以附加物体的物理特性描述。,另一种三维物体变形技术是自由格式变形FFD(Free-FormDeformation),它现已成为三维物体变形方法中最好、最实用的一种变形方法。Sederberg和Parry于1986年提出FFD方法是一种与物体表达无关的间接变形技术,这种方法引入了一种基于B样条的中间变形体,通过对此变形体的变形,使包围在其中的物体按非线性变换进行变形。FFD的本质就是让物体与网格的控制点相连,一旦网格的控制点被移动,与之关联的物体就会变形。下面用一维情形来说明FFD的基本思想。,设图9.3.2所示线段上有三个控制点Pmax,Pm,Pmin,其中Pmax、Pmin为两端点,Pm为中点,在两端点之间有有限个点形成一组。下面分析在控制点的作用下,这组点是如何改变它们位置的。这段线段上的任何一点P都能够用系数k来表示:,(9-6),由下式可得到任一变形点的位置:,P=P1(1-k)+2+P2(1-k)2k+P3k2,(9-7),图9.3.2一维线段,如果将式(9-6)代入式(9-7),就会发现P=P,这说明没有点的移动或变形发生,但是如果把中点位置向左或向右移动x,经过计算就会发现,两端点之间的所有点也将向左或向右移动;同样,若改变两端点的位置,中间所有点也随之发生变化。由此可知,在原始线段上的点是拉伸还是压缩,取决于控制点的位置的变化。如果三个控制点增加为四个,在式(9-7)中就会出现三次项,在这种情况下,如果要求所有点不发生位移,就需要把中间点的位置选择在线段的1/3或2/3处。,将一维分析方法扩展到二维,便会得到二维情形的FFD。用类似的方法来定义二维上任意点P(x,y)的位置:,这里,图9.3.3二维情形的FFD,用FFD作变形时,被变形物体首先以某种方式嵌入一个参数空间,然后对物体所嵌入的空间进行变形,因而物体也随之变形。目前该方法已成为计算机动画中应用最广泛的一种,但在实际操作中应要兼顾算法效率与变形的可控性。,3.过程动画技术,行为动画主要是解决诸如鸟、鱼、兽群等一些既有随机性又有规律性的群体运动的一种动画,是由Reynolds提出的。主要技术是控制群体中的整体和个体的行为。在这种动画中,每个成员有各自属性、朝向等,但它们受群体机制相互制约着,如相互靠近又避免碰撞,群体的整体行为由整体位置和整体方向向量所控制。根据Reynolds的思想,按下面优先级递减的原则控制群体行为:(1)碰撞避免原则,即避免与相邻的群体成员相撞。(2)速度匹配原则,即尽量匹配相邻群体成员速度。(3)群体结合原则,即群体成员尽量靠拢。,动力学仿真动画是用于模拟诸如人体、动物、机械等物体在自然界中受到人为因素和自然界各种力(重力、阻力、碰撞力)的影响时产生的速度和加速度。主要技术就是对模型运动进行正确分析,建立合理的运动学方程,目前许多商业软件中,都提供了一些常用的动力学仿真工具。逆向运动学模拟就是给定物体的目的状态和位置,反算出物体上各个部分应该产生的运动及运动状态。运动状态指运动的位移、旋转、速度等变化量。主要技术就是根据约束条件取掉冗余解,保证解的合理以得到中间状态量。,4.基于物理特征的动画技术1987年,A.H.Barr在SIGGRAPH87上发表了题目为“TopicsinPhysicallyBasedModeling”的论文,首次提出了基于物理特征的建模概念。这种技术的基本思想就是将物体特性加入到其几何模型中,通过数值计算对其进行仿真,物体的行为由仿真过程自动决定,该仿真计算需要涉及如下几方面问题:刚体、柔性体的经典力学问题、物体之间的相互作用问题、有约束条件的控制问题以及物体如何随时间运动或改变其形状等。基于物理特性的动画技术打破了计算机图形学原建模、绘制、动画之间的分界线,将它们结合起来形成统一的整体。运用这项技术,设计者只要明确物体运动参数或者约束条件就能生成动画,这样,对物体运动模拟更加符合客观现实中物体的运动规律。经过几年的发展,基于物理特征的动画技术已经被广泛地应用于计算机造型和运动模拟领域中。,从理论上讲,给定物理特性后,物体的运动就可计算出来,通过改变物理特性就可以对物体的运动加以控制,但实际上,物体所具有的物理参量往往无法直接确定,因为人们对这些参量并没有直接的概念,必须解决物理特性的表示控制问题。好的控制方法在计算机动画、机器人运动控制以及虚拟技术等相关领域中起着非常重要的作用。目前从研究角度看,基于物理特征的动画技术是非常深入的。人们根据物理原理提出了各种各样的模型和模拟方法。比如在柔性体的运动模拟方面,人们使用了质量与弹簧系统,用弹簧来模拟肌肉的收缩和运动;在流体运动模拟方面,利用流体力学中的偏微分方程组,通过求解得到各个时刻流体的状态。,现有的控制物理模型的方法多数是控制微分方程初值,利用能量约束条件,用反向动力学求解约束力,通过几何约束来建立模型以及结合运动学进行控制等。此外还有许多基于弹性力学、塑性力学、热学和几何学等理论的方法,结合不同几何模型和约束条件模拟各种物体的运动或变形。其中,A.H.Barr和R.Barzel的方法是使用动态约束作为一种运动控制方式。用户只需指定物体所受的几何约束,系统自动求出物体在满足这些几何约束下的运动方式,从而控制物体运动;PaulM.Lsaacs和MichaelF.Cohen提出的是综合运动控制方式。根据环境要求需要完成某个行为(运动)时,可以选择相应的行为函数,由行为函数确定物体完成行为所需的力,或者根据当前物体所受的运动约束,由运动力学逆向求解出物体所受的力,也可以用关键帧法指定物体的运动,从而控制运动;WitkinA和KassM.提出了一种时空约束方法,用户只需告诉物体做什么运动,例如“从A处跳跃到B处”,然后指定物体运动形式,如“能量守恒”,系统可自动实现物体所需完成的运动,并获得较好的真实感。,5.关节动画和人体动作模拟技术在计算机图形学中,有关人的动画一直是最困难和最具挑战性的课题。这是因为,常规的数学和几何模型不适合表现人体形态。人的关节运动尤其是引起关节运动的肌肉运动是十分难以模拟的。目前模拟三维空间中的人体通常有三种模型:(1)基于线的模型。该模型用抽象的骨骼和关节组成,生成效果真实感较差,肢体的扭转等动作也无法模拟。(2)基于面的模型。人体的骨骼被小的平面片或曲面片覆盖。(3)立体图像。将人体分为几个三维体元,如圆柱、球和椭球等。典型的造型方法及造型系统有NUDES系统、Bubbleman模型和Laba表示法。,在人体动画中,手、脸部、肩部(包括头发)的真实动画是非常复杂和困难的。例如在手的动画中,因为手掌和手指易于弯曲变形,所以手动画必须能够模拟骨骼运动与面的变形,常用的技术是关节点环绕计算和肌肉鼓胀模拟及用几种环节的参考系统来计算面成像。为了真实地模拟手上的肌肉和关节,设计时必须精心调整以下参数:(1)每个关节处的弯曲系数;(2)关节在弯曲过程中,关节的肌肉鼓胀幅度系数;(3)关节弯曲过程中限定环绕链接部分的系数;(4)在弯曲过程中,手的表面肌肉鼓胀系数;(5)在弯曲过程中,手的内部肌肉鼓胀到最大时的控制系数。,手的效果计算是根据上述参数再基于每个关节的法线进行的。计算过程如下:首先确定要计算的顶点的空间坐标,并计算出顶点在手指上的投影,计算出R=(投影和最近关节的距离/投影和远侧关节的距离),其中最近关节指最接近腕部的关节,远侧关节指远离腕部的关节。还要计算顶点的厚度,即顶点和顶点在手指上的投影之间的距离。,脸部动画,由于制作具有自然观感皮肤的脸部图像十分困难,这使得生成的动画效果真实性不足。近年来,这方面模拟技术取得了一系列重要发展,在SIGGRAPH98会议上,提出了基于脸部照片产生面部表情动画的两种不同方法。一是BrianGuenterd等人利用扫描系统,获得人脸在特定表情下的三维几何、色彩、明暗等信息,利用这些信息可以重构出被捕捉表情的真实三维动画效果。这种方法使用大量的采样点来跟踪面部的三维变形,同时获得的多帧视频图像可以用来生成一个纹理序列,并被映射到三维网格的人脸模型上。由于获取三维几何信息和纹理图像的过程分别进行,从而消除了大部分因运动产生的误差,同时使数据更容易被压缩。另一种是FredericPighin等人,使用离散数据插值的方法将基本人脸网格变换到目标对象的面部,并根据摄像机的姿态选择出一幅或多幅图像进行纹理映射。为了实现不同面部表情之间的平滑过渡,使用了三维Morph技术。目前,这方面的研究正进行得如火如荼,不断出现新的技术和思想。读者可参阅相关资料。,9.3.3基于知识的智能动画技术,1.角色运动的智能控制未来的计算机动画系统中,角色的运动将运用人工智能和机器人学方面的技术自动进行运动控制,运动在任务级上设计,使用物理定律计算。下面介绍描述运动自动控制的几个方面:1)空间位置约束以人的肢体定位为例。假设手必须按一定的方向达到一定的空间位置,那么肩、肘和腰之间的连接角度是多少?这个问题包含确定关节变量,给出相对于参考坐标系的手的末端位置和方向。在机器人学中,这个问题被称为逆运动学问题。,2)动作控制一种更复杂但更真实的动作控制的方法是建立在动力学基础上的。一个角色的运动受到肢体的力和扭转控制。因此需要考虑直接动力学和逆动力学问题。直接动力学问题是寻找关于引起运动的力,逆动力学问题是确定为产生规定的运动所要求的力和力矩。虽然以动力学为基础的运动更真实,但它们过分规则,无法融入角色的个性。,3)环境的影响角色的自适应运动控制问题是运动自动控制的核心问题。所谓角色的自适应运动控制,是指环境对角色运动的影响及角色根据环境规划自己的行为。提高角色的自适应运动控制能力,可减少动画制作过程中用户输入。动画系统应有效地表现对象的几何图形,以便自动设计任务和避免碰撞。目前提出了许多路线规划算法。对于物体之间及物体和障碍物之间的碰撞的处理是智能动画的难点,特别是可变形接触或碰撞。,4)任务规划任务规划是机器人学和人工智能方面的一个重要问题。任务描述后,问题在于如何把任务分解成连续的基本运动。5)行为动画行为动画相当于从路线规划到人物的相互之间复杂的情感作用,来模拟人的行为。前面已介绍了行为动画控制群体的原则,在行为动画中,角色的位置、速度和方向随时都可以从系统得知,动画制作者可以控制几个整体参量。后来有学者提出了基于视觉模型和行走模型结合的方法,来产生环境中行走的合成角色的行为动画。这种模型依据DLA(DisplacementLocalAutomate)的概念,它是一种可以处理特殊环境的算法,称为followthecorridor和avoidtheobstacle的两种DLA得到详细的描述。,2.基于知识的动画系统的实现方法基于知识的动画系统除了具有模型动画部分外,还包括故事理解、任务规划、角色行为库、导演知识库、推理机制等几个部分,在脚本理解、场景规划、角色行为等方面具有智能特征。其动画生成主要有两大层次:策略控制层和对象行为层。策略控制层的任务是对指定问题进行求解,对象行为层的任务是把事件解释成对象的动作。下面是一个基于知识的动画系统的实现流程(图9.3.4)。,图9.3.4基于知识的动画系统实现流程,在理想的动画系统中,动画系统应能理解由自然语言编写的脚本。自然语言的机器理解是十分困难的。长期以来,有许多计算机科学家和语言学家从事这方面的研究,虽然关键技术尚未完全解决,但近几年机器翻译系统已取得了较大的进展。知识获取是建立知识库的关键,如何将导演知识和角色知识转换为计算机可理解的规则是知识获取的核心。导演和角色都具有形象思维和逻辑思维,可以通过使用推理学习、联想思维等方法获得知识,经常使用的推理方法是匹配和继承。为了适应各种复杂情况,常常需要采取非单调推理。,3.基于影像知识表达的智能动画模型,1)图形对象(GraphicsObject)的知识表达图形对象知识是影像知识中较为基础的一类,它建立在实体造型和真实感图形生成的基础上,主要包括:角色知识、摄像机知识和光源知识。角色对象可以是扩展体对象,也可以是网格体对象。扩展体对象又有两个子对象:旋转体对象和延伸体对象。光源对象也有两种形式:一种是具有几何特性的光源,可以进行变换,另一种是点光源,它可以进行变换但是没有几何特性,前者适合用于由辐射度方法生成的对象,后者适用于由shading生成的对象。基于CSG树,图形对象的空间知识表达如下:,=GraphicsObjectIdType(|)=PositionOvientation=RotateMoveZoomX-ShearY-Shear*=Shading|RayTracing|Radiosity=Cameraparameter=EyeTargetUpwards=VectorLightType=(|Meshvolume)=SizeColorDisplayType=ApplyUNRBS*=Swinging|Sweeping,其中,=表示“定义”,表示“任选”,|表示“或者”,+表示“至少出现一次”,*表示“出现零次或多次”,表示“变量”,表示“结束符”;表示图形对象;是图形对象的标识符,用来指定某一个图形对象;表示图形对象的空间属性。主要有两类:图形对象的位置(position)和图形对象的朝向(orientation);,是表示作用于图形对象的变换函数。主要有旋转(Rotate)、平移(Move)、缩放(Zoom)、X方向错切(X-shear)和Y方向错切(Y-Shear)。是最后在显示时要调用的图形学函数。包括明暗处理(shading)、光线跟踪(Ray-Tracing)、辐射度方法(Radiosity)。为摄像机对象的定义。Cameraparameter用于定义摄像机参数;是定义光源对象。Vector为定义光源矢量,LightType是光源类型;,是对角色的定义。ActorAttribute是定义角色的属性,包括大小(Size)、颜色(Color)、显示方式(DisplayType);ActorFunction定义角色对象几何体所用到的函数;ExtendVolume指从二维到三维的扩展体来定义角色的几何形体,它包括旋转体(Swinging)和延伸体(Sweeping)。通过上述的知识表达可以构造任意复杂的物体(因为任何物体都可以看成是一组简单物体对象的集合),这种方法也是目

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论