- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于三维纹理的实时流体模拟1
基于三维纹理的实时流体模
直接体绘制是一种强大的三维可视化技术,它可以直接将三维离散数据投影在二维平面生成高质量的图像。然而随着图形加速技术的发展和大范围普及,现今主流PC 显卡都具备三维纹理加速功能通过OpenGL 三维纹理扩展,可以很方便地实现实时交互的直接体绘制。
随着计算机图形学的日益发展,实时流体模拟成为计算机图形学中的另一个热点问题.经典的流体力学方程如纳维-斯托克斯方程组(Navier-Stokes Equations,简称N-S 方程组)虽然精确,但其求解却相当耗时,无法满足实时计算的需求。Jos Stam 在计算机图形学领域
中引入半拉格朗日算法,才使得实时流体计算成为可能。该方法虽然在计算精度上不能满足工程上的应用,但能捕获流体运动的基本特征,很好地满足视觉要求。所以,计算机图形学界逐渐开始广泛使用该方法来模拟流动现象。
本文探讨了将 Jos Stam 的二维平面流体模拟算法应用到三维空间,并利用OpenGL 三维纹理实现的直接体绘制方式显示模拟结果的方法;同时以对烟雾扩散模拟的实时绘制为例,对比传统的结合粒子系统与公告牌技术模拟方法,分析使用直接体绘制方法在显示效
果上的优势所在。
2 相关工作
2.1 二维空间中流体模拟
物理学界早在 19 世纪中叶就已推导出精确的流体力学方程,其中最有名的便是N-S方程组。该方程组是牛顿第二定律在不可压缩粘性流动中的表达式,是法国力学家、工程师C.-L.-M.-H.纳维于1821 年创立,经英国物理学家G.G.斯托克斯于1845 年改进而确定的。
它的基本形式为:
式中分别为液体密度、运动粘性系数、动水压强、流速矢量、单位质量;▽为矢量微分算符;为拉普拉斯算符;为指定点处由于时间改变而引起的速度变化率,称为当地加速度;(·▽)为指定瞬时由于空间位置改变而引起的速度变化率,称为迁移加速度; k▽2ρ和ν▽2分别为作用于单位质量液体表面的合压力与合粘性力。
依据 N-S 方程组,可以将流体分解为N*N*N 的离散的速度场和密度场,通过设定一定的时间步长,进行有限的迭代,求解流体的状态。但N-S 方程组得求解相当耗时,且在时间步长较大时易发散,无法满足实时计算的稳定性需求。直到Jos Stam 引入了半拉格朗日插值算法,填补了实时显示的计算瓶颈。文献[1]介绍了Jos Stam 算法在N*N 的二维平面中的流体模拟的具体实现。参照N-S方程组的速度方程,算法将作用于速度场每个均匀分解到场内的各个单元中,计算出各单元的流速矢量。此后Stam 通过对各单元格与其相邻格的密度值进行加权平均,模拟密度的扩散。该方法回避了复杂的N-S 密度方程,虽然损失了计算精度,却从而大大提高了运算速度,因而在游戏和展示等不要求工程精度的领域中得到了广泛的应用。对模拟算法的改进和新的计算方法的引入也成为研究的热点:早期1983 年Reeves[2]提出的粒子系统的方法对于模拟外形不断变化的流体具有相当强的表现力,文献[3]利用粒子系统的方法实现了瀑布的实时模拟,在普通PC 上即可获得实时的绘制速度和真实的外观效果,文献[4]描述了一种利用八叉树进行计算流体数据场划分显示的方法,通过将数据场进行分块计算,减少CPU 的负担;文献[5]描述了一种利用GPU 辅助进行CPU 并行计算的方法,但由于显卡内存限制无法计算过大纹理。
2.2 基于硬件的三维纹理绘制技术
SGI 在2000 年一月发布的OpenGL1.2.1 开发包中,就已包含了对于实现三维纹理的扩展指令(glext.h)支持;且从nVidia 的GeForce 3 Ti 系列显卡开始,各种型号的图形显卡也均支持三维纹理硬件绘制方法[6]。使得基于硬件的体绘制方法日趋走向成熟,并拥有广泛的编程语言支持。硬件支持的三维纹理直接体绘制主要由以下三步组成[7](如图所示):
(1) 纹理生成:三维纹理体数据与二维纹理相同,由一些的体素点组成的序列决定,但由于是维度增加,确定体数据所需要的体素点数量也高出一个数量级,因此纹理尺寸不宜过大。通过OpenGL 的扩展指令,便可以这些数据装入纹理内存,形成三维纹理。
(2) 三线性插值(重采样):在纹理空间内定义一定数量采样层,这些层彼此平行且与视线方向垂直。由于层间的间隔及其采样密度与原始数据不同,因此必须通过硬件的三线性插值即重采样,才能获得这一系列平行层平面上各采样点的数值。采样层的数量直接关联到下一步的合成效果,层数较少会产生严重的边缘锯齿,而层数过多会影响绘制速度。
(3) 图像合成:首先将采样层上各采样点的数值按照给定的传递函数转换为相应的颜色值和不透明度值。然后设置相应的轮廓剪切面,再根据适当的混合函数,利用硬件的混合及消隐功能,按照从后向前的顺序进行合成投影于视平面而形成最后的图像。该方法中重
您可能关注的文档
- 在vegas中利用噪点纹理中的“迷彩”作“飞花花雨”效果.doc
- 在VMware中不用光盘U盘装系统的方法.doc
- 在Word2010中选择格式相似的文本.doc
- 在数控车床加工中的应用.doc
- 在托福写作中精炼表达自己观点的方法.docx
- 在水库垂钓找鱼道的方法.doc
- 在线监测维护与保养培训讲义.doc
- 地下室卷材方案.doc
- 地下室砼墙柱浇注方案.doc
- 地下室边坡挂网喷浆专项施工方案.doc
- CNAS-CL63-2017 司法鉴定-法庭科学机构能力认可准则在声像资料鉴定领域的应用说明.docx
- 12J7-3 河北《内装修-吊顶》.docx
- 12N2 河北省12系列建筑标准设计图集 燃气(油)供热锅炉房工程.docx
- 内蒙古 12S8 排水工程 DBJ03-22-2014.docx
- 山西省 12S10 12系列建筑标准设计 管道支架、吊架.docx
- 16J601-木门窗标准图集.docx
- 12J8 河北省12系列《 楼梯》.docx
- CNAS-GL37 2015 校准和测量能力(CMC)表示指南.docx
- CNAS-RL02-2016 能力验证规则.docx
- 津02SJ601 PVC塑料门窗标准.docx
文档评论(0)