




已阅读5页,还剩46页未读, 继续免费阅读
(计算机应用技术专业论文)三维头发建模及造型.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 随着计算机应用的普及,虚拟现实技术的应用越来越广泛,要求也越来越 高。作为虚拟现实技术的一部分,头发的建模和造型在虚拟人体模型、游戏以及 电影特性中的应用也非常广泛。虚拟现实的关键技术之一是对显示对象进行建 模,但由于头发本身特殊的物理性质,使得建模和造型都很困难,容易造成巨大 的花费。因此,为解决由于头发数量庞大和纤细的特性而使得头发图像生成过程 缓慢复杂的问题,研究相关技术具有重要价值。头发模拟的方法主要有:直接模 拟、体积纹理模型、聚簇发束模型和宽松连接的粒子系统模型等。我们的工作主 要是弥补现有系统的不足,建立一个交互式的造型系统。该系统以粒子系统的特 点来模拟头发,在适当的系统开销下,建立具有真实感的头发模型,解决了发型 特征调整问题并进行显示。 本论文首先回顾了几种传统的3 d 头发建模方法,然后针对头发模拟真实性的 问题进行了探索和研究,在现有的头发模拟方法分析的基础上,提出了一种基于 粒子系统的头发模拟设计方法,从而从时间和计算开销上解决已有方法的不足。 所完成的主要工作包括以下几个方面: 1 ) 分析了3 d 头发建模及造型的主要问题和难点,并对已有的3 d 头发模拟及造型 方法从建模真实感和渲染两个方面分别归类,总结其优点、缺点及性能。通 过对已有方法的分析,将主要工作集中在减少系统开销和计算时间上。 2 ) 在对粒子系统应用技术大量调研的基础上,通过将粒子作为头发采样点控 制,解决了在造型阶段对头发的控制。我们使用一种改进的广告牌方法来渲 染模型,减少了头发的粗糙度,从而使得到的模型更为明晰。通过简化的椭 圆体头部模型来进行碰撞检测,使得计算开销大为减少。 3 ) 建立了一个初步的基于粒子系统的3 d 头发建模及造型系统,该系统也可以作 为下一步研究工作的实验平台。 关键词: 三维头发建模采样粒子系统理想流体 a b s t r a c t w i t ht h eb l o o m i n go f c o m p u t e rt e c h n o l o g y , v i r t u a lr e a l i t yh a sb e c o m em o r e a c c e p t a b l et om a n yp e o p l e ,t h u sm a k i n gv i r t u a lr e a l i t yaf i e l dt h a tn e e d st ob e d e v e l o p e d a sap a r to ft h i st e c h n o l o g y ,h a i rm o d e l i n ga n ds t y l i n gp l a ya ni m p o r t a n t r o l ei ns i m u l a t e dh u m a nb o d ym o d e l s , c o m p u t e rg a m e s ,s t u n t si nm o v i e sa n do t h e r v i r t u a ls y s t e m s t h ek e ys k i l lo fv i r t u a lr e a l i t yi st om o d e lt h eo b j e c tw h i c hi sg o i n gt ob e d i s p l a y e d h o w e v e r , b e c a u s eo f t h es p e c i a lp h y s i c a lf e a t u r e so f h u m a nh a i ri t s e l f , t h e e x t r e m e l yh u g en u m b e ro fh a i rs t r a n d sa n di n h e r e n tp r o p e r t i e s ,m o d e l i n ga n ds t y l i n g b e c o m e sv e r yd i f f i c u l ta n da c c o u n t sf o ri n c r e a s i n gc o m p u t i n gc o s t t h ep r o c e s so f g e n e r a t i n gah a i ri m a g ei sv e r yc o m p l e xa n ds l o w , a n di no r d e rt os o l v et h ep r o b l e m , t h es t u d yo ft h i st e c h n o l o g yi sa l lt h em o r ew o r t h w h i l e t h em a i nm e t h o d st os i m u l a t eh a i ra r e :d i r e c tm o d e l ,v o l u m e t r i ct e x t u r em o d e l , w i s pm o d e la n dl o o s e l yc o n n e c t e dp a r t i c l es y s t e m ,e t c o u ra i mi st oi m p r o v et h e s y s t e mt h a te x i s t sa tp r e s e n ta n ds i m u l a t ear e a l i s t i ch a i rm o d e lw h i c hi sb a s e do nt h e p a r t i c l es y s t e mw i t h i nas u i t a b l ec o m p u t i n gc o s t t h i st h e s i sf i r s tr e v i e w e ds o m et r a d i t i o n a l3 dh a i rm o d e l i n gm e t h o d s ,t h e n f o l l o w e du pw i t hs t u d ya n dr e s e a r c ho nt h ep r o b l e mo fh o wt og e th a i rm o d e l i n gm o r e r e a l i s t i c w ed e s i g n e dah a i rm o d e l i n gm e t h o db a s e do np a r t i c l es y s t e mt os a v e c o m p u t i n gt i m ea n dc o s t t h er e s e a r c hw o r ki n c l u d e d : 1 ) a n a l y z e t h em a j o rp r o b l e m sa n dd i f f i c u l t i e si n3 dh a i rm o d e l i n ga n ds t y l i n g ,t h e n c a t a l o gt h em o d e l i n ga n ds t y l i n gf r o ms i m u l a t i n ga n dr e n d e r i n g ,r e s p e c t i v e l y a f t e rl e a r n i n gt h ea d v a n t a g e sa n dd i s a d v a n t a g e so fa l lt h em e t h o d s ,w e c o n c e n t r a t e do u rw o r ko nc o m p u t i n gt i m ea n dc o s t 2 ) b a s e do nv a r i o u sr e s e a r c hs t u d i e si np a r t i c l es y s t e m ,u s i n gp a r t i c l e sa ss a m p l e st o c o n t r o l ,w ec a ns o l v et h ep r o b l e mt h a tm i g h th a p p e ni nt h es t y l i n gs t a g eb y a p p l y i n ga ni m p r o v e db i l l b o a r dm e t h o dt or e n d e rt h em o d e l ,t h i sg i v e st h em o d e l m o r ec l a r i t ya n dl e s sr o u g h n e s s c o m p u t i n gc o s tw a sd e c r e a s e dt h r o u g ha s i m p l i f i e de l l i p s o i d a lh e a dm o d e lt od e t e c tc o l l i s i o n 3 ) d e v e l o pa ne l e m e n t a r y3 dh a i rm o d e l i n ga n ds t y l i n gb a s e do np a r t i c l es y s t e m w h i c hc a na l s ob eu s e da sa ne x p e r i m e n t a lp l a t f o r mi nf u t u r es t u d i e s k e y w o r d s :3 dh a i rm o d e l i n gs a m p l ep a r t i c l es y s t e m i d e a lf l o w 1 1 第一章绪论 第一章绪论 虚拟现实技术是利用计算机生成一个逼真的三维虚拟环境,并通过使用传感设 备与之相互作用的新技术,它是计算机与用户之间的一种更为理想化的人机界面形 式。它将模拟环境、视景系统和仿真系统合三为一,并利用头盔显示嚣、图形眼镜、 数据服、立体声耳机、数据手套及脚踏板等传感装置,把操作者与计算机生成的三 维虚拟环境连结在一起。操作者通过传感器装置与虚拟环境交互作用,可获得视觉、 听觉、触觉等多种感知,并可控制虚拟环境中的物体。例如,虚拟环境是大学校园, 用户通过控制多种传感器,会有身i 临其境的感觉,“行走”在校园内,可以用手“打 开”教室门并“走”进去。由于其易操作性和交互性,虚拟现实技术可以广泛地应 用于娱乐、医疗、工程建筑、教育培训、军事模拟、科学和金融可视化等领域。 1 1 虚拟现实技术的特征及发展趋势 正如b u r d e ag 在“v i r t u a lr e a l i t ys y s t e m sa n da p p l i c a t i o n 文中所概括的,这种 虚拟现实系统的基本特征可以简捷地表征为三个i ,即沉浸性、交互性和构想性 ( i m m e r s i o n 、i n t e r a c t i o n 、i m a g i n a t i o n ) 【l 】。 沉浸感( i m m e r s i o n ) 或参与感是通过计算机生成一个非常逼真的足以“迷惑”视 觉的虚幻世界。可以通过各种感观来达到这种逼真感。一般来说,良好的沉浸感可 以通过虚拟系统的输出设备向用户传达。 虚拟现实不是一个静态的世界,而是一个开放的环境,它可以对用户的输入( 包 括手势、语言命令等) 做出响应。虚拟现实环境可咀通过控制与监视装置影响或被 用户影响,这就是交互性( i n t e r a c t i o n ) 。 构想性( i m a g i n a t i o n ) 是指反映设计者思想的一种特性,例如在修建大楼之前 需要很多设计图纸,对大楼结构做构思,虚拟现实技术的这个特性可以比拟如此, 第一章绪论 只不过说明更为生动。 这三个特性决定了虚拟现实技术的迅速发展,v r 近年来成为了科技界关注的 热点,并逐渐受到人们的重视。正是由于虚拟现实中的仿真模拟具有突出的特点, 所以它不但为科学研究提供了新的更富成效的认识工具,而且已经并将继续引起设 计制造业的巨大变革。这种设计过程不只是缩短了设计时间、节约了设计成本,更 重要的是克服了传统设计方法很难避免的一个缺陷:对于产品的具体印象和感受必 然发生于产品完成之后。它模糊了设计与制造之间的界限,使制造同设计一样,成 为不断创生新思想、萌发新观念的过程。目前以初步形态出现的虚拟会议、虚拟办 公室已经清楚地展示出虚拟技术的这一作用【2 】。随着时间的推移,虚拟现实技术 将会走入更加实用化的阶段,发挥的作用也会越加广泛。 1 2 虚拟技术的难点讨论 虚拟技术的关键就是逼真感和交互性。但要得到更加逼真的效果,往往会以牺 牲计算时间和系统开销为代价。逼真感主要是通过对显示对象的建模和渲染来达到 的。我们都知道,在建模过程中,对物体表面划分得越细( 通常划分为三角形) ,得 到的模拟模型就会越细致越真实,然而会加重绘制的计算,特别是在渲染时,由于 数据过大而使得加载过程非常缓慢。在交互性的实现中同样会受影响,每次更新的 大量数据会使计算机很难完成实时运算,因此造成系统滞后。另一个难点是如何解 决虚拟模拟器与人的感觉上的差异,例如,在模拟高速飞行器中,就可能造成视觉 上的不适应感而使人觉得晕眩。 头发模拟的意义: 头发的模拟同样存在着模拟单位数量大、很难达到逼真的问题。如何避免实时 绘制而带来的巨大系统开销并同时保证模型的真实感问题,是我们论文主要工作的 重点所在。 1 3 本文的工作 第一章绪论 本文的研究工作针对3 d 头发的模拟工作,主要是建模及造型。由于头发的单 位个体非常小,再加上数量庞大,要想做到每根发丝都进行模拟,在现行计算机上 实现是非常困难的,因此我们需要采用尽可能简单有效的模糊绘制。 在调研过程中,我们发现粒子系统在模拟平滑且具有一定混乱性的模型上有着 较多的应用【3 ,4 ,5 】。它是空间中一些3 d 点的集合,因此对模拟物体的几何形 态没有要求,同时该系统中的分子具有产生到消灭生命周期的特性,这个过程赋予 了粒子系统在视觉上具有细微地闪烁性,这与头发光泽度和飘逸感两个特征之间存 在着很多相似之处。 我们在这篇文章里的工作主要包括以下三个方面: 1 ) 对已有的3 d 头发模拟及造型方法从建模真实感和渲染两个方面分别归类,总结 其优点、缺点及性能,分析3 d 头发建模及造型的主要问题和难点。 2 ) 在对粒子系统应用技术大量调研的基础上,通过将粒子作为头发采样点控制, 解决了在造型阶段对头发的控制。我们使用一种改进的广告牌( b i l l b o a r d ) 方法 【6 】来渲染模型,减少了头发的粗糙度,从而使得到的模型更为明晰。通过简 化的椭圆体头部模型来进行碰撞检测,使得计算开销大为减少。 3 ) 完成一个基于粒子系统的3 d 头发建模及造型系统,该系统也可以作为下一步研 究工作的实验平台。 本文研究工作的特色: 1 ) 利用粒子系统与头发问特征的相似性,建立一个具有真实感的头发模型,简化 了绘制及渲染过程,并且使得系统更易控制,可操作性更强。 2 ) 通过对渲染算法以及碰撞检测算法的改进,减少了头发模型的粗糙度,同时也 降低了系统开销和计算的时间。 1 4 本文的组织结构 本文的内容是这样安排的: 第一章简单地介绍了虚拟现实技术的现状和发展趋势,并讨论了现时虚拟现实 技术的难点,然后简要介绍本文的研究目标与所做的工作。 第一章绪论 第二章对几种常见的头发模拟方法做简单的介绍,并进行比较,为选择粒子系 统做好理论铺垫。 第三章通过对粒子系统概念的介绍,讨论粒子系统的工作原理、应用以及可能 会面临的问题。 第四章介绍一个基于粒子系统的3 d 头发建模及造型系统,包括对渲染以及碰 撞检测算法改进的讨论。 第五章总结全文,对工作中存在的问题提出可行的解决方案。 第二章3 d 头发的建模方法 第二章3 d 头发的建模方法 这一章我们将讨论3 d 头发模拟的常用方法。首先对这些方法作简要的介绍, 包括其特点以及主要算法,然后通过对其各自优缺点进行比较,从中了解现行模拟 及造型系统的不足。 头发本身的物理性质决定了对其在计算机上进行模拟是非常困难的。首先是由 于其庞大的数量和错综复杂的几何性质。人类头皮上一般有1 0 0 ,0 0 0 到1 5 0 ,0 0 0 根头发,并且长、细或弯曲的微小圆柱体有着不同的厚度。还要考虑这些成千上万 发丝的密度、分布及方向性质。同时,头发整体的波形程度也是任意的,从直发到 卷发。其次,头发发质的光感和阴影间的复杂交互作用,头发的发光度由于其状态 ( 潮湿的、干燥的、油腊的等) 不同而存在差异。由于许多发丝发射光线且彼此间 造成的阴影而造成的走样问题。不仅仅看到单独的发丝:一个连续的图像包括头发 颜色、阴影、镜面高光、不同程度的透明度和在背后照明境况下的背光效果。最后 是由于头发间相互作用而造成的碰撞检测问题。因此,对头发进行建模是一件具有 相当工作量的难题。 现在有多种方法对头法进行建模,下面我们主要介绍其中的两种。 2 1 体积纹理模型 体积纹理模型【7 】在本质上解释了毛发的复杂性。体积纹理实际上就是在三维 空间被描述的纹理,它可以由一些二维位图的堆积或一个程序上的三维纹理来进行 创建。毛发( 很短的头发) 可以作为体积的密度函数来模拟。解析定义的超纹理, 可以将毛发在3 d 空间里作为密度变异来模拟。这个模型很容易就能做出毛球,毛 制圆环等。k a j i y a 和k a y 【8 】扩展了超纹理方法【9 】,并将其用在复杂的几何形状 上。这种单一的实体纹理被称为纹理像素( t e x e l ) ,类似于像素,不同的是,纹理像 第二章3 d 头发的建模方法 素是定义三维物体表面的最小元素。纹理实际上是一个二维数组,它的元素是一些 颜色值。单个的颜色值被称为纹理元素( t e x t u r ee l e m e n t s ) 或纹理像素( t e x e l ) 。每 一个纹理像素在纹理中都有一个唯一的地址。这个地址可以被认为是一个列 ( c o l u m n ) 和行( r o w ) 的值,它们分别由u 和v 来表示。纹理坐标位于纹理空间 中。也就是说,纹理空间的原点值与纹理坐标的( 0 ,o ) 值是相对应地。当我们将 一个纹理应用于一个图元时,它的纹理像素地址必须要映射到对象坐标系中。然后 再被映射到屏幕坐标系或像素位置上。 基于体积纹理模型建模头发的方法有两种: 1 、用多边形模拟毛发。每根头发作为一个单独的三角形来模拟,使用z 一缓冲 算法( z b u f f e ra l g o r i t h m ) 【1 0 】对隐藏的移动表面进行渲染。z 一缓冲是用来管理每 个像素的深度信息的。或者是,将头发作为由三角形组成的三角锥来模拟。使用一 个用g o u r a u d 作底纹的硬件z 缓冲渲染器【11 】,模拟头部模型上的三棱柱片段。 2 、使用混合像素和阴影缓冲器相结合。头发渲染通过光线追踪和绘制p o l y l i n e p r e m i t i v e s 【1 2 1 的混合来完成,同时使用对阴影缓冲器附加的模数。首先,计算每 个光源的场景阴影。然后,计算每个光源的头发阴影缓冲器,将每个头发片段绘制 到一个z 一缓冲器并且读出其深度图。合成头发和阴影缓冲器的深度图,并给每个光 源一个单一的合成阴影缓冲器。通过使用场景模型和合成的阴影缓冲器可以生成带 有z 缓冲器的场景图像。头发片段作为照明折线被绘制到附有z 一缓冲器的场景中, 并且用合成的阴影缓冲器去找寻阴影。 体积纹理模型采用类似于弯曲的圆柱体模型来模拟每根发丝并且渲染每个原始 的圆柱体。因此原始圆柱体的数量造成了严重的问题。这样的模型只适用于渲染带 毛皮的物体或者小块的头发,对长发模拟比较困难。 2 2 聚簇发束模型 提出发束模型【1 3 】主要是为了体现:真实感、低开销、高灵活性、实用性和 模拟发型的能力。 第二章3 d 头发的建模方法 2 2 1 引入三棱柱束模型 根据头骨位置将所有的头发划分为几组发束,每个发束由连续的三棱柱来建构, 如图21 ,一个发柬内的三棱柱通过三个3 维b 样条曲线来链接。由于发丝的长度不 同,控制点的数量可能不同。注意:发束轮廓的截面,即一个发束的“真实”图像 是由其2 d 分布图确定的。发束轮廓的截面不需要是个三角形。其形状由分配给发束 的2 d 头发分布图来决定。将“发束”作为头发造型中的最小元素。一个发束内,可 以有l 2 5 5 根头发,且彼此平行。一个发束的3 d 位置和形状由3 个3 维b 样条曲线来 定义,如图2 1 。由两个发束共享的边被称为控制边。 2 2 2 二维头发分布图 二维分布图 图2 1 三棱柱束的定义 兰睃髓露 使用2 d 数组定义发束截面上的头发分布,如图2 2 。通过一个发束的连续三棱柱, 将这些2 d 点投影到屏幕上。所有发丝位置均由这个2 d 方法确定。定义这个2 d 头发 分布图可使头发分布在三棱柱的三角形截面外。这样可删掉发束中不连续的头发分 布。只需计算用于控制三棱柱的3 个控制线。注意:2 d 分布图主要是用于控制发束 轮廓形状的。如,头发在2 d 图上是随机被分布在一个三角形或一个圆中,则合成发 束的形状可能是一个弯曲的三棱柱或一个弯曲的圆柱。头发效果与2 d 分布图的形状 和分布密度相关。2 d 分布图的链接不同,就有不同的视觉效果。例如,通过用直线 第二章3 d 头发的建模方法 链接创建( 过程相对简单) 和通过正弦曲线链接得到( 合成的头发图像会有波形) 的图像会在蓬松感上有区别。 图22 发束的映射 2 23 渲染头发、制造阴影并处理人工对象 首先计算发丝上的照明c 。,公式【1 4 】为: c h = l a k a + z , l i k , t c o s o + k ? s i n ”( f ) 9 一川】 f 2 1 、 下标a 、d 和s 代表环境,漫射和反射。l 是光源的亮度,k 是常量,o 和中是图2 3 中定义的角。对头发的不同颜色,需要对这些参数进行调整。例如,对干燥且是黑 色的头发,可减少k s t l k a 的权重,而增加k d 。不管是什么光线模型,这些计算过程 均只沿着每个发束的三个控制线来执行。每根发丝的光照则是通过对之前的计算结 果进行插值来确定。最后用其它发束的图像和背景与结果进行像素混合,这样创建 了透明的视觉效果并且弥补了走样问题。 第二章3 d 头芨的建模方法 2 2 4 有阴影的头发 图2 3 光源、视点与头发间的角度关系 修改传统的阴影z 缓冲区方法,称为阴影遮蔽法。这个方法分2 步,传统的阴影 z 缓冲区作为第一个,如图2 4 。所有的发束被投射到光源方向上,去检测它们是否 在阴影区内。在这个步骤,新旧方法的差别是用保存x 、y 、z 坐标来替换保存z 缓冲 区信息。因此,第1 步的结果是一个2 维数组,它包含头发轮廓表面上所有对光源可 见的点的3 d 坐标信息。第2 步,通过给每个点分配一个有效地半径。在3 1 3 空间中将 这些点作为球体来处理。这些球的结合会形成一个对光源“可见”的,且类似于面 具的区域。即,它将在不可见区域的外面。 钢点 图2 4 阴影遮蔽 缰 源 溉 , 嚣 , 、苌 ,一 第二章3 d 头发的建模方法 发束模型从数量上减少了头发的总量,并且其渲染过程只与控制线相关,这样 的确提高了计算速度且节省了时间,然而,发束模型是针对一定数量的发丝建模的, 因此,该模型很难模拟出发丝自身的特性,即发丝的纤细性以及发丝间的相互作用, 同时,此方法对光线的计算也较为单一,这些缺点都降低了结果的真实感,得到的 头发更趋于片状。 第三章使用粒子系统进行建模的理论基础 第三章使用粒子系统进行建模的理论基础 粒子系统( p a r t i c l es y s t e m ) 最早是由w i l l i a m r e e v e s 在1 9 8 2 年为了设计s t a r t r e k i i :t h ew r a t ho f k h a n 的特效【1 5 】,而研究出来的一种可g g , j 造出逼真的火焰特效 的方法。r e e v e s 发现之前那种可队轻易创造出平滑,而且有明确界线模型的技术没 有办法达到所要的效果,在这之前的粒子系统是一组拥有动态规则行为的模型,用 于创造某些自然但不容易控制的特效,如银河,r e e v e s 就应用这套规则系统,它可 以保有某种有创造性有效控制且同时达到另一种混乱的效果,因此他就做出了粒子 系统。 这一章我们主要介绍粒子系统的基本概念及其主要应用方向,同时还有在头发 模拟中或许会面临的问题讨论。 3 1 粒子系统的基本概念及属性 粒子系统基本上只是空间中一堆3 d 点的集合,但不同于标准的几何对象,组 成该系统的粒子并不是静态的,它们存在于一个生命周期中。我们产生一个粒子后, 这个粒子的状态会随时间变化,有不同的速度,不同的颜色或是不同的位置等,最 后相继死亡。可以藉由控制粒子系统的参数而赋予系统中分子不同的动作,创造出 不同形式的特效。或是可以使用随机的方式来取代系统中的分子预先设定的路径, 以达到更多样的变化。 很多的现象都可以用粒子系统精确地或者近似地模拟,火焰、喷泉、爆炸、鱼 群、星空等等。他们都运行在一个近似的情况下。 一个粒子系统由拥有各种属性的对象组成,它们必须遵循一定的行为规范。具 体的这些属性和行为规范取决于你想要模拟什么。一些粒子系统可能需要很多属性 和复杂的规则,而有的则可能极为简单。 第三章使用粒子系统进行建模的理论基础 粒子运动( 变化) 的规则可以很简单也可以很复杂,这取决你所模拟的对象。 举例来说,在对烟火的模拟中,我们可以让烟火由上百个小的粒子组成,每个粒子 都需要一些属性来使它区别于其他的粒子。一般的,一个系统中的所有粒子拥有一 个相同的属性集合。下面是一些典型的粒子的属性: 1 、坐标:粒子在什么地方,每个要处理移动粒子的系统都需要记录所有粒子的 运动轨迹。在2 d 系统中需要二个坐标( x ,y ) 3 d 系统中需要三个( x ,y ,z ) 。 每个粒子的坐标随时问的变化而变化,粒子的新坐标将由它的旧坐标和加速度来求 得。 2 、速度:速率和方向。伴随位置的往往是速度。速度是一个矢量,它告诉系统 粒子以多快的速率向哪个方向移动。每个粒子都有一个随机产生的初始速度,粒子 的新速度由加速度和空气阻尼来求得。在每一步,速度与位置相加来移动粒子。速 度用来计算下一时刻粒子的坐标( 位置) 。 3 、加速度:像速度影响位置一样,加速度影响速度。一个粒子的加速度通常是 由于有一个力施加于它,这个力通常是重力,或者其他粒子的引力或者斥力。加速 度用来计算下一时刻粒子的速度。 4 、生命期:通常由于计算动力的限制,粒子被限定到一个有限的生命期,老的 粒子在一定长的时间后被清除以放入新的粒子。每个粒子都有着自己的生命值,随 着时间的推移,粒子的生命值不断减小,直到粒子死亡( 生命值为0 ) 。一个生命周 期结束时,另一个生命周期随即开始,有时为了使粒子能够源源不断地涌出,必须 使一部分粒子在初始后立即死亡。你也许需要一个像火星) l n 样的粒子,在爆炸之 后的几秒后燃尽,在这种情况下它们的亮度和颜色也应该随时间而改变。 5 、衰减:用来控制粒子生命周期的一个物理量, 3 1 ,1 系统分类 粒子系统可以分为两类,即:p a r t i c l es y s t e m 和p e r p i x e lc o n t r o l 。 第三章使用粒子系统进行建模的理论基础 p a r t i c l es y s t e m 可以说是一种基于物理模型来解决问题的方法,其核心不是在于 如何显示,而是在于对微小物质模型的规则提取。只有基于物理模型的方法,才能 模拟出随机而逼真的自然景象。 粒子系统中的粒子与c + + 中类的概念有些类似,这时我们会很容易地把一个 p a r t i c l es y s t e m 抽象成一个类。的确,如果从代码的管理、维护的角度来讲,我们应 该把一个p a r t i c l es y s t e m 封装成一个类,使用面向对象的开发方式,但是使用类是 以失去速度为代价的。对于一个粒子系统,我们的代码的数据处理量会随着粒子数 的上升而呈指数级增长。所以,在编写p a r t i c l es y s t e m 的程序时应尽量避免使用类, 而应该用更为优化、简洁的代码处理。 相对于p a r t i c l es y s t e m ,p e rp i x e lc o n t r o l 更体现的是一种编程思想,是一个抽 象的概念,而非一种具体的模型。通过对屏幕上的每一个点分别进行控制来共同完 成一个整体的效果便是p e rp i x e lc o n t r o l 的总体思想。 31 2 粒子系统的需要及性能 高级的粒子系统表达的物体越真实,粒子的数量就越多,设计一个好的粒子系 统的数据结构很重要,否则将会大大地降低粒子系统的运行速度,为了尽可能地降 低渲染这些粒子的时间,在使用o p e n g l 编程接口时使用点来表示粒子,因为表示 一个点不用进行反走样处理。同时,也可以用短线或小的四边形来表示粒子,在用 小四边形表示粒子时,还可以为这些四边形加上纹理,这样也增加了整个粒子系统 运行的开销。 一个好的粒子系统应该达到以下目标: 1 ) 具有实时的效果设计的粒子系统应该可以高效地计算每个粒子的各项参 数,并且有剩余的时间让c p u 进行其它的计算,以使系统流畅地运行。 2 ) 灵活性可以动态地设置系统中的每个粒子的各项参数,使得粒子系统可以 模拟不同的物体。 第三章使用粒子系统进行建模的理论基础 31 3 粒子系统的物理模型 在粒子系统的设计中,几乎都离不开物理模型的运用。从重力场的模拟,风的 模拟等各种环境的模拟,到波浪、火焰、喷泉、瀑布、枝条的摆动,无一不是源于 物理模型。 常用的物理模型主要有两类:一是基于假想的物理模型,主要是为了方便地模 拟实际单体的形态及运动。常见的主要是粒子系统,喷泉、雾、火焰、雪花等都可 以使用粒子系统。二是基于物体实际的组成,构造及运动规律而进行建模。波浪、 窗帘、桌布、枝条摆动、人及动物的运动都是用了该类模型。对于一些简单物体, 可对整体列出动力学方程然后按帧改变位置、状态,获得模拟动画效果。对于复 杂的物体常将其分成若干部分,针对每一部分列出动力学方程,每帧对每个部分分 别计算后,绘制一般过程。 3 1 4 粒子系统的结构 3 1 4 1 生命周期 一个粒子系统的生命周期可以简单地如图3 1 所表述 3 14 2 数据结构 图3 1 粒子系统的生命周期 在粒子系统中,不同的粒子的初始化方式和更新方式会有所不同,其余的模块 第三章使用粒子系统进行建模的理论基础 具有通用性,如粒子的移动、颜色的改变、重力对粒子的作用、弹跳等。 粒子系统除了上述的属性外,还常用以下值来反映粒子当前状态的属性: o l d p o s i t i o n :粒子先前的位置。该值可能用来在粒子的当前位置和以前的位置之 间绘制粒子。 c o l o r :粒子的颜色。粒子颜色的变化常常可以产生一些真实的效果,如烟火。 e n e r g y :粒子的能量。粒子能量的衰减常常用于物体的弹跳直至最后静止,也可 以用来判断一个粒子的消亡。 s i z e :粒子的大小。粒子的大小影响了一个粒子系统可以表现的效果以及运行的 速度。 t e x t u r e :纹理。是否对粒子设置纹理以及所设置纹理的个数将对整个粒子系统 的性能产生巨大的影响,所以基于性能的考虑,每个相同类型的粒子采用同一个纹 理。 b l e n d m o d e :融合模式。 s y s t e m t y p e :粒子类型。采用一个不重复的整型数标识同一种类型的粒子,例如: 在虚拟的场景中产生了烟或者灰尘,现在要把这些类型的粒子从系统中除去而不管 粒子是否已到了消亡的时候,这样就可以根据粒子的系统标识方便地把它们除去。 3 1 4 3 粒子组 以上阐述了单个粒子的各种属性,现在应该创建一个粒子组来管理各种粒子。 粒子组将创建、释放、更新和渲染所有的系统。 使用粒子组可以方便地增加或删除系统,不需要跟踪所有的系统来保证所有的 粒子均已过期而需从内存中释放它们。 粒子组还应该有的一些管理粒子的函数: i n i t :初始化粒子系统。当一个粒子诞生时,我们需要对它进行一些必要的初始 化,对于不同的效果,初始化的内容也是不一样的。其中有许多参数带有一定的随 机性,这样既可以保证每个粒子的坐标、速度或角加速度在一定范围内分布,也可 以保证整体效果永远不会以相同的面貌出现。 第三章使用粒子系统进行建模的理论基础 u p d a t e :更新所有活动的粒子系统并去掉所有已经过期的粒子系统。 r e n d e r :渲染所有活动的粒子系统。 s h u t d o w n :关闭粒子系统。 3 1 5 粒子系统的主要应用 3 1 5 1 对液体的模拟 液体的模拟是比较困难的,这点与液体自身的物理性质有关。比如水,水的外 观在静态和动态情况下是截然不同的。静态的水具有纯净、平滑的外观且其表面同 时具有反射和折射现象:而动态( 包括漩涡、飞溅、起泡等) 的水则可以看作是水 表面的运动和组成整个体积的水分子的交互作用。这里的交互作用实际上是水分子 间的链接被打破或重组。也是因为这样,整个水体积内的速度与压力问的耦合又造 成水的粘性。 模拟流体模型有一个非常著名的等式一n a v i e r - s t o k e s 【1 6 】,大部分流体都可以 通过修改该等式的不同项来模拟。这个等式形如图3 2 所示: v i = u # d m gm i g r a v i t yp :i i m 6 u 6 t 图3 2n a v i c r s t o k e s 等式 在遵循能量原则和动力守恒的物理模型中,各个力是随时间在速度域中变化的, 因此根据时间来解上式,即可模拟液体。整体上将静态环境模拟成一个三维像素网 格。用粒子与隐表面( i m p l i c i ts u r f a c e s ) 【1 7 】的结合来模拟液体。 然后,对每个模拟时间步骤: 1 ) 结合s e m i - l a g r a n g i a n 算法【1 8 1 ,随时间更新速度域。 2 1 遵循质量守恒原则,强制不可压缩性。 第三章使用粒子系统进行建模的理论基础 3 ) 用得到的新速度域更新液体单位位置。 这里需要注意的是: 静态环境是两个动态域的结合( 速度域与力域) ,用以液体建模。因此通过时间 更新这两个域可以模拟液体运动。 此外,在液体表示方面,用隐表面来表示液体的实际分布。隐函数实际上是无 惯性粒子与动态等相关线的结合。 a 粒子 粒子的位置随时间变化,其速度可直接从速度网格中进行插值计算得到。每个 粒子都按照无惯性等式血d 3 v z 来移动。v 。是x 。( x 是三维坐标中的轴线) 处的流 体速度。 b 等相关线 隐函数的等相关线生成液体表面。在半径为r 的粒子x 。中一1 3 定义一个隐函数为: ( 曲= “一) 2 + 钙一吻) 2 + 一) 2 一r ( 3 - 1 ) 这个粒子的表面可看作是绕x 。的球体面来定义,这里( p ,( x ) = o 。一个隐函数 中( x ) 通过从离x 最近的粒子中取中。( x ) 的值来定义所有的粒子。如果在每个网格点 都对币( x ) 进行采样,则可以用一个m c a 算法( m a r c h i n gc u b e sa l g o r i t h m ) 1 9 将( p ( x ) = o 的等相关线镶嵌成小方格。同时需要在时间和空间上平捐( p ( x ) 。 平滑表面需要法向化( p ( x ) ,使得i , p ( x ) t 等于从x 到0 等相关线上最近点的距离。 一旦平渭后,可以直接光线追踪等相关线,用于去识别( p 值。注意:表面法线由 n = v ( o i v ( n 1 给出。 c 动态层次集( l e v e l s e t ) 【2 0 】 第三章使用粒子系统进行建模的理论基础 随时间用液体速度域u 来直接进化【p ,平滑的表面至少要在视觉上保证液体的 物理性质。通过追踪中( x ) = 0 的等相关线,可以随时间更新表面的位置。 d 混合表面模型 即层次集与粒子相结合。在每个时间步里,及时向前进化层次集( p ( x ) 和粒子, 用更新的层次集函数值去决定如何处理每个粒子。若一个粒子远离网格单元且在表 面内部,这个粒子将被删掉。若靠近( p ( x ) = 0 且粒子数稀少的单元,则会被添加粒 子。对表面附近的每个粒子,局部插入的接触面曲率为:k = v - ( v 妒1 v 妒1 ) ,它用于 判断表面是否平滑。结果较低的曲率平滑域并且可以由层次集函数得出平滑液体表 面表达式的粒子被忽略。高曲率的平滑域表示飞溅。在这些域中,粒子可以去修改 ( p 的局部值。 e 更新速度域 用欧拉一拉格朗日( e u l e r l a g r a n g i a n ) 的结合方法 2 1 】,同时用粒子和层次集 去随时间更新表面位置。 f 边界条件 1 1 非液体单元 指网格中那些不含粒子同时也没有被包含在等效面内的单元。这些单元要么被 认为是空的,要么被认为是部分液体。若单元为空,则将其压力设置为大气压力, 且假设它在与另一个空单元共享面上的速度为0 。若单元是部分液体,则可以设置 其速度和压力。 2 ) 液体表面 指部分包含甲( x ) = 0 的等相关线的网格单元。这些单元描述了网格内液体表面的 位置。等相关线的位移确定表面如何变化。在空单元和液体单元之间的面上设置一 第三章使用粒子系统进行建模的理论基础 个速度,使法线与切线的合力为0 。通过在液体表面的单元内强制不可压缩性来确 定没有混合气体或抑制液体运动。 g 质量守恒 液体表面单元满足质量守恒原则,同时在网格内保存质量,以确保不可压缩性 能满足每个网格单元。用拉普拉斯算子( l a p l a c i a no p e r a t o r ) 2 2 】耦合局部压力去 改变每个单元的发散性,通过解这算子来强制不可压缩性: v 2 p = p v “,a t ( 3 - 2 ) v 2 p 是压力的空间变化,u 是速度域。一旦新的压力被确定,每个单元的速度 也被更新。 3 1 5 2 对布料的模拟 布料不是连续的薄片,而是有复杂的机械机构的【2 3 】。模拟时不必要详尽地去 描述织物中的纤维结构细节。将布建模成一个粒子集合,该集合里的每个粒子可看 作平织中纺线问的交叉点( 图3 3 ) 。这些交叉点常常会产生一些决定平织纺织品行 为的机械交互作用。最为重要的是,在多数织物中,这些交叉点的压缩都非常好而 使纺线都被织得很紧实,同时在布面上褶皱会发生的地方提供了一个轴线。 模拟布的模型中,要使用能量函数( e n e r g yf u n c t i o n ) 2 4 】。它可以捕捉到在 局部邻居域中粒子问的简单几何关系。这是用能量函数将几何约束强加在参数化的 模型中的应用。该函数试图去封装出现在线这个等级中四种基本的机械交互作用: 线间接触、线的伸展、线的弯曲和格子结构( t r e l l i s i n g ) 。如图3 3 所示,能量等式 为: 2 + + + + 口s , u 。“是粒子i 的所有能量。u r 掣是排斥力的人工能量,它有效的保证了每 第三章使用粒子系统进行建模的理论基础 个其他粒子都在最小距离内,提供了一些防止布料自我交互作用的措施。玑。 是 将粒子与其四个邻居链接在一起并且可以捕捉拉伸应变( t e n s i l es t r a i n ) 的能量。 州是由于线的弯曲超出了布的局部平面所获得的能量。v 删蝇则是在布平面内 的纺线交叉处弯曲所得能量。u 五蚍是由于单个粒子的分布质量所得的重力潜在 能量。接触和伸展仅是粒子间距离t 的函数,反之,弯曲和格子结构是片断间的连 接粒子不同角度关系的函数。u 品咄是粒子高度的函数( z 组元) 。格子结构,它 是纺线弯向其交叉点试图在布的局部平面显示一个“s - 曲线”的现象。由于布料是 作为一个交互编织的纺线网格建模的,而不是连续的薄片,所以格子结构是个更 佳的描述条件。 a 排斥、伸展和重力 交叉线映射成粒子 图3 3 :将一块织物映射成粒子网格 假设当布料发生简单皱褶时,在织物中的纺线没有伸展。因此,不需使用张力 数据。伸展和排斥函数一起提供了一个能量值,这个能量值保证4 个相连接的邻居 粒子彼此间有个极小的距离a 。这些函数为: 和 尺( ) = c o ( 盯一勺) 勺勺盯 0 t o 仃 ( 3 4 ) 第三章使用粒子系统进行建模的理论基础 s ( 乃) = 兰。 ( ( 勺一盯) ,盯) s 勺 - 盯 。, 这里c o 是个范围参数,它可以控制排斥力r 和伸展力s 的大小并且r 。是当 前粒子i 和一个邻近粒子j 间的距离。 u r e p e l i 函数将所有的粒子相加得到: u 州2 乏尺( 勺)限。、 上式只需要将空间上邻近的邻居粒子相加即可。通过伸展力链接粒子及其4 个 邻居会产生一个能量值。它通过对每个邻居加上伸展力s 来计算: u s , r e , o h , 2 荟) p , n i 是粒子i 的4 个连接邻居的集合。排斥力和伸展力函数会在网格的邻近粒子 间强加距离约束。 由重力引起的粒子能量可以简单的定义为: u 唧i 弧= 弧g h t 这里m i 是质量,h i 是粒子i 的高度,g 是重力加速度。单个粒子所代表的那块 布料质量即为粒子的质量。 b 弯曲和格子结构 与伸展力相比,弯曲和格子结构属性可以更好的模拟布的褶皱行为。弯曲能量 是三个沿着弯曲的纺线形成的角的函数。因此完
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025昆仑数智科技有限责任公司春季高校毕业生招聘15人考前自测高频考点模拟试题及参考答案详解一套
- 2025北京市海淀区锦秋学校招聘考前自测高频考点模拟试题附答案详解(突破训练)
- 2025年甘肃康盛慈民医院4月招聘35人考前自测高频考点模拟试题完整参考答案详解
- 2025年湖南株洲市卫生健康委员会直属事业单位招聘142人考前自测高频考点模拟试题附答案详解(突破训练)
- 五年级品德与社会下册 第一单元 成长的快乐与烦恼 2《拥有好心情》说课稿设计 新人教版
- 一级注册消防工程师(消防安全技术实务)综合能力测试题及答案(2024年湖南湘西州)
- 2024-2025学年高中物理 第十三章 光 4 实验:用双缝干涉测量光的波长说课稿1 新人教版选修3-4
- 珍惜‘食’光不负‘粮’心-2025年世界粮食日学校活动方案
- 3.3 热机发展之路说课稿-2025-2026学年高中物理上海科教版选修1-2-沪教版2007
- 第一课 批判性思维“一点通”(教学设计)-小学心理健康五年级下册同步备课系列(人教版)
- 2025年长春吉润净月医院社会招聘模拟试卷(含答案详解)
- 2024-2025学年广东省深圳市梅山中学九年级上学期开学考英语试题及答案
- 2025年贵州省遵义市辅警招聘考试题题库(含参考答案)
- 2025年国网宁夏电力有限公司高校毕业生提前批招聘校园宣讲安排笔试参考题库附带答案详解
- 2025年哈尔滨呼兰区招聘禁毒协管员30人考试参考试题及答案解析
- 2025初级注册安全工程师题库合集(+答案)
- 2025年武汉东西湖分局招聘警务辅助人员招聘73人考试参考试题及答案解析
- 池黄高铁安全培训课件
- 单相光伏并网反激式微逆变器:拓扑结构、控制策略与性能优化研究
- 2025-2030中国三坐标测量机行业市场发展趋势与前景展望战略研究报告
- 学堂在线 中国传统艺术-篆刻、书法、水墨画体验与欣赏 章节测试答案
评论
0/150
提交评论