基于流体力学与GPU优化渲染的可交互水墨模拟方法与流程

文档序号:18873002发布日期:2019-10-14 19:58阅读:507来源:国知局
基于流体力学与GPU优化渲染的可交互水墨模拟方法与流程

本发明涉及计算机图形学技术领域,具体涉及一种基于流体力学与gpu优化渲染的可交互水墨模拟方法。



背景技术:

流体力学是力学的一个分支,主要研究在各种力的作用下,流体本身的静止状态和运动状态以及流体和固体界壁间有相对运动时的相互作用和流动规律。流体是气体和液体的总称,在人们的生活和生产活动中随时随地都可遇到流体。所以流体力学是与人类日常生活和生产事业密切相关的。水在管道、渠道、江河中的运动从古至今都是研究的对象。人们还利用水做功,如古老的水碓和近代高度发展的水轮机。船舶一直是人们的交通运输工具,船舶在水中运动时所遇到的各种阻力,船舶稳定性以及船体和推进器在水中引起的空化现象,一直是船舶水动力学的研究课题。这些研究有关水的运动规律的分支学科称与流体力学息息相关。20世纪初世界上第一架飞机出现以来,飞机和其他各种飞行器得到迅速发展。20世纪50年代开始的航天飞行使人类的活动范围扩展到其他星球和银河系。航空航天事业的蓬勃发展是同流体力学的分支学科——空气动力学和气体动力学的发展紧密相连的。这些学科是流体力学中最活跃、最富有成果的领域。除此之外,流体力学在石油和天然气的开采、地下水的开发利用、风对建筑物、桥梁、电缆等的作用使它们承受载荷和激发振动、废气和废水的排放造成环境污染、河床冲刷迁移和海岸遭受侵蚀等领域均有广泛的应用。

同时,随着计算机图形图像学技术和计算机硬件技术的发展,计算机图形图像技术广泛应用于军事、教育、仿真、娱乐等领域。精彩的电影特效,身临其境的虚拟现实体验,逼真的游戏动画场景和精美的产品模型设计,无不体现着现代图形图像技术的强大能力,而计算机硬件技术的发展,为计算机图形图像学技术提供了物质保障,但是如何充分利用计算机硬件资源高效计算,也是一个重要的课题。因此如何充分发挥计算机图形图像学和计算机硬件技术的优势,实现水墨流体运动的高仿真模拟有着十分重要的意义。

目前在水墨模拟领域,研究者们往往会通过matlab等专业软件建立数学模型,进行仿真的计算和研究。这种方式并不直观,较为晦涩。有的研究者为使模拟更加真实和直观,采用maya等专业动画渲染软件对流体进行渲染,但基于动画制作软件渲染的水墨流体对象运动状态固定,且高质量的影像需要的渲染时间过长,不具备真实水墨流体运动模拟过程的实时性、多样性和不可预测性。



技术实现要素:

(一)要解决的技术问题

本发明提出的一种基于流体力学与gpu优化渲染的可交互水墨模拟方法,可解决现有的水墨模拟方法不具备真实水墨流体运动模拟过程的实时性、多样性和不可预测性的技术问题。

(二)技术方案

为实现上述目的,本发明采用了以下技术方案:

一种基于流体力学与gpu优化渲染的可交互水墨模拟方法,包括步骤:

步骤1,实现一种基于光滑粒子流体力学算法,通过对粒子个体相互作用的描述,包括各个物质点上承载各种物理量,包括质量、速度等,通过求解质点组的动力学方程和跟踪每个质点的运动轨道,就可以实现整体性的流体运动的模拟;

步骤2,将交互信息作为外力引入,并结合固体和液体的交互以求得整个系统的力学行为对个体的运动的影响,从而实现对水墨流体流动规律的模拟;

步骤3,充分利用计算机的硬件优势,采用gpucomputeshader进行优化运算,将运算移植到gpu上,大大提升运算效率。

上述步骤1中设计并实现一种基于光滑粒子流体力学算法,通过对将连续的流体用相互作用的质点组来描述,各个物质点上承载各种物理量,包括质量、速度等,通过求解质点组的动力学方程和跟踪每个质点的运动轨道。在一个粒子上的作用力由三部分组成:外力项,压力项,粘度项。

外力项计算公式为:

其中,ρ代表密度

代表重力加速度矢量。

压力项计算公式为:

其中:

p代表压力场;

表示压力场的梯度。

其中表示哈密顿(hamiltonian)算子,哈密顿算子的定义如下:

将哈密顿算子作用于压力场p,可以得到压力场的梯度。

粘度项表示为:

其中:

μ表示粘度系数,为常量;

代表速度变化场,即流体粒子之间的速度差;

其中表示拉普拉斯(laplace)算子,其定义如下:

