CN111047707A - 一种基于sph的混合粒子血液模型的流血仿真方法 - Google Patents
一种基于sph的混合粒子血液模型的流血仿真方法 Download PDFInfo
- Publication number
- CN111047707A CN111047707A CN201911095696.XA CN201911095696A CN111047707A CN 111047707 A CN111047707 A CN 111047707A CN 201911095696 A CN201911095696 A CN 201911095696A CN 111047707 A CN111047707 A CN 111047707A
- Authority
- CN
- China
- Prior art keywords
- particles
- particle
- blood
- mixed
- speed
- 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.)
- Granted
Links
- 239000002245 particle Substances 0.000 title claims abstract description 276
- 210000004369 blood Anatomy 0.000 title claims abstract description 103
- 239000008280 blood Substances 0.000 title claims abstract description 103
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000000740 bleeding effect Effects 0.000 title claims abstract description 38
- 238000004088 simulation Methods 0.000 title claims abstract description 38
- 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 21
- 230000000694 effects Effects 0.000 claims abstract description 16
- 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
- 230000003044 adaptive effect Effects 0.000 claims abstract description 4
- 238000006073 displacement reaction Methods 0.000 claims abstract description 4
- 238000005286 illumination Methods 0.000 claims description 18
- 238000009499 grossing Methods 0.000 claims description 16
- 239000012530 fluid Substances 0.000 claims description 15
- 230000003993 interaction Effects 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 9
- 230000005484 gravity Effects 0.000 claims description 8
- 210000004872 soft tissue Anatomy 0.000 claims description 6
- 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
- 208000032843 Hemorrhage Diseases 0.000 description 23
- 230000006870 function Effects 0.000 description 10
- 230000033001 locomotion Effects 0.000 description 8
- 210000000601 blood cell Anatomy 0.000 description 6
- 230000017531 blood circulation Effects 0.000 description 5
- 238000005520 cutting process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000001356 surgical procedure Methods 0.000 description 4
- 230000000052 comparative effect Effects 0.000 description 3
- 210000001519 tissue Anatomy 0.000 description 3
- 238000010276 construction 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
- 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
- 239000011324 bead Substances 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 210000004204 blood vessel Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000009826 distribution 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
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000000056 organ Anatomy 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
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002344 surface layer Substances 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/06—Topological mapping of higher dimensional structures onto lower dimensional surfaces
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
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物理引擎来模拟血液流动,利用ScreenSpaceFlow算法渲染流血表面,可保证实时绘制40000个血液粒子。福州大学的陈国栋等人将形状约束算法引入到血流的实时仿真中,该算法可对血液粘性效果进行模拟,简化了传统方法中的计算过程。南昌大学的黄诗文通过引入空间网格搜索临近点法和高度场法对光滑粒子流体动力学方法进行改进,加快了虚拟手术中血液的模拟速度。山东大学的赖颢升使用了GPU来计算求解Navier-Stokes方程的过程,并利用CUDA的特性使用OpenGL绘制显存中的数据,有效提升了计算速度。燕山大学的刘吉娟在皮肤软组织切割的过程中增加了血液效果,并采用余弦定理和相似三角形法模拟出了血珠的融合过程,增强了虚拟手术切割仿真的逼真度。
在上述方法中,研究者们大多采用单一种类的粒子来描述血液的流动与颜色特性,其运动状态与颜色较为单一,而真实的血液构成较为复杂,其流动特性会随着成分的不同而不同,而其颜色也与成分有关,而目前的单一种类的粒子对其可变特性的描述有限,血液仿真的效果也受到限制,因此需要研究一种能够适应变化的血液仿真方法来提高流血效果的真实性与可靠性。
发明内容
本发明的目的在于提供一种基于SPH的混合粒子血液模型的流血仿真方法,提高流血效果的真实性与可靠性。
为实现上述目的,本发明提供如下技术方案:一种基于SPH的混合粒子血液模型的流血仿真方法,主要包括以下步骤:在虚拟手术仿真系统中,软组织出现出血点:
步骤1,生成血液粒子,血液粒子被分为两种,血浆粒子以及红细胞粒子;
步骤2,初始化粒子的可变初速度以及加速度;
步骤3,计算混合粒子的支持域;
步骤4,计算混合粒子间的压力;
步骤5,计算混合粒子间的粘滞力;
步骤6,计算血液粒子的位移,速度;
步骤7,利用一种适应该模型的混合颜色渲染算法进行渲染,所述混合颜色渲染算法包括粒子获取、深度数据获取、平滑算法与光照处理。
进一步的,所述步骤1在生成血液时需要还原两种粒子的生成比例,血液中粒子生成比例由下式确定
Particle_Type=rand()÷dounel(RAND_MAX)
rand()为随机数,doubel(RAND_MAX)表示随机数取值范围内最大值,Particle_Type表示的是粒子类型判断的参数,该参数的值域为[a,b],当Particl_Type<c则生成红细胞粒子,当Particl_Type≥c则生成血浆粒子。
进一步的,所述步骤2中具体速度算式如下:
Particle_Speed[i]=vec_init+rand()÷doubel(RAND_MAX)×vec_num
式中,Particle_Speed[i]表示粒子速度,i表示粒子初始的坐标,取值有三种,分别对应三维空间的x,y,z方向的坐标,vec_init表示粒子速度的初始量,vec_num表示为速度变化范围的参考量,rand()÷doubel(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的速度,μ为血液的粘滞系数。
计算混合粒子的外部力:
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中粒子获取具体为:
粒子在不同时间片的位置、速度与加速度属性的值在血液整体渲染过程中,供渲染位置、光照、透明度参数的计算,使用点精灵(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)为高斯函数,σ为标准差,高斯函数区分为流体表面和背景两种情况。
光照处理:在获取相应坐标深度数据时,粒子的坐标由世界空间坐标系转换为屏幕空间坐标系,将该粒子与邻域粒子进行有限差分,从而计算出粒子对应的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()÷doubel(RAND_MAX)
rand()为随机数,doubel(RAND_MAX)表示随机数取值范围内最大值,Particle_Type表示的是粒子类型判断的参数,该参数的值域为[0,1],当Particl_Type<0.45则生成红细胞粒子,当Particl_Type≥0.45则生成血浆粒子。
步骤2,初始化粒子的可变初速度以及加速度。具体速度算式如下:
Particle_Speed[i]=vec_init+rand()÷doubel(RAND_MAX)×vec_num
式中,Particle_Speed[i]表示粒子速度,i表示粒子初始的坐标,取值有三种,为0,1,2,分别对应三维空间的x,y,z方向的坐标,vec_init表示粒子速度的初始量,vec_num表示为速度变化范围的参考量,rand()÷doubel(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的速度,μ为血液的粘滞系数。
计算混合粒子的外部力
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,利用一种适应该模型的混合颜色渲染算法进行渲染,该混合颜色渲染算法包括粒子获取、深度数据获取、平滑算法与光照处理。
粒子获取:
粒子在不同时间片的位置、速度与加速度等属性的值在血液整体渲染过程中,供渲染位置、光照、透明度等参数的计算,使用点精灵(Point Sprite)来进行粒子的绘制,点精灵提供一种将三维空间中的物体映射到二维纹理图像中的方法,该方法利用了摄像机视角的局限性,将视觉范围内的三维物体以像素点的形式绘制出来。
深度数据获取具体为:
在对表面的深度数据进行计算时,将粒子的坐标由世界空间坐标系转换为屏幕空间坐标系,由于坐标系的转换,粒子的视觉效果也有所改变,如图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 (8)
1.一种基于SPH的混合粒子血液模型的流血仿真方法,其特征在于:主要包括以下步骤:在虚拟手术仿真系统中,软组织出现出血点:
步骤1,生成血液粒子,血液粒子被分为两种,血浆粒子以及红细胞粒子;
步骤2,初始化粒子的可变初速度以及加速度;
步骤3,计算混合粒子的支持域;
步骤4,计算混合粒子间的压力;
步骤5,计算混合粒子间的粘滞力;
步骤6,计算血液粒子的位移,速度;
步骤7,利用一种适应该模型的混合颜色渲染算法进行渲染,所述混合颜色渲染算法包括粒子获取、深度数据获取、平滑算法与光照处理。
2.根据权利要求1所述的一种基于SPH的混合粒子血液模型的流血仿真方法,其特征在于:所述步骤1在生成血液时需要还原两种粒子的生成比例,血液中粒子生成比例由下式确定
Particle_Type=rand()÷doubel(RAND_MAX)
rand()为随机数,doubel(RAND_MAX)表示随机数取值范围内最大值,Particle_Type表示的是粒子类型判断的参数,该参数的值域为[a,b],当Particl_Type<c则生成红细胞粒子,当Particl_Type≥c则生成血浆粒子。
3.根据权利要求2所述的一种基于SPH的混合粒子血液模型的流血仿真方法,其特征在于:所述步骤2中具体速度算式如下:
Particle_Speed[i]=vec_init+rand()÷doubel(RAND_MAX)×vec_num
式中,Particle_Speed[i]表示粒子速度,i表示粒子初始的坐标,取值有三种,分别对应三维空间的x,y,z方向的坐标,vecinit表示粒子速度的初始量,vecnum表示为速度变化范围的参考量,rand()÷doubel(RAND_MAX)表示取值于(a,b)的随机数;
粒子的初始加速度算式如下:
ParticleAcc[i]=acc_force[i]+other_acc
其中,ParticleAcc[i]表示粒子的加速度,acc_force[i]表示粒子相互作用力对该离子加速度的影响,other_acc表示其他作用力产生的影响。
5.根据权利要求4所述的一种基于SPH的混合粒子血液模型的流血仿真方法,其特征在于:所述步骤4具体包括:
每个粒子受到的压力分别计算:
l为支持域中不同种粒子的数量,hc为不同种类粒子的光滑长度;
光滑核函数:
其拉普拉斯算子为:
粒子收到的压强为:
p=k(ρ-ρ0)
式中k在某些恒定条件下为常量,ρ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时刻粒子的位置。
8.根据权利要求7所述的一种基于SPH的混合粒子血液模型的流血仿真方法,其特征在于:所述步骤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)为高斯函数,σ为标准差,高斯函数区分为流体表面和背景两种情况;
光照处理:在获取相应坐标深度数据时,粒子的坐标由世界空间坐标系转换为屏幕空间坐标系,将该粒子与邻域粒子进行有限差分,从而计算出粒子对应的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表示镜面光。
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 true CN111047707A (zh) | 2020-04-21 |
CN111047707B 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) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112784471A (zh) * | 2021-01-26 | 2021-05-11 | 郑州轻工业大学 | 水环境可视仿真方法、终端设备以及计算机可读存储介质 |
CN112906323A (zh) * | 2021-04-08 | 2021-06-04 | 兰州大学 | 一种虚拟肝静脉压力梯度测量方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130191100A1 (en) * | 2012-01-19 | 2013-07-25 | Siemens Aktiengesellschaft | Blood flow computation in vessels with implanted devices |
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的流体凝固模拟方法及系统 |
-
2019
- 2019-11-11 CN CN201911095696.XA patent/CN111047707B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103917164A (zh) * | 2011-08-26 | 2014-07-09 | Ebm株式会社 | 血管血流模拟的系统、其方法及计算机软件程序 |
US20130191100A1 (en) * | 2012-01-19 | 2013-07-25 | Siemens Aktiengesellschaft | Blood flow computation in vessels with implanted devices |
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 |
---|
SAITO RYUSUKE ET AL.: "Simulation of blood flow in microvessel with SPH method", 《THE PROCEEDINGS OF IBARAKI DISTRICT CONFERENCE》 * |
李忠态: "基于SPH和流体动力学的皮肤表面上三维流血模拟", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112784471A (zh) * | 2021-01-26 | 2021-05-11 | 郑州轻工业大学 | 水环境可视仿真方法、终端设备以及计算机可读存储介质 |
CN112784471B (zh) * | 2021-01-26 | 2022-09-23 | 郑州轻工业大学 | 水环境可视仿真方法、终端设备以及计算机可读存储介质 |
CN112906323A (zh) * | 2021-04-08 | 2021-06-04 | 兰州大学 | 一种虚拟肝静脉压力梯度测量方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111047707B (zh) | 2021-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10083538B2 (en) | Variable resolution virtual reality display system | |
CN104794758B (zh) | 一种三维图像的裁剪方法 | |
CN107633123B (zh) | 一种用于光滑粒子流体动力学模拟出血及处理加速的方法 | |
Tevs et al. | Maximum mipmaps for fast, accurate, and scalable dynamic height field rendering | |
CN111047707B (zh) | 一种基于sph的混合粒子血液模型的流血仿真方法 | |
KR100568563B1 (ko) | 입자동역학 해석기법과 볼륨렌더링 기법을 이용한 실시간 유체유동 시뮬레이션 및 렌더링 방법 | |
Jung et al. | Using X3D for medical training simulations | |
CN110443872B (zh) | 一种具备动态纹理细节的表情合成方法 | |
Lim et al. | Soft tissue deformation and cutting simulation for the multimodal surgery training | |
Wei et al. | Function-based approach to mixed haptic effects rendering | |
CN105006009A (zh) | 一种2d水体模拟方法 | |
Harders et al. | Virtual reality based simulation of hysteroscopic interventions | |
Nishidate et al. | Fast water animation using the wave equation with damping | |
Song | Dynamic deformation of uniform elastic two-layer objects | |
Xue-mei et al. | Bleeding simulation based particle system for surgical simulator | |
Vines et al. | Haptic display of 3D liquids for interactive applications | |
Gao et al. | Blood flow simulation of virtual simulation system for vascular interventional surgery | |
Wang | Graphics Technologies and Next-Generation Games in the Last 10 Years | |
Choi et al. | Haptic Rendering in Interactive Applications Developed with Commodity Physics Engine. | |
Bajo et al. | A Comprehensive Method for Liquid-to-Solid Interactions | |
Inácio et al. | Interactive simulation and visualization of fluids with surface raycasting | |
Hu et al. | Contained fluid simulation based on game engine | |
Lin et al. | Particle System Applied to Simulation Technology of Transformation between Fluid and Moving Solid | |
Boutsikas | Decoupling Shading from Rendering Rate: An Analysis on Object Space Shading | |
Müller | Volume modelling and rendering based on 3D voxel grids |
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 |