SPH算法在unity3D的编程实现

您所在的位置:网站首页 unity3d水流 SPH算法在unity3D的编程实现

SPH算法在unity3D的编程实现

2023-04-07 23:49| 来源: 网络整理| 查看: 265

2017

2

 

 

2017

(总第

 

170 

期)

 

INFORMATION & COMMUNICATIONS 

(Sum. 

No 

170)

SPH

算法在

unity

3

D

的编程实现

张凌空

(

4

5

0

0

4

6

)

摘要:

U

nity

3

D

作为一款专业的成熟的跨平台3

D

游戏开发引擎。

在虚拟仿真上有着其他3

D

软件无法替代的作用,

尤其 

U

n

ity

引擎下所支持的

C

#和

JavaScript

两种编程语言及它所支持的几乎所有的美术资源文件格式。

为创造出精彩的 

游戏和虚拟仿真内容提供有力的支持。

SPH

(

 

Smoothed

 

Particle

 

Hydrodynamics

平滑粒子流体动力学)方法作为流体仿真 

方法,

在流体灾害仿真领域有着广泛的应用,

如洪水仿真,

泥石流仿真等。文

SPH

算法的流体仿真应用到

U

nity

3

中,

使

U

nity

3

D

C

#编程与实现了水流体的运动仿真效果。

关键词:

SPH

算法;

unity

3

D

;编程实现

中图分类号:

TP

235 

文献标识码

:A

 

文章编号:

1673-1131(2017)02-0053-04

引言

世间万物之源,

世间最完美的形态;

虚无的漂亮,

 

诗般的遐想;

梦幻的缥渺,

乘云欲归般的意境;火,

希望之 

黑暗的圣光。当得到这些赞美时,

这些流体的表现也为三 

维制作带来了难题,

随着好莱坞影像工业技术的不断创新,

这 

些难题已经被逐一克服。但是,对自然景观的真实性和实时 

性模拟时无法同时达到完美,尤其是对流体的真实物理运动 

的模拟提出更高挑战,这是因为传统方法很难精确地展现流 

体的形状和运动细节。随着计算机技术的发展,

目前,

计算机 

流体仿真的研宄重心主要集中在两个方面:灾害仿真与流体 

动画[

1

]

。随着流体仿真技术在军事、

游戏、

地质灾害、

虚拟仿真 

中应用,

流体仿真要求不断提高,

因此,

基于物理的方式来实 

现流体的仿真开始被各大学者开发与应用。在基于物理的方 

法中,

N

-

S

方程被人们认为是目前描述流体运动最佳的方式。

 

该方程的计算方法分为两种[

2

]

:第一种是基于网格的欧拉法。

 

第二种是基于粒子的拉格朗日法。两种方法差别:欧拉法坐 

标系固定,

如同流体从格子间流过,

格子代表着坐标,

保存着 

流动的信息。而拉格朗日方法是将流体作为流动的一个个粒 

这些粒子按照一定的物理方法相互影响的运动,

粒子保存

1

欧拉视角和拉格朗日视角

随着流体仿真技术的发展,

对流体仿真的真实性、

实时性 

和交互性的要求提高。近几年来,为了实现这一目标基于纯 

物理的拉格朗日方法尤其是

SPH

方法成为了主流的流体仿真 

方法[

3

]

逐渐代替了欧拉方法。

光滑粒子流体动力学方法是近 

代发展起来的一种纯拉格朗日无网格粒子仿真方法,在国外 

最先是用来解决天体运动的物理学问题[

4

5

]

随着流体仿真要 

求不断提高,到现在已被广泛地应用在流体模拟与仿真中。

 

SPH

方法通过对邻近粒子进行加权平均的光滑核函数从而计 

算得到稳定的光滑近似的流体运动性质。该方法在流体动力 

学的仿真问题中,

SPH

方法是一种完全基于物理模型的 

方法,

有着模拟现实世界的先天性优势,

使其在流体仿真领域

都得到了广泛的应用。

1

 

S

P

H

S

P

H

算法是将流体看成相互作用相互影响的独立粒子,

 

对于每个粒子都遵循牛顿第二定律[

6

]

raa

 

=

 

F

 

U

)

SPH

算法里流体单元由密度决定的,

所以一般用密度 

代替质量有:

p

a

=

 

F

 

(2)

作用在一个粒子上的作用力有三部分组成 

p

 

_

 

p

f

A

't

e

r

T

i

a

J

 

^Pressure

 

p

V

i

s

c

o

s

t

t

y

 

FExtem

al

为外力,

只考虑重力

f

 

E

xternal

 _

 

pg

 

FPressure

是由流体内部的压力差产生的作用力,

压力计 

算公式为:

fPressure

 

_

 

_

y

(5

)

FViscosity

是由粒子之间运动的速度差引起的,

这个力的 

大小跟流体的粘度系数

jx

以及速度差有关所以计算如下公式:

pviscosity 

_

 

^

2

^

 

(6

)

带入公式2,可以得到每个粒子的加速度形式计算公式:

p(ri) 

=

 

_

 

|fi

 

_

 

^

)

3

 

(7)

i

SPH

算法是通过光滑核函数都到粒子运动规律。下面给 

出粒子的密度、

压力、

黏度和每个粒子加速度计算公式。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3