CN111047707B - 一种基于sph的混合粒子血液模型的流血仿真方法 - Google Patents
一种基于sph的混合粒子血液模型的流血仿真方法 Download PDFInfo
- Publication number
- CN111047707B CN111047707B CN201911095696.XA CN201911095696A CN111047707B CN 111047707 B CN111047707 B CN 111047707B CN 201911095696 A CN201911095696 A CN 201911095696A CN 111047707 B CN111047707 B CN 111047707B
- Authority
- CN
- China
- Prior art keywords
- blood
- particles
- particle
- blood particles
- force
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 239000002245 particle Substances 0.000 title claims abstract description 303
- 210000004369 blood Anatomy 0.000 title claims abstract description 173
- 239000008280 blood Substances 0.000 title claims abstract description 173
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000000740 bleeding effect Effects 0.000 title claims abstract description 42
- 238000004088 simulation Methods 0.000 title claims abstract description 36
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 26
- 230000001133 acceleration Effects 0.000 claims abstract description 22
- 238000009877 rendering Methods 0.000 claims abstract description 19
- 230000000694 effects Effects 0.000 claims abstract description 17
- 210000003743 erythrocyte Anatomy 0.000 claims abstract description 16
- 238000012545 processing Methods 0.000 claims abstract description 12
- 230000000007 visual effect Effects 0.000 claims abstract description 7
- 238000006073 displacement reaction Methods 0.000 claims abstract description 5
- 239000012530 fluid Substances 0.000 claims description 21
- 238000009499 grossing Methods 0.000 claims description 18
- 238000005286 illumination Methods 0.000 claims description 18
- 238000004364 calculation method Methods 0.000 claims description 14
- 230000003993 interaction Effects 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 10
- 230000005484 gravity Effects 0.000 claims description 9
- 239000003086 colorant Substances 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 238000012821 model calculation Methods 0.000 claims description 3
- 239000000126 substance Substances 0.000 claims description 3
- 238000002474 experimental method Methods 0.000 abstract description 5
- 230000003044 adaptive effect Effects 0.000 abstract description 3
- 208000032843 Hemorrhage Diseases 0.000 description 27
- 230000017531 blood circulation Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 230000033001 locomotion Effects 0.000 description 7
- 210000000601 blood cell Anatomy 0.000 description 6
- 210000004872 soft tissue Anatomy 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000001356 surgical procedure Methods 0.000 description 4
- 230000000052 comparative effect Effects 0.000 description 3
- 238000005520 cutting process Methods 0.000 description 3
- 210000001519 tissue Anatomy 0.000 description 3
- 210000004204 blood vessel Anatomy 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 210000005003 heart tissue Anatomy 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 210000000056 organ Anatomy 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013334 tissue model Methods 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 206010060964 Arterial haemorrhage Diseases 0.000 description 1
- 206010065441 Venous haemorrhage Diseases 0.000 description 1
- 206010051373 Wound haemorrhage Diseases 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003872 anastomosis Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 239000011324 bead Substances 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000008713 feedback mechanism Effects 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 238000001631 haemodialysis Methods 0.000 description 1
- 230000000322 hemodialysis Effects 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004962 physiological condition Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000007921 spray Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002344 surface layer Substances 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G06T3/06—
Abstract
本发明提供了一种基于SPH的混合粒子血液模型的流血仿真方法,主要包括以下步骤:步骤1,生成血液粒子,血液粒子被分为两种,血浆粒子以及红细胞粒子;步骤2,初始化粒子的可变初速度以及加速度;步骤3,计算混合粒子的支持域;步骤4,计算混合粒子间的压力;步骤5,计算混合粒子间的粘滞力;步骤6,计算血液粒子的位移,速度;步骤7,利用一种适应该模型的混合颜色渲染算法进行渲染。本发明可以真实的模拟血液流淌的效果,有效避免了血液散开的现象,并提高了血液流淌模型的真实性。实验表明,与传统的血液建模方法相比,该模型在视觉渲染上更具真实性,且在处理不同部位出血状况不同这类复杂模拟中更具真实性。
Description
技术领域
本发明涉及虚拟手术仿真系统中流血模型的构建,用于实现在虚拟手术中对伤口出血及血液流动的模拟。
背景技术
在真实的手术过程中,在对人体组织器官进行切割等操作时,往往会伴随着流血现象,而血液对手术的影响是不可忽视的,特别是在对精密性要求更高的手术中,血液的出现会在很大程度上影响医生的手术操作,不仅会在视野上造成一定的干扰,在流血速度超出预期时,可能会对病人的生命安全产生威胁,所以流血情况的处理对医生的能力也是个极大的考验。虚拟手术系统作为以再现真实手术过程为目的的一项技术,需要考虑到手术中可能出现的多个影响因素,对组织流血的再现也是必不可少的。
在医学手术中,人体组织切割后通常会伴随着流血、渗血以及血液喷涌等现象,在不同的手术场景中,由于环境、操作的差异,血液的流动状况以及出血速度也存在差异,而血液流失过快或处理不当就可能会对病人生命安全产生威胁,考虑到这个因素,国内外的学者们对血液的仿真进行了大量的研究并取得了一系列成果。国外在液体流动方面的研究在很早就开始了。早在19世纪,法国科学家C.-L.-M.-H.纳维提出了粘性流体的运动学方程,但只考虑了不可压缩流体的流动,在英国,物理学家G.G.斯托克斯独立提出粘性系数为一常数的形式,这两位科学家的研究造就了著名的Navier-Stokes方程,简称N-S方程,为以后的流体力学研究奠定基础。Kass等人提出了一种波动方程,通过对方程的迭代求解,可以模拟出雨滴撞击水面与海滩的浪花等现象。基于这种波动方程,Basdogan等人提出使用两种模型来分别应对两种不同的流血现象,即使用粒子系统模型(Particle System Model)来模拟动脉血管出血,使用表面流动模型(Surface Flow Model)模拟器官表面流血。Müller等人将血液模拟为具有自由表面的流体,可以很好的模拟出拥有3000个粒子的血液模型。L.Raghupathi等人提出一种模拟腹腔镜血液透析期间出血的方法,并研究出两种独立模型,一种是用来模拟血液的自由流动的粒子系统模型,一种是用来模拟大量血液聚集效果的基于静态流体力学的体积模型(volume Model)。T.Deschamps等人使用在网格上构建嵌入式边界的方式来使Navier-Stokes方程离散化为不可压缩流体。Rafik Ouared等人采用格子波尔兹曼(LB)方法进行血流建模,并使用非牛顿校正以重现更真实的血流分布。Rianto等人使用基于高度场的方法,在血量和血流速度的二维数据结构上实现Navier-Stokes方程,并使用GPU来计算,来保证流血效果的实时性。为了计算出血流和血管壁的相互作用,Jing Qin等人将光滑粒子流体动力学(Smoothed Particle Hydrodynamics,SPH)和质点-弹簧模型(MSM)两种技术结合,模拟出了虚拟手术中血管内的血液流动和血管的形变。
清华大学的黄伟峰等人采用流体体积模型(volume offluid,VOF)追踪流体的运动过程,使用连续表面力模型(continuum surface force,CSF)模拟出液体表面张力的作用,分析了将不可压缩流体注入微管道时,表面张力的变化状况。粒子间相互作用力模型(IIF)作为另一种表面张力模型,在模拟时有着粒子非物理聚集、流体表面形状不规则现象出现,针对这些现象,董兰芳等对该模型进行了修正,获得了比较稳定和正确的效果。针对弯曲血槽的环境下的少量流血效果的模拟,徐凯等人采用了元球方法构建模型,绘制出弯曲血槽,对血流前端进行动态绘制,对血槽静态绘制,提升了计算速度,但流血的动态效果有限。对于虚拟肝脏手术中的动态渗血效果的模拟,施鹏等人结合流体模拟中的拉格朗日粒子法提出一种渗血模拟仿真模型,并将其与力反馈机制进行结合,获得了很好的交互效果。上海交通大学的郑广超采用了稳定半拉格朗日法,在内窥镜下模拟出血流,其效果在一定程度上符合了虚拟手术对实时性的要求。同样是上海交通大学的孙琦采用计算流体力学(Computational Fluid Dynamics,CFD)的方法进行数值分析,在腔-肺吻合结构中模拟出血管腔内的流血效果,证实了该方法在流血模拟方向的可用性。任巨等人结合弹性腔模型,对粒子系统进行改进,并将其应用在虚拟心脏手术系统的流血模拟中。云南师范大学的李忠态对皮肤表面的流血过程进行了研究,提出了血液粒子的椭球体模型,并将弹性腔模型用于皮肤表层毛细血管腔,辅助血液的模拟与血流量计算。
血液作为一种流体,无论从力学计算上还是在渲染上都要比固体复杂,在对其进行仿真的过程中会影响到手术系统的响应速度,所以也有不少的学者在提高仿真速度的研究上做出了不少努力。邱文超等人使用了Physx物理引擎来模拟血液流动,利用ScreenSpace Flow算法渲染流血表面,可保证实时绘制40000个血液粒子。福州大学的陈国栋等人将形状约束算法引入到血流的实时仿真中,该算法可对血液粘性效果进行模拟,简化了传统方法中的计算过程。南昌大学的黄诗文通过引入空间网格搜索临近点法和高度场法对光滑粒子流体动力学方法进行改进,加快了虚拟手术中血液的模拟速度。山东大学的赖颢升使用了GPU来计算求解Navier-Stokes方程的过程,并利用CUDA的特性使用OpenGL绘制显存中的数据,有效提升了计算速度。燕山大学的刘吉娟在皮肤软组织切割的过程中增加了血液效果,并采用余弦定理和相似三角形法模拟出了血珠的融合过程,增强了虚拟手术切割仿真的逼真度。
在上述方法中,研究者们大多采用单一种类的粒子来描述血液的流动与颜色特性,其运动状态与颜色较为单一,而真实的血液构成较为复杂,其流动特性会随着成分的不同而不同,而其颜色也与成分有关,而目前的单一种类的粒子对其可变特性的描述有限,血液仿真的效果也受到限制,因此需要研究一种能够适应变化的血液仿真方法来提高流血效果的真实性与可靠性。
发明内容
本发明的目的在于提供一种基于SPH的混合粒子血液模型的流血仿真方法,提高流血效果的真实性与可靠性。
为实现上述目的,本发明提供如下技术方案:一种基于SPH的混合粒子血液模型的流血仿真方法,主要包括以下步骤:在虚拟手术仿真系统中,软组织出现出血点:
步骤1,生成血液粒子,血液粒子被分为两种,血浆粒子以及红细胞粒子;
步骤2,初始化粒子的可变初速度以及加速度;
步骤3,计算混合粒子的支持域;
步骤4,计算混合粒子间的压力;
步骤5,计算混合粒子间的粘滞力;
步骤6,计算血液粒子的位移,速度;
步骤7,利用一种适应该模型的混合颜色渲染算法进行渲染,所述混合颜色渲染算法包括粒子获取、深度数据获取、平滑算法与光照处理。
进一步的,所述步骤1在生成血液时需要还原两种粒子的生成比例,血液中粒子生成比例由下式确定
Particle_Type=rand()÷double(RAND_MAX)
rand()为随机数,double(RAND_MAX)表示随机数取值范围内最大值,Particle_Type表示的是粒子类型判断的参数,该参数的值域为[a,b],当Particl_Type<c则生成红细胞粒子,当Particl_Type≥则生成血浆粒子。
进一步的,所述步骤2中具体速度算式如下:
Particle_Speed[i]=vec_init+rand()÷double(RAND_MAX)×vec_num
式中,Particle_Speed[i]表示粒子速度,i表示粒子初始的坐标,取值有三种,分别对应三维空间的x,y,z方向的坐标,vec_init表示粒子速度的初始量,vec_num表示为速度变化范围的参考量,rand()÷double(RAND_MAX)表示取值于[a,b]的随机数。
粒子的初始加速度算式如下:
Particle_Acc[i]=acc_force[i]+other_acc
其中,Particle_Acc[i]表示粒子的加速度,acc_force[i]表示粒子相互作用力对该离子加速度的影响,other_acc表示其他作用力产生的影响。
进一步的,所述步骤3中支持域受光滑长度影响,利用光滑长度处理不同粒子间的作用力,根据万有引力定律:
式中,G为引力常量,mi与mj为俩质点i和j的质量,r为质点间的距离,而不同粒子间作用力与相同粒子间的作用力比值为质量的比值:
Fij为不同种类粒子间的相互作用力,Fii表示相同种类粒子间的相互作用力,将比值简化为:
hij为不同粒子间的光滑长度,hii为相同粒子间的光滑长度,设r1与r2分别为不同支持域的半径,存在r1=κh1与r2=κh2,κ为比例因子。
进一步的,所述步骤4具体包括:
每个粒子受到的压力分别计算:
l为支持域中不同种粒子的数量,hc为不同种类粒子的光滑长度。
光滑核函数:
其拉普拉斯算子为:
粒子收到的压强为:
p=k(ρ-ρ0)
式中k在某些恒定条件下为常量,ρ0为初始密度。
其密度为:
ρi为粒子i的密度,其中,光滑长度hj和粒子质量mj根据粒子的不同而不同。
进一步的,所述步骤5中粘滞力是由粒子间的速度差异而产生的摩擦力,引入速度差的方法求得:
其中vi为粒子i的速度,μ为血液的粘滞系数,z为粒子i在支持域内的所有粒子数量。
计算混合粒子的外部力:
fg=gm
fg为重力,g为重力加速度,m为粒子质量。
进一步的,所述步骤6包括粒子速度更新和粒子位置更新:
粒子进行速度更新:
Vi(t+1)=ai(t+1)×Δt+Vi(t)
Vi(t+1)为t+1时刻粒子的运动速度,Δt为迭代的单位时间步长,ai(t+1)为t+1时刻粒子的加速度。
血液粒子进行位置更新:
Xi(t+1)=Xi(t)+[[Vi(t+1)+Vi(t)]×Δt]÷2
Xi(t+1)为t+1时刻粒子的位置。
进一步的,所述步骤7中粒子获取具体为:
粒子在不同时间片的位置、速度与加速度属性的值在血液整体渲染过程中,供渲染位置、光照、透明度参数的计算,使用点精灵(PointSprite)来进行粒子的绘制,点精灵提供一种将三维空间中的物体映射到二维纹理图像中的方法,该方法利用了摄像机视角的局限性,将视觉范围内的三维物体以像素点的形式绘制出来。
深度数据获取具体为:
在对表面的深度数据进行计算时,将粒子的坐标由世界空间坐标系转换为屏幕空间坐标系,分别单独求出两种粒子的深度数据,根据红细胞粒子与血浆粒子对血液颜色的贡献程度,按比例合并,得到血液整体的深度,在相同坐标(i,j)位置上有:
I(i,j)=μ1I1(i,j)+μ2I2(i,j)
其中,I(i,j)为血液在坐标(i,j)上的深度,I1(i,j)为红细胞粒子在该坐标上的深度,I2(i,j)为血浆粒子在该坐标上的深度,μ1为红细胞对血液颜色的贡献率,μ2为血浆对血液颜色的贡献率,而μ1与μ2存在以下关系:
μ1+μ2=1
最后将得到的深度数据I(i,j)作为属性存入对应的坐标中。
平滑算法:采用计算相对简单的高斯模糊算法作为深度数据的平滑处理算法,其算式如下:
式中,D(i,j)为平滑后在坐标(i,j)上的深度,I(x,y)为平滑前在坐标(x,y)上的深度,w与h为参与高斯模糊的范围,G(x,y)为高斯函数,σ为标准差,高斯函数区分为流体表面和背景两种情况。
光照处理:在获取相应坐标深度数据时,粒子的坐标由世界空间坐标系转换为屏幕空间坐标系,将该粒子与邻域粒子进行有限差分,从而计算出粒子对应的x与y方向的方向梯度Gx与Gy,而像素点相对流体表面的法向量为方向梯度的叉乘结果Gx×Gy,根据得到的像素点的法向量,即可根据光照模型计算公式进行相应的光照处理,光照效果Cout的计算公式如下:
Cout=a(1-F(n·v))+bF(n·v)+ks(n·h)a
式中,a为环境光强度,b为环境反射光强度,ks为镜面反射系数,n为像素点法向量,v为摄像机的方向向量,h为摄像机与光源的半角方向向量,F为菲涅尔函数,其中a(1-F(n·v))表示环境光,bF(n·v)表示漫反射光,ks(n·h)a表示镜面光。
与现有技术相比,本发明的有益效果是:
本发明可以真实的模拟血液流淌的效果,有效避免了血液散开的现象,并提高了血液流淌模型的真实性。实验表明,与传统的血液建模方法相比,该模型在视觉渲染上更具真实性,且在处理不同部位出血状况不同这类复杂模拟中更具真实性。
附图说明
图1为血浆粒子与血细胞粒子分布示意图;
图2为动脉流血(左)与静脉流血(右)示意图;
图3为光滑长度对支持域的影响示意图;
图4为不同坐标系下的球体视觉效果图;
图5为本发明与传统血液建模方法对比效果图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。此处所描述的具体实施例仅用于解释本发明技术方案,并不限于本发明。
本发明提出了一种基于SPH的混合粒子血液模型的流血仿真方法。提出一种新的混合粒子血液模型,该模型将血液的组成粒子区分为血浆粒子与血细胞粒子,如图1,并且在质量、密度等属性上有所不同,在模型的构建上,提出了一种基于混合粒子流血模型的改进的SPH算法。该算法通过分析不同粒子的支持域,将不同种类粒子间的作用力与相同种类粒子间的相互作用力分别计算出来,从而得到不同粒子的运动状态,并将其运用到软组织表面的流血仿真中。并可通过改动初速度、粘滞因子等相应参数实现血液喷涌、流淌等多种运动的仿真,如图2。同时,在软组织表面的血液渲染中引入Screen Space Flow算法,并针对混合粒子血液模型提出一种改进的Screen Space Flow算法。
本发明提供一种技术方案:一种基于SPH的混合粒子血液模型的流血仿真方法,主要包括以下步骤:在虚拟手术仿真系统中,软组织出现出血点:
步骤1,生成血液粒子,血液粒子被分为两种,血浆粒子以及红细胞粒子。在生成血液时需要还原两种粒子的生成比例,血液中粒子生成比例由下式确定
Particle_Type=rand()÷double(RAND_MAX)
rand()为随机数,double(RAND_MAX)表示随机数取值范围内最大值,Particle_Type表示的是粒子类型判断的参数,该参数的值域为[0,1],当Particl_Type<0.45则生成红细胞粒子,当Particl_Type≥0.45则生成血浆粒子。
步骤2,初始化粒子的可变初速度以及加速度。具体速度算式如下:
Particle_Speed[i]=vec_init+rand()÷double(RAND_MAX)×vec_num
式中,Particle_Speed[i]表示粒子速度,i表示粒子初始的坐标,取值有三种,为0,1,2,分别对应三维空间的x,y,z方向的坐标,vec_init表示粒子速度的初始量,vec_num表示为速度变化范围的参考量,rand()÷double(RAND_MAX)表示取值于[0,1]的随机数。
粒子的初始加速度算式如下:
Particle_Acc[i]=acc_force[i]+other_acc
其中,Particle_Acc[i]表示粒子的加速度,acc_force[i]表示粒子相互作用力对该离子加速度的影响,other_acc表示其他作用力产生的影响。
步骤3,计算混合粒子的支持域。支持域受光滑长度影响,利用光滑长度处理不同粒子间的作用力,根据万有引力定律:
式中,G为引力常量,mi与mj为俩质点i和j的质量,r为质点间的距离,而不同粒子间作用力与相同粒子间的作用力比值为质量的比值:
Fij为不同种类粒子间的相互作用力,Fii表示相同种类粒子间的相互作用力,将比值简化为:
hij为不同粒子间的光滑长度,hii为相同粒子间的光滑长度,如附图3,r1与r2分别为不同支持域的半径,存在r1=κh1与r2=κh2,κ为比例因子。
步骤4,计算混合粒子间的压力,每个粒子受到的压力分别计算:
l为支持域中不同种粒子的数量,hc为不同种类粒子的光滑长度。
光滑核函数
其拉普拉斯算子为
粒子收到的压强为:
p=k(ρ-ρ0)
式中k在某些恒定条件下为常量,ρ0为初始密度。
其密度为:
ρi为粒子i的密度,其中,光滑长度hj和粒子质量mj根据粒子的不同而不同。
步骤5,计算混合粒子间的粘滞力,粘滞力是由粒子间的速度差异而产生的摩擦力,引入速度差的方法求得:
其中vi为粒子i的速度,μ为血液的粘滞系数,z为粒子i在支持域内的所有粒子数量。
计算混合粒子的外部力
fg=gm
fg为重力,g为重力加速度,m为粒子质量。
步骤6,计算血液粒子的位移,速度。
粒子进行速度更新:
Vi(t+1)=ai(t+1)×Δt+Vi(t)
Vi(t+1)为t+1时刻粒子的运动速度,Δt为迭代的单位时间步长,ai(t+1)为t+1时刻粒子的加速度。
血液粒子进行位置更新:
Xi(t+1)=Xi(t)+[[Vi(t+1)+Vi(t)]×Δt]÷2
Xi(t+1)为t+1时刻粒子的位置。
步骤7,利用一种适应该模型的混合颜色渲染算法进行渲染,该混合颜色渲染算法包括粒子获取、深度数据获取、平滑算法与光照处理。
粒子获取:
粒子在不同时间片的位置、速度与加速度等属性的值在血液整体渲染过程中,供渲染位置、光照、透明度等参数的计算,使用点精灵(PointSprite)来进行粒子的绘制,点精灵提供一种将三维空间中的物体映射到二维纹理图像中的方法,该方法利用了摄像机视角的局限性,将视觉范围内的三维物体以像素点的形式绘制出来。
深度数据获取具体为:
在对表面的深度数据进行计算时,将粒子的坐标由世界空间坐标系转换为屏幕空间坐标系,由于坐标系的转换,粒子的视觉效果也有所改变,如图4。其深度数据也将分别考虑血浆粒子与血细胞粒子在体型与颜色上存在差异,分别单独求出两种粒子的深度数据,根据红细胞粒子与血浆粒子对血液颜色的贡献程度,按比例合并,得到血液整体的深度,在相同坐标(i,j)位置上有:
I(i,j)=μ1I1(i,j)+μ2I2(i,j)
其中,I(i,j)为血液在坐标(i,j)上的深度,I1(i,j)为红细胞粒子在该坐标上的深度,I2(i,j)为血浆粒子在该坐标上的深度,μ1为红细胞对血液颜色的贡献率,μ2为血浆对血液颜色的贡献率,而μ1与μ2存在以下关系:
μ1+μ2=1
由于在通常生理状况下,血细胞对血液整体颜色的贡献大于血浆,因此通常存在μ1>μ2。最后将得到的深度数据I(i,j)作为属性存入对应的坐标中。
平滑算法:采用计算相对简单的高斯模糊算法作为深度数据的平滑处理算法,其算式如下:
式中,D(i,j)为平滑后在坐标(i,j)上的深度,I(x,y)为平滑前在坐标(x,y)上的深度,w与h为参与高斯模糊的范围,G(x,y)为高斯函数,σ为标准差,高斯函数区分为流体表面和背景两种情况。
光照处理:在获取相应坐标深度数据时,粒子的坐标由世界空间坐标系转换为屏幕空间坐标系,将该粒子与邻域粒子进行有限差分,从而计算出粒子对应的x与y方向的方向梯度Gx与Gy,而像素点相对流体表面的法向量为方向梯度的叉乘结果Gx×Gy,根据得到的像素点的法向量,即可根据光照模型计算公式进行相应的光照处理,光照效果Cout的计算公式如下:
Cout=a(1-F(n·v))+bF(n·v)+ks(n·h)a
式中,a为环境光强度,b为环境反射光强度,ks为镜面反射系数,n为像素点法向量,v为摄像机的方向向量,h为摄像机与光源的半角方向向量,F为菲涅尔函数,其中a(1-F(n·v)表示环境光,bF(n·v)表示漫反射光,ks(n·h)a表示镜面光。
对比实验:
为了测试混合粒子血液模型的可行性,将该模型与传统粒子血液模型在相关性质上进行对比实验。该实验以心脏组织模型为基础,在其表面进行血液仿真。对比效果如图5所示。
图5(a)传统粒子血液模型是以单一种类的粒子所构成,而图5(b)中的混合粒子血液模型混合了两种粒子,其中颗粒较大的为血细胞粒子,颗粒较小的为血浆粒子。通过对图中粒子效果的对比,在观察粒子的位置与运动规律时,混合粒子血液模型明显优于传统粒子血液模型,能较好的体现出血液内部结构的运动状况,并且其较为不规则的血液表面与现实流血的情况相符。
以上所述仅表达了本发明的优选实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形、改进及替代,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (7)
1.一种基于SPH的混合粒子血液模型的流血仿真方法,其特征在于:在虚拟手术仿真系统中,确认出血点之后,首先初始化血液粒子的各类参数,通过计算支持域确定血液粒子的影响范围,拟合血液粒子间的函数关系,之后计算血液粒子所受合力,包括压力,粘滞力,更新血液粒子的位移与速度,渲染血液粒子的新位置,呈现出流动状态;具体包括以下步骤:
步骤1,生成血液粒子,血液粒子被分为两种,血浆粒子以及红细胞粒子;
步骤2,初始化血液粒子的可变初速度以及加速度;
步骤3,计算血液粒子的支持域,拟合血液粒子间的函数关系;
步骤4,利用血液粒子间的函数关系计算血液粒子间的压力;
步骤5,计算因速度差异造成的血液粒子间的粘滞力;
步骤6,根据合力计算血液粒子的位移,速度;
步骤7,在步骤1-6中,利用混合颜色的Screen Space Flow算法进行图像渲染,所述混合颜色的Screen Space Flow算法包括血液粒子获取、深度数据获取、平滑算法与光照处理;
所述步骤7中血液粒子获取具体为:
血液粒子在不同时间片的位置、速度与加速度属性的值在血液整体渲染过程中,供渲染位置、光照、透明度参数的计算,使用点精灵Point Sprite来进行血液粒子的绘制,点精灵提供一种将三维空间中的物体映射到二维纹理图像中的方法,该方法利用了摄像机视角的局限性,将视觉范围内的三维物体以像素点的形式绘制出来;
深度数据获取具体为:
在对表面的深度数据进行计算时,将血液粒子的坐标由世界空间坐标系转换为屏幕空间坐标系,分别单独求出两种血液粒子的深度数据,根据红细胞粒子与血浆粒子对血液颜色的贡献程度,按比例合并,得到血液整体的深度,在屏幕空间坐标(i,j)位置上有:
I(i,j)=μ1I1(i,j)+μ2I2(i,j)
其中,I(i,j)为血液在坐标(i,j)上的深度,I1(i,j)为红细胞粒子在该坐标上的深度,I2(i,j)为血浆粒子在该坐标上的深度,μ1为红细胞对血液颜色的贡献率,μ2为血浆对血液颜色的贡献率,而μ1与μ2存在以下关系:
μ1+μ2=1
最后将得到的深度数据I(i,j)作为属性存入对应的坐标中;
平滑算法:采用计算相对简单的高斯模糊算法作为深度数据的平滑处理算法,其算式如下:
式中,D(i,j)为平滑后在坐标(i,j)上的深度,I(x,y)为平滑前在坐标(x,y)上的深度,w与h为参与高斯模糊的范围,σ为标准差,G(x,y)为高斯函数,高斯函数区分为流体前景和背景两种情况,当深度I(x,y)为前景时,进行平滑处理,当深度I(x,y)为背景时,高斯函数为零;
光照处理:在获取相应坐标深度数据时,血液粒子的坐标由世界空间坐标系转换为屏幕空间坐标系,将该血液粒子与邻域血液粒子进行有限差分,从而计算出血液粒子对应的x与y方向的方向梯度Gx与Gy,而像素点相对流体表面的法向量为方向梯度的叉乘结果Gx×Gy,根据得到的像素点的法向量,即可根据光照模型计算公式进行相应的光照处理,光照效果Cout的计算公式如下:
Cout=a(1-F(n·v))+bF(n·v)+ks(n·h)a
式中,a为环境光强度,b为环境反射光强度,ks为镜面反射系数,n为像素点法向量,v为摄像机的方向向量,h为摄像机与光源的半角方向向量,F为菲涅尔函数,其中a(1-F(n·v))表示环境光,bF(n·v)表示漫反射光,ks(n·h)a表示镜面光。
2.根据权利要求1所述的一种基于SPH的混合粒子血液模型的流血仿真方法,其特征在于:所述步骤1在生成血液时需要还原两种粒子的生成比例,血液中粒子生成比例由下式确定
Particle_Type=rand()÷double(RAND_MAX)
rand()为随机数,double(RAND_MAX)表示随机数取值范围内最大值,Particle_Type表示最终生成的随机数,Particle_Type的最小值为a,最大值为b,c为血液粒子类型判断的参数,取值范围为[a,b],当Particl_Type<c则生成红细胞粒子,当Particl_Type≥c则生成血浆粒子。
3.根据权利要求2所述的一种基于SPH的混合粒子血液模型的流血仿真方法,其特征在于:所述步骤2中血液粒子的可变初速度具体算式如下:
Particle_Speed[r]=vec_init+rand()÷double(RAND_MAX)×vec_num
式中,Particle_Speed[r]表示血液粒子的可变初速度,r表示血液粒子初始的位置,取值有三种,分别对应三维空间的x,y,z方向的坐标,vec_init表示血液粒子初速度的初始量,vec_num表示为初速度变化范围的大小,rand()÷double(RAND_MAX)表示取值于[a,b]的随机数;
血液粒子的加速度算式如下:
Particle_Acc[r]=acc_force[r]+other_acc
其中,Particle_Acc[r]表示血液粒子的加速度,acc_force[r]表示血液粒子相互作用力对该血液粒子加速度的影响,other_acc表示其他作用力产生的影响。
4.根据权利要求3所述的一种基于SPH的混合粒子血液模型的流血仿真方法,其特征在于:所述步骤3中支持域受光滑长度影响,利用光滑长度处理不同血液粒子间的作用力,根据万有引力定律:
式中,G为引力常量,mi与mj为俩质点i和j的质量,r为质点间的距离,而不同血液粒子间作用力与相同血液粒子间的作用力比值为质量的比值:
Fij为不同种类血液粒子间的相互作用力,Fii表示相同种类血液粒子间的相互作用力,将比值简化为:
hij为不同血液粒子间的光滑长度,hii为相同血液粒子间的光滑长度,不同类血液粒子支持域的半径dij计算方式为dij=κhij,同类血液粒子支持域的半径dii计算方式为dii=κhii,κ为比例因子。
5.根据权利要求4所述的一种基于SPH的混合粒子血液模型的流血仿真方法,其特征在于:所述步骤4具体包括:
每个血液粒子受到的压力分别计算:
l为支持域中不同种血液粒子的数量,hc为不同种类血液粒子的光滑长度;
光滑核函数:
其拉普拉斯算子为:
血液粒子收到的压强为:
p=λ(ρi-ρ0)
式中λ在某些恒定条件下为常量,ρi为血液粒子i的密度,ρ0为初始密度;
其密度为:
ρi为血液粒子i的密度,其中,光滑长度hj和血液粒子质量mj根据血液粒子的不同而不同。
7.根据权利要求6所述的一种基于SPH的混合粒子血液模型的流血仿真方法,其特征在于:所述步骤6包括血液粒子速度更新和血液粒子位置更新:
粒子进行速度更新:
Vi(t+1)=ai(t+1)×Δt+Vi(t)
Vi(t+1)为t+1时刻血液粒子的运动速度,Δt为迭代的单位时间步长,ai(t+1)为t+1时刻血液粒子的加速度;
血液粒子进行位置更新:
Xi(t+1)=Xi(t)+[[Vi(t+1)+Vi(t)]×Δt]÷2
Xi(t+1)为t+1时刻血液粒子的位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911095696.XA CN111047707B (zh) | 2019-11-11 | 2019-11-11 | 一种基于sph的混合粒子血液模型的流血仿真方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911095696.XA CN111047707B (zh) | 2019-11-11 | 2019-11-11 | 一种基于sph的混合粒子血液模型的流血仿真方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111047707A CN111047707A (zh) | 2020-04-21 |
CN111047707B true CN111047707B (zh) | 2021-09-28 |
Family
ID=70232332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911095696.XA Active CN111047707B (zh) | 2019-11-11 | 2019-11-11 | 一种基于sph的混合粒子血液模型的流血仿真方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111047707B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112784471B (zh) * | 2021-01-26 | 2022-09-23 | 郑州轻工业大学 | 水环境可视仿真方法、终端设备以及计算机可读存储介质 |
CN112906323A (zh) * | 2021-04-08 | 2021-06-04 | 兰州大学 | 一种虚拟肝静脉压力梯度测量方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103729555A (zh) * | 2013-12-20 | 2014-04-16 | 深圳先进技术研究院 | 一种模拟血流与血管壁作用的方法和装置 |
CN103917164A (zh) * | 2011-08-26 | 2014-07-09 | Ebm株式会社 | 血管血流模拟的系统、其方法及计算机软件程序 |
CN104462830A (zh) * | 2014-12-12 | 2015-03-25 | 武汉大学 | 一种基于gpu加速的混合粒子的实时血流血管耦合方法 |
CN107633123A (zh) * | 2017-09-13 | 2018-01-26 | 浙江工业大学 | 一种用于光滑粒子流体动力学模拟出血及处理加速的方法 |
CN108461149A (zh) * | 2018-01-30 | 2018-08-28 | 中山大学 | 一种基于pbf的血液模拟方法 |
CN108597612A (zh) * | 2018-04-19 | 2018-09-28 | 南京信息工程大学 | 模拟出血模型的虚拟切割算法 |
CN108922627A (zh) * | 2018-06-28 | 2018-11-30 | 福州大学 | 基于数据驱动的血流仿真方法 |
CN109077803A (zh) * | 2018-05-28 | 2018-12-25 | 北京交通大学长三角研究院 | 一种虚拟手术中流血仿真模型的建模方法 |
CN109102893A (zh) * | 2018-07-04 | 2018-12-28 | 中山大学 | 一种基于Cross模型的多粒子混合修正的血栓模拟方法 |
CN109344450A (zh) * | 2018-09-07 | 2019-02-15 | 中山大学 | 基于pbf的流体凝固模拟方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8965084B2 (en) * | 2012-01-19 | 2015-02-24 | Siemens Aktiengesellschaft | Blood flow computation in vessels with implanted devices |
-
2019
- 2019-11-11 CN CN201911095696.XA patent/CN111047707B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103917164A (zh) * | 2011-08-26 | 2014-07-09 | Ebm株式会社 | 血管血流模拟的系统、其方法及计算机软件程序 |
CN103729555A (zh) * | 2013-12-20 | 2014-04-16 | 深圳先进技术研究院 | 一种模拟血流与血管壁作用的方法和装置 |
CN104462830A (zh) * | 2014-12-12 | 2015-03-25 | 武汉大学 | 一种基于gpu加速的混合粒子的实时血流血管耦合方法 |
CN107633123A (zh) * | 2017-09-13 | 2018-01-26 | 浙江工业大学 | 一种用于光滑粒子流体动力学模拟出血及处理加速的方法 |
CN108461149A (zh) * | 2018-01-30 | 2018-08-28 | 中山大学 | 一种基于pbf的血液模拟方法 |
CN108597612A (zh) * | 2018-04-19 | 2018-09-28 | 南京信息工程大学 | 模拟出血模型的虚拟切割算法 |
CN109077803A (zh) * | 2018-05-28 | 2018-12-25 | 北京交通大学长三角研究院 | 一种虚拟手术中流血仿真模型的建模方法 |
CN108922627A (zh) * | 2018-06-28 | 2018-11-30 | 福州大学 | 基于数据驱动的血流仿真方法 |
CN109102893A (zh) * | 2018-07-04 | 2018-12-28 | 中山大学 | 一种基于Cross模型的多粒子混合修正的血栓模拟方法 |
CN109344450A (zh) * | 2018-09-07 | 2019-02-15 | 中山大学 | 基于pbf的流体凝固模拟方法及系统 |
Non-Patent Citations (2)
Title |
---|
Simulation of blood flow in microvessel with SPH method;SAITO Ryusuke et al.;《The Proceedings of Ibaraki District Conference》;20041230;第239-240页 * |
基于SPH和流体动力学的皮肤表面上三维流血模拟;李忠态;《中国优秀硕士学位论文全文数据库信息科技辑》;20111215(第S1期);第I138-1807页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111047707A (zh) | 2020-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107633123B (zh) | 一种用于光滑粒子流体动力学模拟出血及处理加速的方法 | |
US7983884B2 (en) | Water particle manipulation | |
CN111047707B (zh) | 一种基于sph的混合粒子血液模型的流血仿真方法 | |
US9147288B1 (en) | Subdivision of surfaces approximation | |
KR100568563B1 (ko) | 입자동역학 해석기법과 볼륨렌더링 기법을 이용한 실시간 유체유동 시뮬레이션 및 렌더링 방법 | |
CN104143205A (zh) | 大规模真实感体积云的实时渲染方法 | |
Bouthors et al. | Modeling clouds shape | |
Yang et al. | A unified smoke control method based on signed distance field | |
KR20130078102A (ko) | 유체 시뮬레이션 방법 | |
Jung et al. | Using X3D for medical training simulations | |
CN110335275A (zh) | 一种基于三变量双调和b样条的流体表面的时空向量化方法 | |
CN116933674A (zh) | 基于lbm的快速流体模拟方法 | |
Mora et al. | Real-time 3D fluid interaction with a haptic user interface | |
Brousset et al. | Simulation and control of breaking waves using an external force model | |
Akinci | Interface handling in smoothed particle hydrodynamics | |
Deng et al. | PhyVR: Physics-based Multi-material and Free-hand Interaction in VR | |
Hu et al. | Contained fluid simulation based on game engine | |
Cirio et al. | “Tap, squeeze and stir” the virtual world: Touching the different states of matter through 6DoF haptic interaction | |
Song | Dynamic deformation of uniform elastic two-layer objects | |
Gao et al. | Blood flow simulation of virtual simulation system for vascular interventional surgery | |
Vines Neuwirth | Vortex Methods for Fluid Simulation in Computer Graphics | |
Wang et al. | Art-directable cloud animation | |
Bao et al. | Virtual training system with physical viscoelastic model and blood flow simulation based on a range-based SPH method | |
Xue-mei et al. | Bleeding simulation based particle system for surgical simulator | |
CN105006009A (zh) | 一种2d水体模拟方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |