第I部分 基础流体方程流体无所不在,从我们呼吸的空气到占据整个地球三分之二的海洋,就是它,形成了我们这个星球上那些最美丽最震撼景象:从溅起的水花,到冲天的火焰,到缭绕的烟雾,流体仿真已经成为了计算机图形学的重要课题。本书将讲述制作这类仿真动画的基础,所以,让我们从描述它们运动的微分方程开始吧。在动画中,流体运动服从于著名的“不可压缩的纳维-斯托克斯方程”,这是一组偏微分方程,它们通常写成下面的形式:第一眼瞧上去,它们相当复杂!我们很快就会把它们拆解成容易理解的部分(附录B提供了严格的学术描述),不过,我们首先还是讲讲方程里面出现的符号的含义。

符号字母在流体力学的传统中用于表示流体的速度。为啥不用?这很难说,一种说法是,我们通常约定用来指代三维空间的速度矢量( u, v, w ),而u排在前面,就如同我们通常使用来指代三维空间的位置矢量( x, y, z ),而x排在前面。希腊字母ρ用来表示流体的密度。水的密度是1000公斤/立方米,空气大约是1.3公斤/立方米,两者的比率大概是700 : 1。字母p表示压强,流体施加在任何其他物体上的单位面积上的力。字母是我们熟悉的重力加速度,通常取( 0, -9.81, 0 ) m/s2。顺便提一下,在本书坐标系中,我们取y轴正方向为向上,x轴和z轴是水平轴。在动画中,额外的加速度,例如用来让流体整体流向某个设定的方向所添加的加速度,都会添加到重力项上。我们会把它们打包到一起,用字母来表示。更一般的,人们通常把这一项叫做“体力”( body force ),因为它作用在整个流体上,而不是某个面上。希腊字母ν从技术上讲,叫做运动粘度。它用于度量流体的粘度。像蜂蜜这样的流体具有较高的粘度,而像水银这样的流体则具有较低的粘度。它表示的是流体在流动的时候抵抗变形的能力(或者更直观的说,把它们搅动起来有多难)。

动量方程第一个微分方程(方程1.1),它实际上是三个方程打包到一起的一个矢量方程,它叫做动量方程。它实际上是由古老的牛顿方程变形过来的。它告诉我们当外力作用到流体上的时候所产生的加速度。第二个微分方程(方程1.2)被称为不可??缩条件。我们先来拆解第一个方程。首先让我们想象一下,我们正在使用粒子来仿真一个流体(本书后面会真的使用粒子法,不过现在我们只是用粒子来做一个思想实验)。每一个粒子都是组成流体的一个小液滴。描述它的参数有:质量m,体积V,速度。为了弄清楚在下一个时刻,整个系统的状况,我们需要算出每个粒子的受力情况,通过我们可以算出粒子的加速度,然后获取其运动。我们把加速度写成下面这个有点怪的形式(稍后我们会变形为前面的动量方程的形式):

大写字母D所表示的微分符号被称为“物质导数”( material derivation )。牛顿定律现在就可以写成:

