(计算机应用技术专业论文)基于流体模型和gpu的云的实时仿真.pdf_第1页
(计算机应用技术专业论文)基于流体模型和gpu的云的实时仿真.pdf_第2页
(计算机应用技术专业论文)基于流体模型和gpu的云的实时仿真.pdf_第3页
(计算机应用技术专业论文)基于流体模型和gpu的云的实时仿真.pdf_第4页
(计算机应用技术专业论文)基于流体模型和gpu的云的实时仿真.pdf_第5页
已阅读5页,还剩51页未读 继续免费阅读

(计算机应用技术专业论文)基于流体模型和gpu的云的实时仿真.pdf.pdf 免费下载

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

文档简介

大连理工大学硕士学位论文 摘要 自然现象的建模和渲染是近十几年来计算机虚拟现实与系统仿真的一个重要研究 领域,而基于物理模型的流体模拟近年来成为这个领域的一个研究热点。由于在现实世 界中运动规律的复杂性,充分符合规律并重现其运动成为了基于物理模型的虚拟现实和 系统仿真的关键性技术。 本文主要针对云的生成过程进行了实时的仿真。在系统仿真领域中,传统的仿真难 以有效地对云这样形体无规则且动态变化的复杂体进行绘制,同时对于这种现象缺乏对 其物理模型本身比较合适的描述。物理计算的复杂性往往带来性能的严重损失,满足不 了许多对时间要求较高的应用领域的需求,因此如何在视觉误差范围内对其计算处理并 且保持速度就显得尤为重要。本文以基于物理模型的系统仿真作为目标,并在真实感和 速度上都有提高,达到了实时仿真的目的。 针对目前基于c p u 仿真云的方法,或者真实感程度低,或者计算量大,或者实时 效果差的问题,本文提出了一种在g p u 中实现的基于物理模型的云实时仿真。首先分 析了云的物理模型,考虑到g p u 的特点建立了云的模型;然后根据云的不可压缩、低 密度、无粘性的特点,通过流体方程计算了云的物理属性,并将其求解过程在g p u 中 实现,从而得到了动态的,真实感强的,实时的统一,得到了较真实的模拟效果 关键词:g p u ;流体模型;云;仿真 大连理工大学硕士学位论文 r e a l - t i m ec l o u ds i m u l a t i o nb a s e do nf i u i dm o d e la n dg p u a b s t r a c t t h es i m u l a t i o no fn a t u r a lp h e n o m e n o ni sv e r yi m p o r t a n ti nc o m p u t e rg r a p h i c si l l - e ai n t h e s et e ny e a r s ;f u r t h e r m o r e ,t h es i m u l a t i o nb a s e do nf l u i dm o d e li se s p e c i a l l ys i g n i f i c a n t p o i n to ft h er e s e 盯c h b e c a u s eo ft h ec o m p l i c a t eo ft h er o l ei nt h er e a lw o r l d ,i ti sb e c o m i n g t h ec o r ef o ra d a p t i n gt h er u l eo ft h ew o r l da n dr 曲- y i n gt os h o wt h em o v e m e n to ut h ev i f t u a l s i m u l a t i o i l t i l i sp a p e ra d o p t sam e t h o do nt h es i m u l a t i o no ft h ec l o u d i nt h ev i r t u a ls i m u l a t i o n , t h e t r a d i t i o n a lm e t h o d sa r eh a r dt ob ec o m p e t e n tf o rt h ec o m p l i c a t ec l o u ds i m u l a t i o nw i t ht h e 1 1 i g hr e q u i r e m e n to fr e a l i s t i ce f f e c t s b e c a u s eo ft h eh e a v yc a l c u l a t i o na n dl l i g hc o m p l e x i t y t h ec o m p l e x i t yt h a tp h y s i c sc a l c u l a t e ss o m e t i m e sb r i n g sa b o u tg r a v ef i m e t i o nl o s s ,s oi td o e s n o ts a t i s f yt h en e e dt h a tm a n yp a i ro f t i m ed e m a n dt oa p p l yaf i e l dw i t h o u te n dc o m p a r a t i v e l y h i g h l y t h e r e f o r e ,i ti si m p o r t a n tt oh o wt oh a n d l ei ns e c r e t l ys c h e m i n gw i t h i no p t e s t h e s i a e r r o rr a n g et ot h ep e r s o na n dk e e p i n gt h es p e e d t h i sp a p e ri su s e df l u i dm o d e ls y s t e m s i m u l a t e sa st h et a r g e t t ot r yt oe x p l o r eaf i n eb a l a n c eb e t w e e nt h es 郇eo fr e a l i t yt h a t p h y s i c ss i m u l a t e sa n de f f i c i e n c y ,t h e ni ti ss a t i s f i e df o ra l i t t l ea p p l i c a t i o n d u et ot h ep r o b l e m se x i s t i n gi ns i r n u l a t i o no fc l o u do nt h ec p u s u c h 硒h e a v y c a l c u l a t i o n , l o wr e a l i t yo rd i f f i c u l t yi nr e a l t i m es i m u l a t i o n , t h i sp a p e rr a i s e san e wr e a l - t i m e s i m u l a t i o nm e t h o db a s e do nf l u i dm o d e la n dg p ua c c e l e r a t i o n t h i sm e t h o d ,b a s e do nt h e p h y s i c a lc h a r a c t e r i s t i c so f c l o u l d ,s u c ha si n c o m p r e s s i b i l i t y , l o wd e n s i t ya n di n v i s c i d , u s e st h e f l u i de q u a t i o n st oc a l c u l a t et h ep r o p e r t i e so f c l o u d t h e nb ya c c e l e r a t i n gt h i sm e t h o dt h r o u g h g p u ,i ta c h i e v e sag o o de f f e c t , w h i c hi sc o n t i n u o u s ,d y n a m i ca n dr e a lc l o u d k e yw o r d s : g p u :f l u i dm o d e hc l o u d ;s i m u l a t i o n i i i 独创性说明 作者郑重声明:本硕士学位论文是我个人在导师指导下进行的研究工 作及取得研究成果尽我所知,除了文中特别加以标注和致谢的地方外, 论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得大连理 工大学或者其他单位的学位或证书所使用过的材料与我一同工作的同志 对本研究所做的贡献均已在论文中做了明确的说明并表示了谢意。 作者签名:童滋整日期;作者签名:墅坌丝垫! 终日期; 沙刀缉、螭i 蚀 人连理i 大学硕十研究生学位渔文 大连理工大学学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连理工大学硕士、博士学位 论文版权使用规定”,同意大连理工大学保留并向国家有关部门或机构送 交学位论文的复印件和电子版,允许论文被查阅和借阅本人授权大连理工 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,也可 采用影印、缩印或扫描等复制手段保存和汇编学位论文 作者签名:塾4 塾 作者签名:圆强7 i 望 导师签名:璇整堕8 z 。司年ih fo i :_ i 大连理工大学硕士学位论文 引言 虚拟现实与系统仿真是伴随着计算机硬件和图形算法高速发展起来的一门高新技 术,它综合利用计算机科学、艺术、数学、物理学和其它相关学科的知识在计算机上生 成绚丽多彩的连续的虚拟真实画面,给人们提供了一个充分展示个人想象力和艺术才能 的新天地。它的目标是根据场景的造型、材质和光源分布,生成与真实场景在视觉效果 上相差无几的图像,使观察者有身临其境的感觉。在近十年的时间里,已广泛应用于 c a d c a m 、计算机动画、电脑游戏、科学计算可视化等领域,它的影响正迅速地向工 业生产和社会生活的各个领域渗透。可以预料。在未来社会里它必将发挥更为重要的作 用。 自然景物一般都是在时刻变化着的,这也正是大自然的美妙所在。要准确模拟自然 景物必须考虑其背后的物理机制。云作为一种气体现象,是由无数的小颗粒随机运动 产生的,没有可以很好定义的表面和边界,而且随时发生各种各样的变化。这使得经典 的欧几里德几何学对其描述非常困难,如果直接用直线、多次曲线和常用的样条曲线及 曲面等对云进行建模。又会失去视觉上的真实感:云是自然界最为常见的现象,虽然很 少有人能够准确地描述其形状,却为人们所熟悉,因此,利用计算机生成令人信服的具 有真实感的云的图像就非常困难;云的运动十分复杂,虽然大气物理学对其研究比较深 入,但是用一个数学模型对其运动变化进行精确的描述却有些困难,一方面要考虑运算 量的大小,另一方面还要考虑计算机生成图像的真实感。 ( 1 ) 国内现状 随着计算机图形学的不断发展,人们更偏重于寻求能准确地描述客观世界中各种现 象与景观的数学模型,不仅仅寻求静态真实感,也希望能逼真地再现运动的真实感。而 动态自然景象难以用一些简单的过程来模拟,必须依据真实世界的物理规律才能得以体 现。物理原理描述了物体如何运动、如何以及他们之间如何相互影响。基于物理模型的 仿真一方面能保证所生成景观的真实感;另一方面也减轻了程序开发人员的劳动强度, 不再需要设计脚本去控制管理每一个细小事件,一切运动和变化都会按着其本身的物理 规律来进行。 目前国内外开展的关于云的仿真研究很多,形成的仿真方法多种多样。大体分为以 下几类: 基于分形的云建模方法 基于流体模型和g p u 的云的实时仿真 在1 9 9 3 年t n i s h i t a 等人就提出了云的二维分形建模方法 5 1 ,随后又有人提出云的 三维分形建模方法。1 9 9 6 年,y d o b a s h i 等人提出基于分形几何的原理利用变形球建 立云的模型”j 。 分形方法的原理如下:利用分形几何,先定义出云的形状,然后运用光照效果将该 形状表现为云团。在建立云的分形模型过程中,把云的基本形状定义为简单的球体,并 在不同的方向上对这些云球作某些变形,然后将初始的云球随机缩小,并在不同方位上 偏离父球中心的微小位移处进行多次随机复制,该过程一直继续下去直到达到最后的迭 代层次达到小于一个屏幕为止,最后绘制出这些缩放后的球。同时,为了建立云的更逼 真的外观,把球的色彩看作是它到地面高度的函数,较黑的灰色用于云的较低部分随 着高度增大,灰色逐渐变淡,通过颜色密度和放大倍数简单改变,可以绘制出从乌云到 自云的任何外观逼真的云团。 基于文法的建模方法 基于文法的模型,主要是基于l 系统( l - s y s t e m s ) 允许用几个参数来定义自然界复杂 的事物。l i n d e nm a y e r 、p r u s i n l d e w i e z 和f o w l e r ,用它来生成具有相当真实感的模型和 图像,如对树、一些植物和海贝壳等的建模与绘制【2 】。1 9 9 8 年,y e s h i n o r id o b a s h i 等人 利用这个方法提出了云的细胞自动机模型,并且把该模型成功用来生成具有较好真实感 的云的动画口】。云的细胞自动机模型的基本思想是:把仿真空间分成三维网格,在每一 个网格点仅仅用三个状态变量h u m 、d d 和a c t 分别表示水蒸汽、云和从水蒸汽到云的变 化状态。每一个状态变量的值为1 或0 。云的生长通过几个简单的转换规则来模拟。由 于每一个状态变量的值只能为1 或0 ,因此转换规则可以用布尔运算来实现,这样运算 量较小。 基于体过程的云建模方法 体过程建模方法是一种过程建模方法。体过程也称为超纹理、体密度函数或者模糊 滴状斑点【2 】,它利用一定的算法对三维体的对象和自然现象进行定义和动画。它通过输 入点的空间位置、一个时间参数和描述被建模对象的几个参数,返回在该空间位置对象 的密度和颜色,因此复杂的体自然现象就可以利用几个参数进行描述。该方法已经用来 对火、烟、水、云和雾等自然现象进行了建模。1 9 8 5 年,g e o f f i e yy g a r d n e r 提出云 模型由以下三部分组成:一个天空平面、椭球体和数学纹理函数。通过调整纹理函数的 参数,产生不同类型的云纹理,把云纹理映射到椭球体就生成了云的三维图像。最有影 响的过程纹理函数是1 9 8 5 年k e np e r l i n 给出的p e r l i n 噪声函数【4 l 。所有种类的纹理都可 大i 毫舡大学硕士学位论文 以用p e r l i n 噪声来生成,云纹理的渲染尤其适合于p e n i n 噪声,已经用来生成云的三维 动画。该方法目前仍在研究和发展中。 粒子系统模型 粒子系统与上面几种方法不同之处在于它们对物体运动和定义的抽象控制。粒子系 统利用巨大的几何体元数据库来表示自然界的模糊物体,物体粒子的运动、位置、出现 和消亡是通过数学运算来控制的【2 】。火、水、云、雪、雨等自然现象都可以看作是由许 多粒子构成,粒子系统被广泛用于它们的建模。早在1 9 8 3 年,w i l l i a mt r e e v e s s l 就 提出了用粒子系统对一类模糊物体( 如云、火等) 建模,取得了较为满意的视觉效果1 9 9 8 年,m a t t h i a su n b e s c h e i d e n 等人嘲利用粒子系统,从云的物理原理出发,结合纹理影射 技术建立了云的模型。其核心思想是采用具有纹理的多面体顶点集代替粒子群,以大大 减少粒子系统中粒子的数量,从而使粒子系统的实时仿真能够实现。 这样划分并不是绝对的,类与类之间还存在着相互交叉。以上每类方法都有其优点 和不足。基于分形的云建模方法首先描还物体的大致形状,然后再利用随机仿射变换或 结合光照模型表现物体,因此适合于绘制云的精细的静止图像。基于文法的云建模方法 组元及其变化规则简单明了,真实感较强,适合于云的动画显示,但运算速度有待提高。 另一方面,由于云的状态变化不具有连续性,这一点也限制了该建模方法渲染的云的真 实感。基于体过程的云建模方法不但允许使用简单函数来模拟自然界的复杂性( 噪声和 扰动) 以提高运算速度,而且允许结合基于物理原理的参数。但是该方法难以生成具有 较强真实感的运动图像,而且人工痕迹比较明显。该方法的另一个不足就是对于三维场 景中的每一个元素都要用同一种绘制技术。使得在模拟云这种气体现象时运算量较大 限制了它的实时性。基于粒子系统的云模型可以显示云的动态特征,真实感强,但是运 动规律的提取困难。由于运算量大实时绘制也存在困难【7 l 。 为了保证生成的图像具有很强的真实感,在建模的时候,必须把研究对象的物理原 理融合进去。云及其它自然现象的仿真也沿这个方向发展,尤其是近年来计算机图形学 技术在仿真中的应用更促进了这一发展趋势。 ( 2 ) 本文研究内容与目标 人们不仅需要形象的真实感,也需要运动的真实感。而真实运动的复杂度往往使得 人们难以用一些过程表述,这个时候只有借助于真实世界的物理规律才能得以体现。真 实的背后就是物理,物理描述了物体如何运动、如何动作以及它们之间如何相互影响。 在系统仿真领域中,对于这种现象缺乏对其物理模型本身比较合适的描述,物理计算的 复杂性往往带来性能的严重损失满足不了许多对时间要求较高的应用领域的需求所 以真实感与绘制速度之问产生了矛盾,因此如何在视觉误差范围内对其计算处理并且保 一3 一 基于流体模型和g p u 的云的实时仿真 持速度就显得尤为重要。本文以基于物理模型的系统仿真作为目标,并试图在物理模拟 的真实感和效率之自j 寻求一个解决方法。 本文主要针对云的实时仿真提出了一种方法,共分为4 章,引言介绍了目前国内外 对于云的仿真的发展现状。第1 章介绍了g p u 发展及相关情况。第2 章介绍了基于物 理模型的流体计算的基本知识。第3 章详细论述了基于流体模型和g p u 的云的仿真的 实现。第4 章对本文提出的方法进行横向对比和分析。最后进行了总结和展望。 其中第3 章主要分析了流体动力学的物理模型,用合理的数学表达式表述了该模型; 然后在利用g p u 做通用计算的基础上,根据云的不可压缩、低密度、无粘性的特点, 利用g p u 求解纳维斯托克斯流体运动方程组,采用半拉格朗日方法求解对流项,从而 利用g p u 的并行性获得充分的加速,使得整个计算和绘制达到实时效果,从而得到了 动态的,真实感强的,实时的统一,得到了较真实的模拟效果。第4 章主要给出了计算 过程中的对速度影响的分析和相关的云的效果分析。 4 一 大连理工大学硕士学位论文 1 可编程图形硬件的简介 1 1 可编程图形硬件的特点与结构 在顶点级操作上,引入了顶点着色器处理每个顶点,用户可以通过自己编写代码实 现专门的光照明模型【钔。经过光栅化后,在象素处理阶段,引入的象素着色器,可以实 现对每个象素的可编程操作。顶点着色器和象素着色器都是典型的流处理机,这种流处 理机和传统的向量处理机的主要区别在于,它不具有大容量的快存,存储器可以读写,只 是直接在芯片上利用临时寄存器做流数据的操作。对于g p u 而言,图形流数据分别是 顶点图元以及光栅化后的象素;根据图形处理的特点,g p u 流里的元素为4 个单元的向 量,可以利用它来表示三维齐次坐标,三维空间齐次向量,颜色等数据,正是这种流处 理机的并行结构,实现了指令的并行处理,目前绝大部分的g p u 都拥有多条可以并行 的s h a d e r 管线,这种体系结构使得其不仅可以用于高效图形绘制,而且可以成为通用并 行计算平台p j 。 ( 1 ) 可编程图形硬件的优点 在顶点级和像素级提供了灵活的可编程特性。 在顶点级和像素级运算上都支持i e e e3 2 位浮点运算,可进行高精度的绘制。 一定的并行性。这一功能主要是通过多个渲染管道和r g b a 四个颜色通道的同 时计算来体现的。顶点程序的多个渲染管道意味着一个时钟周期可以并行处理多个顶 点,而对于像素程序同样如此。相对于巨型并行机来,图形卡提供的并行性虽然很弱, 但它在十分廉价的基础上为很多应用提供了一个很好的并行方案,尤其是对于图形本身 的应用来说。 高密集的运算。由于图形卡内部的内存接口的位宽大于c p u 上的位宽,如 g e f o r c ef x 内存的位宽达2 5 6 位,显然高于c p u 上3 2 位的位宽,这样整个计算的带宽 大大提高。g p u 相对于c f u 来说,更适应传输大块的数据,虽然c p u 上有c a c h e 以加 速整个计算过程,但c p u 上的c a c h e 相对于图形卡显存来说太小,一般只有6 4 k ,而现 在的显存大多都在“m 以上,由此可见一斑。 支持绘制到纹理的功能,从而减少了g p u 与c p u 的数据通讯。尤其是当整个 应用针对图形生成的时候,不再需要在c p u 与g p u 之间进行多次数据交换,从而可以 让c p u 解放出来做其他的事情。 支持依赖性纹理访问功能,以方便数据的索引访问,可以将纹理作为内存来使 用。 基于流体模型和g p u 的云的实时仿真 这些优势使得g p u 比c p u 更适用于流处理计算,因此也被认为是一个s i m d 的并 行机或者流处理器,可以用于处理大规模数据集,使得应用得到加速。而相比之下,c p u 本质上是一个标量计算模型,而计算单元偏少,主要针对复杂控制和低延迟而非高带宽 进行了若干优化。 ( 2 ) 可编程图形硬件的缺点 可编程g p u 仍然是一种s i m d 架构。它也具有相应的限制:有限的动态控制流和 递归调用嵌套。尽管很多s i m d 处理器利用预测码实现指令的动态执行,但是由于预测 码寄存器资源的限制,动态控制流仍然有嵌套深度上的限制。在实现算法时常常必须考 虑到这个问题。动态控制流在算法上的表现是一棵判断树,因为嵌套深度的限制,判断 树也将具有相应的深度限制。 部分g p u 支持嵌套调用,但受到层次上的限制,嵌套调用的层次仅仅允许四层。 对于递归调用来说,常常难以预测具体的嵌套深度。而四层嵌套在进行递归调用时常常 不够用。 另外,g p u 进行数据回传速度非常慢,故应该先用c p u 对数据进行处理,能后把 数据传到g p u 进行多边渲染,然后把最终结果回传到c p u 或直接显示结果。 在这种通用的流水线中,首先经过顶点级的光照计算和坐标变换,求出每个顶点的 光照颜色值,同时还将顶点坐标从物体坐标系转换到裁剪空间( c l i ps p a c e ) 。然后,对 每个三角形进行光栅化处理并将对三角形顶点的颜色进行双线性插值,得到了三角形中 每一个象素的颜色值。接着进行纹理映射,即根据每一个象素的纹理坐标值将纹理颜色 分配到每个象素上。最后进行颜色混合计算和雾化效果计算,得到的结果将会放进帧缓 存并显示到屏幕上。 ( 3 ) 可编程图形硬件的结构 顶点着色器 顶点着色器的指令集中包含的通用运算指令有:加法( a d d ) 、乘法( m u l ) 、先加 后乘( m a d ) 、三维的点积运算( d p 3 ) 、四维的点积运算( d p 4 ) 、求倒数( r c p ) 、求平方 根的倒数( r s o ) 、指数运算( e x p ) 和对数运算( l o g ) ,求最大值( m a x ) ,求最小值( m 玳) 等;还有寻址指令( a r l ) ,移动数据指令( m o v ) ,判断指令:判断是否小于( s l t ) ,判 断是否大于等于( s g e ) ,以及两个专门为了实现光照计算公式的指令:一个是根据光源 距离计算衰减系数( d s t ) ,另一个是实现光照模型公式的计算( l i t ) 等。具有丰富功能 的指令集为顶点处理绘制信息的计算提供了强大的支持。 像素着色器 一6 大连理工大学硕士学位论文 象素着色器提供了象素级上的加法,乘法以及点积运算功能,丰富的运算功能可支 持象素级上的各种绘制运算。目前g p u 大都提供了可以并行计算的2 0 条象素着色器计 算管线,在每一计算管线上都可以对取自多个输入寄存器的数据进行基于指令集的各种 运算,象素着色器的指令集和顶点着色器一样提供了丰富的计算功能。 多遍渲染和多渲染目标 对于比较复杂的图像处理操作,通常需要一次以上的运算。有时即使能够一次完成 的运算,出于运算速度的考虑,也需要分解成多次进行。 图形处理的过程中,一个三维对象的渲染,有时需要多遍的渲染,为此,图形处理 系统都支持对同一个模型的多遍绘制。只是由于图形处理中,一般是先后进行相同对象 的不同运算,然后把结果通过某种方式融合起来;而本文需要的多是把上一步的运算结 果作为下一步运算的输入。可是在p i x e ls h a d e r 当中,不支持对纹理的直接写操作,可 是为了避免将在光照计算中计算结果拷贝到纹理这个比较费时的过程,现代的图形处理 单元支持渲染到纹理的功能。 1 2 s h a d e r 语言 绘制语言s h a d i n gl a n g u a g e 在有的文献中称为着色语言,这是因为最初确实是使用 它来编写程序对模型表面着色进行控制,但是随着图形处理硬件的发展,其能够进行处 理的范围已经不只是对模型表面着色进行控制,在现在的图形处理器上可以对输入的顶 点信息进行坐标变换、位置变换,甚至实现一定程度上的动画功能;可以对渲染中的雾 模型和光照模型进行计算处理。正是因为这些本文中将其称为绘制语言,更准确的说明 了其可以完成的功能。与针对c p u 的通用编程语言不同,绘制语言是为g p u 设计,在 g p u 上执行的语言。相比之下有许多不同,如在使用中涉及到大量矢量和矩阵运算,与 纹理相关操作,流计算处理方式。 基于流体模型和g p u 的云的实时仿真 2 基于流体模型计算的概论 2 1 概述 人们一直试图利用计算机再现周围的真实世界,然而现实世界虽然看上去简单,却 极其复杂。对于一些自然现象。人们可以采用过程描述的方式来获得某种特定的效果。 但是对于有些现象人们无法找到一个简单的模型来描述它,这个时候只有去追溯该现象 本身的物理根源,只有借助其本身较为精确的物理描述才能真实再现其外在的视觉现 象。随着计算机硬件的不断发展,计算能力不断增强,p c 机能够完成的算法复杂度不 断上升,使得基于物理的计算机动画的迅速发展成为可能。在市场方面,不管是电影特 效,还是视频游戏,人们对于基于物理的计算机动画的需求也很强烈。这些因素使得基 于物理的计算机动画成为目前一个研究热点,也成为一个当前和未来计算机图形学发展 的一个重点方向。 2 2 流体模拟研究方法的发展 早期的流体模拟,由于计算能力有限,主要采用参数建模的方法。如通过将波浪函 数表示成一系列线性波型的组合,更进一步将各个波型简化为波形和相位的组合函数, 从而合成浅水表面高度场,能处理波折射问题,并采用粒子系统来模拟当波浪破碎或者 碰到障碍物的时候形成的浪花。为克服单纯高度场不能模拟水面折叠效果的问题,基于 g e s m c m 壤型,采用拉格朗日粒子来模拟波浪参数表面,通过海底深度和坡度来来控制 正弦函数波形。但在这两篇文献中,表示水的粒子或者网格只是在其初始位置附近运动, 所以它们都无法表现真正的流动效果,也无法处理边界给水面带来的影响。但是对于以 上这些模型,人们觉得控制起来很困难,而且不能模拟一些复杂的、细节更为丰富的效 果,于是很多研究者转向基于物理的方法。基于物理的方法主要分为两种:第一种方法 是从研究流体所占据的空间中各个固定点处的运动着手,分析运动的流体所充满的空间 中每一个固定点上的流体的速度、压强、密度等参数随时间的变化,以及研究由某一空 间点转到另一空间点时这些参数的变化,该方法被称为欧拉法,是一种基于网格的方法; 第二种方法是从分析流体各个微团的运动着手,即研究流体中某一指定微团的速度、压 强、密度等描述流体运动的参数随时间的变化,以及研究由一个流体微团转到其他流体 微团时参数的变化,以此来研究整个流体的运动,被称为拉格朗日法,是一种基于粒子 的方法。 ( 1 ) 欧拉法 大连理工大学硕士学位论文 欧拉法以。流场”为研究对象,是一种流场法,是描述流体现象最为完整的方程。 某一瞬时各空间点上皆具有一定流速的流体质点经过,在该瞬时被流体占据的各空间点 的流速矢量的集合,便构成了流速矢量场( 流速场) 。压强场是某一瞬时流体质点所占据 的各空阃点上压强的集合,加速度场具有类似的含义。因此,能够将运动要素视作空间 坐标k y ,z ) 与时间坐标f 的函数。采用欧拉法时,在每一瞬时f 的流速场可以表示成: “= u ( x ,y ,z ,f ) ,= v ( x ,y ,:,f )( 2 1 ) w = 州j ,) ,2 ,f ) 压强场可以表示成: p = p ( 薯只z ,f ) ( 2 笏 加速度场( 即每一瞬时t 流体质点的加速度所构成的瞬时空间场) 可以表示成: 口。= a x ( x ,y ,z ,f ) a 。= a yx ,y ,二,t ) ( 2 3 ) a := a x ( 工,y ,z ,f ) 其中式( 2 1 ) 、( 2 2 ) 、( 2 3 ) 中的变量b ,y ,z ) 是空间坐标点,是固定不变的,在计算 时就对这个固定空间点计算运动要素,而在拉氏法中变量( ,b ,c ) 是流体质点当前位置。 是不断变化的。 采用欧拉法后,质点的加速度场是流速场对时间t 的全导数。在进行求导运算时, 速度公式( 3 6 ) 中的自变量z 、如z 应当时作流体质点的位置坐标而不是固定空间点坐 标,这样,x 方向上的加速度分量为: d uo u 钆出i g u 咖8 ud z , a x2 瓦2 瓦+ 磊石+ 瓦云+ 瓦石 ( 2 4 ) d t8 t舐ma vd l a zd l 一。 公式( 2 4 ) 中a x a t 、c b , a t 、d z l d t 是流体质点位置坐标b ,y ,2 ) 的时间变化率,应当等 于质点的运动速度,即式( 2 5 ) : 妄= ,老= u 面d z u = w ( z 5 ) 一= 。= 2 u 一2 w 【z 5 j d t:d t:出 。 故有式( 2 , 6 ) : 9 一 基于流体模型和g p u 的云的实时仿真 q d u 塑+ “妻+ ,譬+ w 妻 ( 2 6 ) q d to t 栅瓦十v 面+ w 瓦 ( 2 6 ) 同理,有式( 2 7 ) ,式( 2 8 ) : 口,一d v 塑+ “妻+ ,妻+ w i o v ( 2 7 ) 口,一d t o t 枷夏+ v 瓦+ w 瓦 ( 2 7 ) 吒:i d w :掣+ “娑+ ,娑+ w 娑 ( 2 8 ) 吒2 百2 百面瓦+ w 瓦 ( 2 8 ) 若用表示速度矢量、用4 表示加速度矢量,式( 2 6 ) 、( 2 7 ) 、( 2 8 ) 可以表示成简 洁的形式; 口:尝:i o u m i o u + “,i o u4 - 1 z 妻:i o u + 似v m ( 2 9 ) 口2 面2 瓦栅,瓦枷,石西2 瓦+ ( 舻v 归 ( 2 9 ) 其中,0 u 5 0 t 表示当地加速度, - v m 表示迁移加速度,甲= 丢。若,+ 昙i 为哈 密尔顿算子,f ,k 分别为x , y ,:方向上的单位矢量。 下面给出了常用的不可压缩n s 方程组的欧拉形式: v “= o 鲁:七v k + v v 2 u - - 即户+ , ( 2 1 0 ) 式( 2 。l o ) 中p 为密度,p 为压强,为体积力,群为速度,v 为运动粘性系数,跟 动力粘性系数玎的关系为y = , d p 。 基于网格的欧拉法即是将上述方程离散到网格上,然后计算各个固定网格节点上状 态量的变化,从而得到整个场的描述。这里有两种思路进行网格化,一种是交错网格。 即一般情况下将标量( 如压强) 分布在网格单元的中心,而速度之类的矢量分布在单元表 面,这种离散的好处是容易保证守恒性条件,目前多采用此思路,比如j o ss t a m 的s t a b l e f l u i d s :另一种思路则是所有的量都处于同一个位置,这种方法简单,不需太多的插值 运算。对各个变量也不需区别对待。 早期为了真实地描述流体的运动,k a s s 等人引入浅水场方程求解高度场,通过采用 隐式格式构成三对角方程组,从而快速稳定地求解。同样o b f i e n 等人采用高度场来描 述流体表面,借助假想的各个节点之间的管道,来计算各个立柱的体积,以得到表面位 大连理工大学硕士学位论文 置,物体对流体表面的影响通过相互作用力施加上去,飞溅效果采用粒子系统来完成。 为了更贴近物理本质规律,c h e n 采用二维n s 方程来求解表面速度场,然后对于流体 表面根据压强伯努利方程求解出高度场来表示,其中模拟了运动物体和其他障碍物对于 流体的影响。采用高度场计算的好处就是整个模拟二维化,避免了三维复杂耗时的计算, 但是效果不尽理想。 真正采用三维n s 方程来模拟流体运动始自f o s t e r 的p r a c t i c a l a n i m a t i o n o f l i q u i d s , 其中利用m a c ( m a r k e ra n dc e l l s ) 求解流体,但由于采用显式格式,时间步长必须满足 c f l 条件( c o u r a n t f r i e d r i e h s l e w yc o n d i t i o n ) 以使整个计算收敛。j o ss t a m 的s t a b l e f l u i d s 采用半拉格朗日法求解平流项,并结合隐式求解器,从而保证计算绝对稳定。自 此,采用n s 方程来模拟真三维的计算机动画越来越普遍。 ( 2 ) 拉格朗日法 拉格朗日法是一种非基于网格的方法,即基于粒子系统方法。按照拉氏法,在三维 空间中单个流体质点的位置坐标( f ) 、y ,( f ) 和z ,( f ) 时间t 的函数f = ( 1 ,2 ,3 ,) ,其中 用下标i 表示第i 个质点,以识别不同的流体质点。依据每一个流体质点的位置坐标 “,y ,z ,) 随时间变化规律,通过对时间求导数,可以得到每一个流体质点的运动速度和 加速度。例如,第i 个流体质点在x 方向的速度分量为u ,= d 。a t 、加速度为 a d = d 2 x i 出2 。 然而,流体所包含的无穷多个质点,其离散表达式有无穷多个,应用是很不方便。 因此,在拉氏法中,一般采用质点f 在初始时刻的位置坐标- ,b ,c ) 来表示不同流体质点 的区别。对于第i 个质点,a = 五( o ) 、b = ) ,( 0 ) 、c = z i ( 0 ) 。因为具有不同i 值得两个质 点在初始时刻的位置坐标不可能相同,所以这种识别不同流体质点的方法是完全可行 的,能够很方便的通过改变起始位置坐标0 ,b ,c ) 的值来综合表示整个流体的运动情况。 因此,任意时刻t 的位置坐标b ,y ,z ) 可以表示成式( 2 1 1 ) 所示: 工= x ( a ,b ,e ,f ) y = y ( a ,b ,c ,f ) ( 2 1 1 ) z = z ( a ,b , c ,f ) 工、y 、z 方向的速度分量可以表示成: 基于流体模型和g p u 的云的实时仿真 “: ,6 ,c ,f ) :o x ( a , = b - , c 一, t ) v :v ( a , b ,c ,f ) :o y ( a = , b 一, c , t ) ( 2 1 2 ) w :w ( a , b ,c ,f ) :o z ( a , :b 一, c , t ) 工、y 、z 方向的加速度分量可以表示成: 口,= 4 ,c 4 ,玩c ,o = 半= 学 旷叫柏= 掣= 学 ( 2 1 3 ) 口;= 口:( 口,6 ,c ,o = t i g w ( a , b , c , t ) = 学 在式( 2 1 2 ) 、( 2 1 3 ) 中采用了对,的偏导数而不是全导数,是因为自变量中除了t 之 外还包含了初始位置坐标g ,b ,c ) 。自变量口,b ,c ,t 是拉格朗日变量。 则n s 方程可以写为: 坐:诃2 u - - v p p + f ( 2 1 4 ) d t 、 如果将式( 2 1 4 ) 右边整理成一个力,则退化为牛顿第二定律: 口f - 华= 五 ( 2 1 5 ) a t p 式( 2 1 5 ) 中a ,为粒子i 的加速度,为该粒子受到的合力,岛为该粒子所在位置的 密度。显然,该类方法就是对于各个相对独立的粒子进行力的分析,通过积分计算出这 些粒子下一个时刻的位置和其他状态量。 r e e v e s 最早引入粒子系统f l 坷,因为对于非规则物体具有灵活的表现能力,因此被用 来模拟流体流动。除此之外,对于流动中出现的飞溅、泡沫很容易采用粒子系统来表现。 s t 锄首先在图形学中引入s p h ( s m o o t h e dp a r t i c l eh y d r o d y n a m i c s ) 方法来模拟火和 其他气态现象【1 6 1 。s p h 方法是粒子系统的一种插值方法,通过引入平滑核来表示周围粒 子的影响。m u l l e r 等人通过s p h 来模拟流体自由表面,同时考虑表面张力的作用,其 中采用p o i n ts p l a t t i n g 技术,或者m a r c h i n gc u b e s 算法来绘制表面。p r e m o z e 等人则采 大连理工大学硕士学位论文 用m p s ( m o v i n g p a r t i c l es e m i i m p l i c i t ) 方法以及m p s m a f l 方法模拟多种类型的流动, 该方法将n s 方程转化为运动粒子相互作用的形式。t a k a s h ia m a d a 则用g p u 实现了基 于粒子的流体模拟,并实现了实时的刚体和流体的交互【1 7 】。 欧拉法和拉格朗同法各有优缺点,为了更真实地模拟流动,基于网格的欧拉算法往 往结合拉格朗日粒子算法一起使用,如得到广泛应用的半拉格朗日算法,或者用来对流 体进行约束,从而加强交互控制【1 3 1 。 2 3 流体模拟问题的分类 与流体相关的内容很多,由于计算机动画关注的只是人眼可以感知的现象,因此目 前主要的研究集中在低速流:低速流给人有足够的响应时间,观赏性强。 ( 1 ) 烟雾与云彩 烟雾问题可能是流体模拟中较为简单的一类:不存在自由运动界面的问题,也没有 其他什么特别需要处理的。云彩的运动跟烟雾类似,不过为了更真实地模拟云的变化, 需要引入物理机理。 ( 2 ) 燃烧与爆炸 最常见的燃烧现象是火焰,它是一种低速流动燃烧过程。目前最精确的模拟方法是 采用全n s 方程求解,并考虑燃烧过程。快速燃烧就会形成爆炸,爆炸最主要的后果是 冲击波,它以超音速传播,推动或撕裂物体,改变光线折射;次后果才是爆炸引起的火 球、尘云等。但对于视觉来说,主要效果来自次后果。 ( 3 ) 自由运动界面 对于烟雾、火焰等现象的模拟,视觉效果只与密度场和压强场相关,我们关注的是 体的问题;而对于液体流动,则需要求解箕自由表面( f r e e - s u r f a c e ) ,才能将其与周围的 环境分开,从而施加对应的光照效果。对于波浪这种大规模场景,可以将其划分为三个 尺度的效果:在精细尺度下采用n s 方程组求解全数值,才能得到流水冲击引起的泡沫 与飞溅效果;中间尺度为水面波纹,多采用参数建模;大尺度为波浪的翻转和破碎。同 样也需要利用n s 方程才能很好地描述波浪破碎现象。 ( 4 ) 未来发展方向 近几年来,对流体的模拟基本都是基于物理上的c f d ,对于游戏应用和计算机动画 来说。人们期望能找到一种快速稳定的接近于实时的求解算法,这样保证人们在交互设 计的过程中就能观察到效果,从而对效果不断进行调整直至满意。 基于流体模型和g p u 的云的实时仿真 3 基于流体模型和g p u 的云的仿真 基于物理的流体模拟计算机动画这个领域,其中涉及的现象包括烟雾,流体运动界 面、波浪、气泡、火焰、以及爆炸等。这些现象的模拟在计算流体力学( c f d ) 领域里也 一直是热点话题,这方面的工程应用多如牛毛,商业化软件如f l u e n t ,c f x 等,都可以 用来专门做流体计算分析。那么,我们是否可以直接利用这些软件来完成计算,然后利 用图形绘制技术将流动的效果真实再现出来呢? 既然这样,那作为图形学研究又能做些 什么呢? 主要原因在于c f d 更强调对问题本身的精确求解,然后给出一个合理的分析; 而计算机图形学则力图真实再现实时流动的视觉效果。而且对于某些现象,甚至流体力 学的研究者们都还没有给出一个很好的计算模型来描述其视觉效果,需要图形学的研究 者去寻求有效的解决方法。此外,在图形学领域,计算的快速性比计算精度重要小的 计算代价可以让人们方便预览可能的效果,从而进行快速调整生成画面。还有就是对控 制的加强,计算机图形学必须为动画师提供一个良好的控制策略,这样通过简单的交互 就可以设计实现想要的艺术效果。当然,二者本质上来并没有多大的冲突。c f d 构成了 基于物理的流体模拟的基础,而图形显示只是最终的目标而己。正如c a r l s o n 等所认为 的那样,编程的容易程度,小的计算代价,可控性,对障碍物处理的难易程度,以及对 水或者其他流体的自由表面 2 0 】表达的方便程度。这些因素指导着图形学研究者们从c f d 中寻求相应的手段【2 1 2 2 1 。 本章的核心叙述是以基于流体模型的系统仿真作为目标,实现一个云的实时仿真。 3 1云的流体模型的提出 3 1 1 云的物理模型 人们常常看到天空有时碧空无云,有时白云朵朵,有时又是乌云密布。为什么天上 有时有云,有时又没有云呢? 云究竟是怎样形成的呢? 它又是由有什么组成的? 漂浮在天空中的云彩是由许多细小的水滴或冰晶组成的,有的是由小水滴或小冰晶 混合在一起组成的。有时也包含一些较大的雨滴及冰、雪粒,云的底部不接触地面,并 有一定厚度。 云的形成主要是由水汽凝结造成的。 我们都知道,从地面向上十几公里这层大气中,越靠近地面,温度越高,空气也越 稠密;越往高空,温度越低,空气也越稀薄。 大连理工大学硕士学位论文 另一方面,江河湖海的水面,以及土壤和动、植物的水分,随时蒸发到空中变成水 汽。水汽进入大气后,成云致雨,或凝聚为霜露,然后又返回地面,渗入土壤或流入江 河湖海。以后

温馨提示

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

评论

0/150

提交评论