fluid dynamics in CG 流体力学讲座.doc
文本预览下载声明
fluid dynamics in CG 流体力学讲座
fluid dynamics in CG 流体力学讲座
2011年11月02日
前言
电脑动画精益求精 日新月异 逼近真实的物理运算特效越来越重要.在这其中除了全局照明 (Global Illumination) 渲染算图所需要大量计算外,流体物理运算也是耗费大量电脑资源 原因是流体运动复杂 要求逼真的特效的话,粒子数目往往必需要要达到上万颗的数目. 在3ds max平台上的流体物理运算软体有SitniSati FumeFX, 3Daliens Glu3D, Nextlimits Realflow以及即将推出的XFlow. FumeFX是气体/火焰的物理模拟 广义来说气体也是一种流体 只是跟我们一般认知”水”这种流体相比 气体是可以压缩的 因此粒子间碰撞问题不像”水”流体那样严苛. 另外气体的效果可以用晶格 Voxel体积像素的方式搭配shader进行渲染,Voxel的解析度可大可小,自然运算速度会比水流体要快些. 即使有这样的差异 SitniSati FumeFX, Glu3D, 与Realflow之间还是有许多共通点,还是有共通的流体力学方程式必须要求解.
透过了解每个物理参数的意义 比方说涡度 黏度 流速 以及流体力学的发展历史 科学家所遭遇的瓶颈 这样在实际使用软体 看著FumeFX在SIMULATE的时候也比较能体会 FumeFX程式在背后为你做了什麼事 也知道怎样最佳化模拟参数.
流体动力学
流体动力学是流体物理学的一个学门:也就是研究流体运动的一个门学问(液体和气体)。它包括空气动力学(研究气体的运动)和流体动力学(研究液体的运动) 。流体动力学有广泛的应用,包括计算飞机的受力与动量,计算石油通过管道的流速,预测的天气模式,了解太空的星际星云,还有模拟裂变核武器引爆。流体力学甚至应用到交通流量研究,因为交通可被视为连续的流体。
流体动力学提供了一系列的实用原理,这些原理是根据实际测量流体所推导出的经验与半经验法则, 用来解决实际问题。解决流体动力学问题通常涉及计算各种液体的参数,如速度,压力,密度和温度,这些都与时间/空间的函数有关。
流体力学的公式
流体动力学的基本公理是---守恒定律,特别是质量守恒,线性动量守恒(也称为牛顿第二定律的运动) ,能源守衡(也称为热力学第一定律) 。这些是根据古典力学和量子力学和广义相对论修改来的。这些公式是以雷诺传送定理(Reynolds Transport Theorem)表示的。除上述外,液体被假定为遵守连续性的条件。那就是是由液体分子所组成的,相互碰撞与固体物体碰撞。但是,连续性假设认为流体是连续的,而不是离散。因此,密度,压力,温度和速度等属性被视为无限小的点所构成的,且假定由一点到另外一点是连续性变化的。事实上,流体其实是有离散性质的(discrete), 而上述公式忽视了这点。只要液体有足够的密度构成一个连续体,且不包含游离分子,且运动速度远小於光速,它就能够以牛顿流体与Navier - Stokes方程,这类由非线性的微分方程组来描述流体所受到的外界压力与速度。而非简化的方程式就没有ㄧ套通用的解法(general closed-form solution),所以这类方程式只被应用在电脑运算流体(Computational Fluid Dynamics)否则就必须面临必要的简化。流体方程式可以用各种方程式来简化,简化的方程式可以更容易求解。其中一些允许适当的流体动力学问题在封闭的形式中(in closed form)求解。除了质量,动量和能量守恒方程以外,热力学状态中给予固定压力的变因才能更完整地解决流体所遇到的问题。
可压缩与不可压缩的流体
所有液体在某些程度上都是可压缩的,在压力与温度改变时密度就会改变。然而,在大部分的状况下,压力和温度对密度造成的影响很小, 可以忽略不计。在这种情况下,流体可以视为不可压缩的。否则,就必须要用更广义的可压缩流体方程式来表示流体了。从数学上来说,不可压缩的流体就是假设流体包的密度是ρ, 这个流体包通过流体场时ρ不会改变. 其中D / dt是一个重要的相关参数,这是区域与对流的数值总和。这个限制条件主宰了方程式的简化, 当流体具有均质的密度时。对於气体而言,决定是否要用可压缩或不可压缩来描述的话,是以流体的马赫数(Mach number)来评估。以下是比较粗略指标,当马赫数低於大约0.3时, 气体的可压缩性质可以忽略不计算。对於液体来说,决定是否要用压缩的方程式描述必须取决於流体本身的性质.(关键是液体的压力和温度)和水流条件(水流会影响流体是否接近临界压力) 。声音的传递解法则是ㄧ定要考虑可压缩性,因为声波就是靠介
显示全部