那么,粒子究竟受到了哪些力的作用呢?最简单的当然是重力了: 不过,当我们考虑流体受到剩下的其它力的时候,事情就有意思了:粒子与其它相邻的粒子是如何相互作用的呢?第一个流体力是压力。高压区域向低压区域的推力。注意,我们真正关心的是作用在粒子上的净力:例如,如果压力在各个方向上都相等,那么净力为零,压力就不会产生加速度了。只有当流体的粒子处于不平衡状态时,流体才会流动,例如,粒子一侧的压力高于另一侧的压力,结果就会在粒子上产生一个从高压区域指向低压区域的力。在附录中我们会严格推导这个过程,不过在这里,我就直接告诉你,粒子在某个位置由于压力差导致其受力的大小等于此处压力场的负梯度:(回忆一下微积分,梯度的方向就是标量场变化速度最快的方向,所以,负梯度总是从高压区指向低压区)我们需要整合小液滴(粒子)整个体积上所受到的作用来得到小液滴受到的压力。作为简单的近似,我们直接乘以体积V。你可能会问,压力究竟是什么?我们暂且先跳过不说,等到讲不可压缩性的时候再讨论,现在你只需要知道,它会让流体永远保持一定的体积。另一个流体力是粘性产生的。带粘性的流体会抵抗变形。后面我们会对此进行深入的推导,而现在,我们可以直观的理解为一种力,它试图使我们的粒子以周围粒子的平均速度来运动,例如,他会试图让我们与临近粒子运动速度的差异最小。你也许还记得,从图像处理,数字几何处理、到扩散物理或热耗散等等其它领域,都会使用一个微分算子,用来度量某个量与周围的平均值相差多远,这个算子就是拉普拉斯算子:(现在是时候复习一下矢量微积分了,附录里有,包括像拉普拉斯算子这样的微分算子)。我们整合整个小液滴体积上受到的这种作用力,就形成了所谓的黏滞力。我们将使用动力粘度系数(dynamic viscosity coefficient)来描述这种属性,以希腊字母 η 表示(动力这个词意味着我们从这个参数计算得出的结果是力,而先前我们使用的运动粘度计算得出的是加速度

计算机图形学流体仿真mac网格,用于图形学的流体仿真20教程.docx相关推荐

  1. 计算机图形学流体仿真mac网格,正交网格下不可压缩流体的图形学模拟

    摘要: 本文主要讨论了正交网格下不可压缩流体的图形学模拟.基于物理的动画模拟出像水,烟和火这样的流体现象在视觉效果上越来越重要,而且在实时游戏中也开始产生影响. 本研究主要内容包括:第一章阐述了用于描 ...

  2. 计算机图形学流体仿真mac网格,数据驱动的快速网格法流体模拟

    摘要: 基于物理的流体模拟是计算机图形学中的重要研究方向之一,模拟过程中需要求解非线性偏微分方程组:Navier-Stokes方程组(N-S方程组).拉格朗日法与欧拉方法这两种数值解法被分别用于N-S ...

  3. 高中计算机合并单元格,2020年新版高中信息技术会考操作题教程.docx

    word 操作 (一)标题文字操作 1. 设置标题文字字体.字号.颜色.加粗.居中 等,都可以按照下图设置 首先选中要设置的标题,然后进行相关设置. 居中对齐左边的是左对齐,这个你看形状应该就能看出来 ...

  4. 计算机图形学是研究真实,计算机图形学论文真实感制图技术在图形学中的应用...

    <计算机图形学论文真实感制图技术在图形学中的应用>由会员分享,可在线阅读,更多相关<计算机图形学论文真实感制图技术在图形学中的应用(9页珍藏版)>请在人人文库网上搜索. 1.总 ...

  5. 计算机图形学用到哪些概率知识,图形学所需的数学知识

    图形学所需的数学知识 "学习计算机图形学需要多少的数学?"这是初学者最经常问的问题.答案取决于你想在计算机图形学领域钻研多深.如果仅仅使用周围唾手可得的图形软件,你不需要知道多少数 ...

  6. cae计算机仿真分析技术,厉害了 揭秘汽车设计中CAE仿真技术

    在汽车研发中CAE计算机仿真技术有着重要意义,随着行业竞争的加剧,产品更新速度越来越快.CAE在产品设计的质量.寿命.性能和成本等方面发挥着更加重要的作用,CAE为汽车行业的高速发展提供了具有中心价值 ...

  7. 浅谈计算机系统仿真,仿真技术的发展 [浅谈现代仿真技术]

    [摘要]仿真技术是以多种学科和理论为基础,以计算机及相应的软件为工具,通过虚拟实验的方法来分析和解决问题的一门综合性技术.目前,仿真技术已被广泛应用于大部分的科学技术领域. [关键词]仿真理论 仿真技 ...

  8. 不用从其计算机修改mac软件,教你不用重启计算机就能修改mac地址

    设置网卡时有时候我们会需要修改mac地址,但是一般要重启计算机才能修改修改mac地址.今天小编就来教大家一招教你不用重启计算机就能修改mac地址,一起来学习一下吧! 教你如何修改mac地址 1.简单的 ...

  9. 计算机及数控编程仿真软件exsl-win7,数控铣编程与仿真实验指导书

    <计算机辅助设计与制造>课程 数控铣编程与仿真实验指导书 1.实验目的: (1)通过上机实验巩固课堂所讲述的数控铣指令,掌握数控铣手工编程方法. (2)掌握EXSL-WIN7软件的编程及仿 ...

最新文章

  1. group by 查找订单的最新状态 join
  2. 开发工具Drawscript
  3. NCEPU:线下组队学习周报(009)
  4. 一句话,讲清楚java泛型的本质(非类型擦除)
  5. springboot-web开发(rest风格支持)
  6. HDU 1540 Tunnel Warfare 线段树区间合并
  7. SharePoint学习札记[4] — 创建SharePoint站点
  8. [Contest20180328]coin
  9. 25. JavaScript PopupAlert
  10. html站点地图怎么做,sitemap网站地图(站点地图)如何制作以及作用
  11. 自动化办公1-文件夹文件分类器
  12. 嵌入式软件工程师面试题收录(4)
  13. Java实现 蓝桥杯 算法训练 未名湖边的烦恼
  14. 儿童近视可治愈?家长别交智商税!
  15. 创建AWS OrganizationsSCP
  16. 转:优秀的领导,是創造条件让他人做出正确决定
  17. 小公司卧薪尝胆三年,意外拿到美团offer
  18. 开源服务器监控工具——zabbix(一)
  19. 【第006篇】通过impdp命令导入dmp文件到Oracle11g数据库中
  20. 多个站点同时抓取!怎么做到的?

热门文章

  1. ppt倒计时器制作方法
  2. 求购安霸Ambarella IONE这颗料的SDK开发工具包 Software Development Kit
  3. hbuilder创建app并利用真机运行调试
  4. 简单命令行创建ReactApp
  5. 那些油管上高质量的学习编程的频道 之二
  6. camunda数据库表结构介绍
  7. sap 查询数据 未分离版本
  8. 【实现】Java实现的文件批量改名
  9. Openlayer图层载入时进行坐标系的转换
  10. python 捕捉键盘操作