可以获得速度变化场,即流体运动速度快的部分对于运动速度慢部分的剪切力。

其中,一个粒子上的作用力外力项,压力项,粘度项可以表示为:

其加速度形式为:

假设流体中一个位置为的点,可以得到该点的加速度

其中:

ρ(ri)为此处的密度;

p(ri)为此处的压力;

为此处的速度。

根据流体中某点的密度,压力,速度的累加函数,进而推导出此处的加速度,从而模拟流体的运动趋势。

步骤2进一步包含以下子步骤:

2-1基于步骤1计算结果的外力项加入更多的干扰因素,加入人机交互、虚拟环境交互等其他等干扰因子,来实现液体和外界因素之间的相互影响。步骤为,采用计算公式,将外部干扰因素统一计算为作用外力其中f(i)为外部干扰因素,k为控制常量。

2-2基于步骤1计算结果位置为的点的加速度对粒子个体运动引入固体作为影响因子,模拟固体对液体的影响,从而实现对个体的更加真实模拟。步骤为,采用计算公式:

其中,o(ri)表示位置为的位置中是否存在非流体交互对象,从而在模拟液体与固体的交互。

步骤3进一步对实现方法进行gpucomputeshader优化,设计并实现一种基于gpu计算单元的算法结构,将每个对象的运动计算分配到每个计算单元上,充分利用gpu的强大并行计算能力,有效提升运算效率。

还包括步骤4,面向粒子的可交互流体场景渲染方法,包括步骤:

采用gpushader渲染流体水墨风格画面,采用gpushader可以直接获取gpucomputershader的计算结果,由于computershader是基于gpu设备进行计算,通过图像纹理卷积实现流体力学计算,因此计算结果也可以保存在一个纹理对象中,可以直接实现gpu之间的数据传递,而不需要将计算结果传递给内存,而是直接在显存中传递给gpushader进行修改和渲染,通过这种形式可以非常高效的渲染大量对象,对于高重复性的渲染工作具有十分重要的意义。

进一步的,采用不同水墨风格材质系统绘制山水、渔船、飞鸟等虚拟角色,与动态的流体水墨共同构成一幅中国传统水墨画的视觉效果,

进一步的,采用红外传感技术采集交互信息,实现画面与体验者的动态响应,有效提升水墨场景交互性和生动性。最终会渲染出更加丰富的水墨视觉效果。

(三)有益效果

由上述技术方案可知,本发明的基于流体力学与gpu优化渲染的可交互水墨模拟方法通过流体运动模拟,基于物理世界中流体运动的规则,实现一种基于光滑粒子流体动力学算法的流体模拟方案,建立粒子系统,仅通过对粒子个体的运动约束,就可以实现整体性的流体运动的模拟。除此之外加入固液交互,使其变化更加丰富,表现更加真实。并采用gpucomputeshader进行优化运算,大大提升运算效率。场景渲染:采用gpu可编程流水线进行场景绘制,采用gpushader着色器直接获取计算结果,同时渲染虚拟场景的内容,绘制出水墨风格场景,采用红外传感技术采集交互信息,实现画面与体验者的动态响应,有效提升水墨场景交互性和生动性。最终会渲染出更加丰富的水墨视觉效果。

本发明通过实现一种流体运动算法,模拟水墨流体的运动行为,同时充分发挥计算机图形图像技术和计算机硬件技术优势,实现水墨流体静止、运动状态以及流体和固体界壁间有相对运动时的相互作用和流动规律,并引入多种互动元素,以提供一种新颖仿生学的模拟形式,同时能为普通人提供一种全新的视觉体验。

附图说明

图1是本发明方法的基本流程图。

图2是本发明水墨流体运动模拟基本流程图;

图3是本发明场景渲染基本流程图;

图4是本发明实施例的渲染效果图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。

如图1所示,本实施例所述的基于流体力学与gpu优化渲染的可交互水墨模拟方法,主要分为两大步骤:

s10、流体运动模拟:实现一种基于光滑粒子流体力学算法,通过对粒子个体相互作用的描述,包括各个物质点上承载各种物理量,包括质量、速度等,通过求解粒子组的动力学方程和跟踪每个质点的运动轨道,就可以实现整体性的流体运动的模拟。除此之外将交互信息作为外力引入,并结合固体和液体的交互以求得整个系统的力学行为对个体的运动的影响,从而实现对水墨流体流动规律的模拟。并采用gpucomputeshader进行优化运算,将运算移植到gpu上,大大提升运算效率。

s20、场景渲染:采用gpu可编程流水线进行场景绘制,采用gpushader着色器直接获取计算结果,同时渲染虚拟场景的内容,绘制出水墨风格场景,采用红外传感技术采集交互信息,实现画面与体验者的动态响应,有效提升水墨场景交互性和生动性。最终会渲染出更加丰富的水墨视觉效果。

