一种实时模拟水花和泡沫的方法技术

技术编号:18715111 阅读:21 留言:0更新日期:2018-08-21 23:19
一种实时模拟水花和泡沫的方法,所述方法包括步骤:确定水花粒子发射源的位置;在发射源处发射水花粒子;模拟水花粒子的运动;根据水花粒子生成泡沫;模拟泡沫的扩散;渲染泡沫;对水花粒子进行渲染。本发明专利技术的实时模拟水花和泡沫的方法,应用到游戏中,可以让游戏中船舶行驶的表现效果更加完美,船舶行驶后可以看到更加逼真的尾迹。并且在图形处理器端进行模拟和渲染,完全利用了硬件的并行性特点,游戏也会非常流畅,对于游戏中的玩家,将会有更加逼真的体验。

A method for real-time simulation of spray and foam

A method for real-time simulation of spray and foam consists of steps: determining the location of the spray particle emitter; launching the spray particle at the emitter; simulating the movement of the spray particle; forming a foam according to the spray particle; simulating the diffusion of the foam; rendering the foam; and rendering the spray particle. The method of real-time simulation of spray and foam of the invention is applied to the game, and the performance effect of the ship in the game is more perfect, and the ship can see a more realistic wake after traveling. And in the graphics processor side of the simulation and rendering, fully utilizing the parallelism of hardware features, the game will be very smooth, for the players in the game, will have a more realistic experience.

【技术实现步骤摘要】
一种实时模拟水花和泡沫的方法
本专利技术涉及图形处理
,特别是涉及一种实时模拟水花和泡沫的方法。
技术介绍
目前计算机上模拟船舶行驶过程中产生的水花以及泡沫的方法主要分为两类:实时的模拟和离线的模拟。采用实时的模拟方法模拟水花和泡沫时,一般是直接制作一个或者几个不同的粒子特效,当船舶行驶起来达到一定的速度后,在船舶的某个位置开始播放粒子特效。但是该方法模拟出来的效果不是很理想,模拟的最初需要依赖预制的粒子特效的数目,并且模拟出的喷射的粒子以及产生的泡沫都比较死板,不能够真实的模拟出现实的表现。但是这种模拟方法没有复杂的计算过程,性能比较高,对于一般的游戏而言效果可以接受,因此主要应用于游戏中。而离线的模拟方法则在效果上能够达到较好的水平,但是计算成本和计算复杂度都比较高,不适于应用到网络游戏等需要时效性强的产品中。因此离线的模拟方法主要常见于影视作品中。随着计算机硬件的发展,硬件的计算能力的大大提高,特别是图形处理器(GPU)的并行计算能力已经发展到一个相当高的水平,使用者已经越来越不满足于使用简单的粒子特效来解决轮船行驶过后产生的飞溅水花和泡沫漂浮的效果,而是追求更加真实的模拟效果。因此亟需提出一种比较高效地实时模拟轮船行驶过程中溅起水花特效和泡沫漂浮的方法,能够在实时渲染的游戏等产品中使用,并且既能够保证效率的问题,又能够渲染出更加逼真的效果,满足使用者对视觉效果上的追求。
技术实现思路
为了解决现有技术存在的不足,本专利技术的目的在于提供一种实时模拟水花和泡沫的方法,能够比较高效地实时模拟船舶行驶过程中溅起水花特效以及泡沫漂浮,有效地解决游戏等产品中水花和泡沫不够真实的问题。为实现上述目的,本专利技术提供的实时模拟水花和泡沫的方法,包括以下步骤:确定水花粒子发射源的位置;在发射源处发射水花粒子;模拟水花粒子的运动;根据水花粒子生成泡沫;模拟泡沫的扩散;渲染泡沫;对水花粒子进行渲染。进一步地,所述确定水花粒子发射源的位置的步骤,是将船舶与水面的交界位置,作为水花粒子发射源的位置。所述在发射源处发射水花粒子的步骤,进一步包括步骤:确定发射源处生成的水花粒子的初始发射方向、初始发射速度和个数。所述模拟水花粒子的运动的步骤,进一步包括以下步骤:根据牛顿第二定律,加速度公式a=F/m,求出水花粒子的当前加速度a,其中,F为水花粒子所受的合外力,m为水花粒子的质量;根据速度公式vt=v0+a*Δt以及位移公式s=vt*Δt,并结合一重积分求出水花粒子的位移和速度,其中,vt为水花粒子的当前速度,v0为水花粒子的初始速度,s为水花粒子的当前位移,Δt为时间上的分量。所述模拟水花粒子的运动的步骤,进一步包括以下步骤:根据时间的变化对水花粒子进行旋转和缩放;消亡超出水花粒子生命周期的水花粒子或者运动到水面以下的水花粒子。所述根据水花粒子生成泡沫的步骤,进一步包括步骤:根据水花粒子与水面的距离判断水花粒子是否与水面相交,如果相交,则在水花粒子与水面相交的位置产生泡沫。进一步地,所述模拟泡沫的扩散的步骤,是对泡沫贴图进行模糊处理。进一步地,所述对水花粒子进行渲染的步骤,是使用双调排序对水花粒子进行排序后再进行渲染。本专利技术的实时模拟水花和泡沫的方法,完全基于真实的物理计算公式,水花粒子的生成考虑船舶与水的相对速度,以及船舶与水的相对速度与船体模型上三角形的法线形成的夹角;模拟水花粒子的运动考虑到水花所受空气阻力、风力和重力,以及碰撞的影响;泡沫的漂移考虑到水的粘度、水流的方向等因素的影响。因此,在效果表现上能够最大限度地还原真实的世界,达到使用者对真实效果的追求。并且本专利技术不论从水花粒子的模拟、水花粒子的排序,还是泡沫漂浮的模拟,都可以放在图形处理器(GPU)上进行处理,极大地利用了图形处理器的并行处理能力。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。附图说明附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,并与本专利技术的实施例一起,用于解释本专利技术,并不构成对本专利技术的限制。在附图中:图1为根据本专利技术的实时模拟水花和泡沫的方法流程图;图2为根据本专利技术的计算发射源处生成的水花粒子的初始发射方向的示意图。具体实施方式以下结合附图对本专利技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本专利技术,并不用于限定本专利技术。为了便于理解本专利技术,先详细阐述一下专利技术人对于船舶(轮船等)行驶过程中溅起水花以及泡沫的过程的理解。在现实世界中,船舶在行驶过程中,溅起的水花是由于船舶达到一定的航速后,船舶的舰首对水产生一定的压力,水顺着舰首向上攀升产生的,或者船舶对水产生瞬时的挤压生成的,而飞溅的水花在重力的作用下,最终会下落到海面上。细小的水花在空中飞溅时会混入大量的空气,这些混入空气的水花散落到水中时,气泡会在浮力的作用下上升到水面,并破裂开来产生泡沫,并且泡沫会在水流或风速等的影响下,慢慢朝向周围扩散,直至消失。图1为根据本专利技术的实时模拟水花和泡沫的方法流程图,下面将参考图1,对本专利技术的实时模拟水花和泡沫的方法进行详细描述。本实施例中,溅起的水花使用粒子系统来实现,泡沫的实现则是绘制泡沫到一张泡沫贴图上,并在绘制海水的渲染通道(Pass)中使用。在步骤110,确定水花粒子发射源的位置。该步骤中,为了模拟飞溅的水花,首先需要确定水花产生的位置。现实世界是非常复杂的,水花产生的位置有很多的地方,例如船舶与水的交界线上、水顺着舰首攀升后开始下落的位置等,但是本实施例中为了性能的考虑,只考虑对最终结果产生最大影响的因素,即船舶与水面的交界位置。将船舶与水面的交界位置,作为船舶行驶过程中,水花产生的首要位置,即水花粒子发射源的位置。寻找船舶与水面的交界位置有多种方法,例如:在船舶周身随机分布若干个采样点,当发现采样点处离水面的距离小于预定的阈值时,该采样点处即为船舶与水面的交界点,即可作为水花粒子发射源的位置;或者使用水面的拟合平面(水面的拟合平面为一个跟水面最大限度接近的平面)对船舶进行切割,产生的切割线即为船舶与水面的交界线,在切割线上随机找到一些点即可作为水花粒子发射源的位置。发射源的密度可以通过一些参数设置进行控制(例如根据计算机的配置动态的决定使用多少数量的发射源),因为如果发射源过于密集,会造成发射粒子数量过多,性能下降的问题,而发射源过于稀疏,则会导致出现水花不够真实的问题。因此需要根据实际情况决定发射源的稀疏。在步骤120,在发射源处发射水花粒子。该步骤中,已知水花粒子发射源的位置,再确定发射源处生成的水花粒子的初始发射方向、初始发射速度和个数,即可在发射源处发射水花粒子。图2为根据本专利技术的计算发射源处生成的水花粒子的初始发射方向的示意图,其中,黑色细线表示水面。如图2所示,以舰首的发射源处为例说明发射源处生成的水花粒子的初始发射方向的计算过程。舰首的发射源处生成的水花粒子的初始发射方向会在方向A和方向B之间,确定水花粒子的初始发射方向时,需先计算方向A和方向B,其中,方向A是发射源处对应的船体模型上三角形的法线方向,可以从船体模型的Mesh(网格)信息中获取;方向B是发射源处对应的船体模型上三角形的切线方向,要获取方向B,首先将发射源处对应的本文档来自技高网...