下面详细说明每个步骤。

其中s10流体运动模拟是指:通过计算机算法实现对水墨流体运动方式的模拟,应符合基本流体力学原理,能模拟水墨流体静止、运动状态以及流体和固体界壁间有相对运动时的相互作用和流动规律,并保证高效计算,实施模拟。

如图2所示,本发明的运动模拟注意分成以下三步进行:

s11、实现一种基于光滑粒子流体力学算法,通过对粒子个体相互作用的描述,包括各个物质点上承载各种物理量,包括质量、速度等,通过求解质点组的动力学方程和跟踪每个质点的运动轨道,就可以实现整体性的流体运动的模拟。

s12、将干扰因素印日,将交互信息作为外力,并结合固体和液体的交互以求得整个系统的力学行为对个体的运动的影响,从而实现对水墨流体流动规律的模拟。

s13、对实现方法进行gpucomputeshader优化,设计并实现一种基于gpu计算单元的算法结构,充分利用gpu的强大计算能力,有效提升运算效率。

其中,s11中通过对将连续的流体用相互作用的质点组来描述,各个物质点上承载各种物理量,包括质量、速度等,通过求解质点组的动力学方程和跟踪每个质点的运动轨道;在一个粒子上的作用力由三部分组成:外力项,压力项,粘度项。

外力项计算公式为:

其中,ρ代表密度

代表重力加速度矢量。

压力项计算公式为:

其中:

p代表压力场;

表示压力场的梯度。

其中表示哈密顿(hamiltonian)算子,哈密顿算子的定义如下:

将哈密顿算子作用于压力场p,可以得到压力场的梯度。

粘度项表示为:

其中:

μ表示粘度系数,为常量;

代表速度变化场,即流体粒子之间的速度差;

其中表示拉普拉斯(laplace)算子,其定义如下:

可以获得速度变化场,即流体运动速度快的部分对于运动速度慢部分的剪切力。

一个粒子上的作用力外力项,压力项,粘度项可以表示为:

其加速度形式为:

假设流体中一个位置为的点,可以得到该点的加速度

其中:

ρ(ri)为此处的密度;

p(ri)为此处的压力;

为此处的速度。

根据流体中某点的密度,压力,速度的累加函数,进而推导出此处的加速度,从而模拟流体的运动趋势。

步骤s12是实现增加运动多样性:基于步骤s11计算结果位置为的点的加速度对粒子个体运动引入固体作为影响因子,模拟固体对液体的影响,从而实现对个体的更加真实模拟。步骤s12具体步骤为,采用计算公式:

其中,o(ri)表示位置为的位置中是否存在非流体交互对象,从而在模拟液体与固体的交互。

步骤s13是进一步对实现方法进行gpucomputeshader优化,设计并实现一种基于gpu计算单元的算法结构,将每个对象的运动计算分配到每个计算单元上,充分利用gpu的强大并行计算能力,有效提升运算效率。

步骤s20场景渲染,实现一种面向粒子对象的场景渲染方法:如图3所示,首先,采用gpushader渲染流体水墨风格画面,采用gpushader可以直接获取gpucomputershader的计算结果,由于computershader是基于gpu设备进行计算,通过图像纹理卷积实现流体力学计算,因此计算结果也可以保存在一个纹理对象中,可以直接实现gpu之间的数据传递,而不需要将计算结果传递给内存,而是直接在显存中传递给gpushader进行修改和渲染,通过这种形式可以非常高效的渲染大量对象,对于高重复性的渲染工作具有十分重要的意义。进一步的,采用不同水墨风格材质系统绘制山水、渔船、飞鸟等虚拟角色,与动态的流体水墨共同构成一幅完整的中国传统水墨画面,进一步的,采用红外传感技术采集交互信息,实现画面与体验者的动态响应,有效提升水墨场景交互性和生动性。最终会渲染出更加丰富的水墨视觉效果。最终渲染效果如图4所示。

综上,本实施例的基于流体力学与gpu优化渲染的可交互水墨模拟方法,既满足真实世界中水墨流体运动的实时性、多样性、不可预测性的模拟需要,又能充分发挥计算机图形图像技术和计算机硬件技术优势,实现高效真实的渲染方法,有着十分重要的意义。通过本实施例的可交互数字水墨交互系统,体验者不仅可以观赏实时动态的水墨丹青,还可以与水墨山水进行交互,当体验者触碰装置时,水墨的流动会被影响,每一条墨线都根据流动的方向和速度在变化,画面中的游鱼也会胆怯的躲藏,同时搭配古琴和鸟鸣,以虚拟影像和人机交互的方式展示千年水墨的风采。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1