【技术保护点】
1.一种实时模拟水花和泡沫的方法,其特征在于,包括以下步骤:确定水花粒子发射源的位置;在发射源处发射水花粒子;模拟水花粒子的运动;根据水花粒子生成泡沫;模拟泡沫的扩散;渲染泡沫;对水花粒子进行渲染。

【技术特征摘要】
1.一种实时模拟水花和泡沫的方法,其特征在于,包括以下步骤:确定水花粒子发射源的位置;在发射源处发射水花粒子;模拟水花粒子的运动;根据水花粒子生成泡沫;模拟泡沫的扩散;渲染泡沫;对水花粒子进行渲染。2.根据权利要求1所述的实时模拟水花和泡沫的方法,其特征在于,所述确定水花粒子发射源的位置的步骤,是将船舶与水面的交界位置,作为水花粒子发射源的位置。3.根据权利要求1所述的实时模拟水花和泡沫的方法,其特征在于,所述在发射源处发射水花粒子的步骤,进一步包括步骤:确定发射源处生成的水花粒子的初始发射方向、初始发射速度和个数。4.根据权利要求1所述的实时模拟水花和泡沫的方法,其特征在于,所述模拟水花粒子的运动的步骤,进一步包括以下步骤:根据牛顿第二定律,加速度公式a=F/m,求出水花粒子的当前加速度a,其中,F为水花粒子所受的合外力,m为水花粒子的质量;根据速度公式vt=v0+a*Δt以及位移公式s=vt*Δt,并...

【专利技术属性】
技术研发人员:郭嵩吕文伟
申请(专利权)人:苏州蜗牛数字科技股份有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1