动态粒子集合的表面渲染方法及系统技术方案

技术编号:16380873 阅读:215 留言:0更新日期:2017-10-15 16:15
一种动态粒子集合的表面渲染方法及系统,首先记录目标流体粒子位置数据,通过粒子溅射方法得到粒子集合的深度图并作为流体表面预估,经过光线投射过程查找等值面,并采用GPU并行加速来加速光线投射过程,通过对每个粒子的邻域粒子集的主成分分析来估计流体表面法向量并得到表面法向量图,最后将表面法向量图导入光线追踪器中得到表面渲染结果,本发明专利技术将内存与计算资源集中在实际流体表面附近,而不是整个模拟空间,适用于对大规模粒子集合的实时可视化和表面预览,有效地排除噪音干扰,得到了相对平滑的法向量结果,容易嵌入到已有的流体模拟框架中。

Surface rendering method and system for dynamic particle set

A method and system for surface rendering dynamic particle collection, the first records the target fluid particle position data through particle sputtering depth map and particle set as fluid surface estimates, after ray casting process to find the isosurface, and using GPU parallel acceleration to accelerate ray casting process, principal component analysis through the neighborhood of each particle particle the set is used to estimate the fluid surface vectors and surface normal vector, finally will get the results of the surface rendering of the surface normal vector into a ray tracer, the memory and computing resources are concentrated in the vicinity of the actual fluid surface, rather than the entire simulation space, suitable for real-time visualization of large-scale particle collection and surface preview. Effectively eliminate the noise, get the vector method is relatively smooth, easy to be embedded into the existing fluid Simulation framework.

【技术实现步骤摘要】
动态粒子集合的表面渲染方法及系统
本专利技术涉及的是一种图形处理领域的技术,具体是一种动态粒子集合的表面渲染方法及系统。
技术介绍
基于粒子的拉格朗日方法,可以比较快速的进行流体模拟。但是对于动态粒子集合的表面渲染质量差,表面不平滑甚至能看到表面突出的粒子小球,或者表面过于平滑而模糊了大量流体细节。目前的渲染技术对内存要求高,渲染一帧图像就需要几分钟甚至更长的时间。
技术实现思路
本专利技术针对现有技术中采用双边滤波方法对深度图得到的平滑结果失真较为严重,无法满足高精度高质量的大规模粒子模拟的需求,并且现有技术多通过叉乘切向量求像素法向,导致法向结果精确性无法得到保证,无法适用于独立粒子渲染等缺陷,提出一种动态粒子集合的表面渲染方法及系统。本专利技术是通过以下技术方案实现的:本专利技术涉及一种动态粒子集合的表面渲染方法,首先记录目标流体粒子位置数据,通过粒子溅射方法得到粒子集合的深度图并作为流体表面预估,经过光线投射过程查找等值面,并采用GPU并行加速来加速光线投射过程,通过对每个粒子的邻域粒子集进行主成分分析来估计流体表面法向量并得到表面法向量图,最后将表面法向量图导入光线追踪器中得到表面渲染结果。本专利技术具体包括以下步骤:1)采用基于粒子的流体模拟方法进行流体模拟,并记录每一帧流体粒子的粒子位置数据;2)对粒子位置数据进行解析,并采用粒子溅射方法进行表面深度估计,得到深度图;3)将深度图作为流体表面的预估,采用光线投射方法,通过SPH密度估计方程定义的标量场来确定等值面,并同时采用GPU并行加速来加速光线投射与采样计算过程;4)通过主成分分析来估计流体表面法向量并得到表面法向量图;5)将表面法向量图导入光线追踪器中得到表面渲染结果。所述的步骤2)具体包括以下步骤:2.1)采用具有深度偏移的点精灵渲染方式将所有的粒子位置快速渲染成较大的实心球;2.2)通过深度测试得到深度图;2.3)调节渲染半径,使得深度图接近实际表面。所述的SPH密度估计方程定义的标量值其中:xi沿光线的采样位置,mj为粒子质量,pj为粒子的位置,r为采样半径。所述的GPU并行加速是指令每一个线程对应一个像素光线,沿着投射的射线方向对流体粒子进行间隔采样并计算密度值直到满足定义等值面要求而停止,并将所有光线采样次数接近一致。所述的步骤4)具体包括以下步骤:4.1)基于标准的SPH梯度计算,使用Spiky核函数,计算近似法向量4.2)构造xi处协方差矩阵其中:W(xi-pj,R)=1-(||xi-pj||/R)3;4.3)采用雅克比迭代求解协方差矩阵Ci的三对特征值和特征向量,得到最小特征值对应的特征向量Ni”;4.4)计算表面法向量Ni=(1-ω)Ni+ωNi,得到表面法向量图,其中:所述的表面法向量图采用双边滤波平滑结果。本专利技术涉及一种实现上述方法的动态粒子集合的表面渲染系统,包括:位置记录模块、表面深度估计模块、光线投射模块、等值面提取模块、GPU并行加速模块以及表面法向量计算模块,其中:位置记录模块记录粒子位置数据并输送到表面深度估计模块,表面深度估计模块进行表面深度估计后得到深度图,光线投射模块根据深度图进行光线投射,GPU并行加速模块对光线投射过程进行加速,等值面提取模块在光线投射过程中提取等值面,表面法向量计算模块根据等值面计算表面法向量并得到表面法向量图。技术效果与现有技术相比,本专利技术将内存与计算资源集中在实际流体表面附近,而不是整个模拟空间,适用于对大规模粒子集合的实时可视化和表面预览,有效地排除噪音干扰,得到了相对平滑的法向量结果,容易嵌入到已有的流体模拟框架中。附图说明图1为本专利技术流程示意图;图2为渲染结果对比图。具体实施方式本实施例中,采用一立方米水由水池上方自由落入水池的场景作为渲染场景,该场景中,对光线与背景的折射,以及对光线的反射,都可以较为逼真的被展现出来。同时,在渲染过程中,流体本身的物理细节和特征也得以充分展现。如图1所示,渲染方法中,首先记录目标流体粒子位置数据,通过粒子溅射方法得到粒子集合的深度图并作为流体表面预估,经过光线投射过程查找等值面,并采用GPU并行加速来加速光线投射过程,通过对每个粒子的邻域粒子集进行主成分分析来估计流体表面法向量并得到表面法向量图,即针对每个粒子以其本身为圆心将固定半径的球形区域内所包含的所有粒子作为主成分分析对象从而估计流体表面法向得到表面法向量图,最后将表面法向量图导入光线追踪器中得到表面渲染结果。具体包括以下步骤:1)采用基于粒子的流体模拟方法进行流体模拟,并记录每一帧流体粒子的粒子位置数据。2)对粒子位置数据进行解析,并采用粒子溅射方法进行表面深度估计,得到深度图。2.1)采用具有深度偏移的点精灵渲染方式将所有的粒子位置快速渲染成较大的实心球。即采用有纹理映射并能改变大小的特殊点元,将所有的粒子快速渲染成实心球。2.2)通过显卡的深度测试能力得到深度图。2.3)调节渲染半径,使得深度图接近实际表面。使用深度图作为流体表面的预估,辅助光线查找等值面,省略了相机到实际表面的大量空白区域计算。3)将深度图作为流体表面的预估,采用光线投射方法,通过SPH密度估计方程定义的标量场来确定等值面,并采用GPU并行加速来加速光线投射过程。所述的等值面是指在计算光线投射与采样的过程中,所设置与定义的终止曲面。在光线沿着投射的直线方向间隔对流体粒子进行采样和密度值计算的过程中,定义采样终止值,形成终止曲面。所述的光线投射是指从相机原点对每一个像素点投射出一条光线,计算每一条光线与流体表面的交点,将所有表面交点放到一起,得到流体的整个表面,设置每一条光线的终止条件为采样达到定义的等值面值。光线不会穿入流体内部,所得到的表面为基于屏幕空间的,仅仅渲染得到最靠近相机的那一层流体表面。所述的SPH密度估计方程定义的标量场的标量值其中:xi沿光线的采样位置,mj为粒子质量,mj取值为1,pj为粒子的位置,r为采样半径。采用Poly6作为密度估计的平滑核函数。采样半径r大小设置为流体模拟的粒子影响半径h。光线投射方法是在GPU上实现,GPU并行加速是指令每一个线程对应一个像素光线,沿着投射的射线方向对流体粒子进行间隔采样并计算密度值直到满足定义等值面要求而停止,并将所有光线采样次数接近一致。4)通过主成分分析来估计流体表面法向量并得到表面法向量图。具体步骤包括:4.1)基于标准的SPH梯度计算,使用Spiky核函数,计算近似法向量4.2)构造xi处协方差矩阵其中:W(xi-pj,R)=1-(||xi-pj||/R)3。4.3)采用雅克比迭代求解协方差矩阵Ci的三对特征值和特征向量,得到最小特征值对应的特征向量Ni″。4.4)计算表面法向量Ni=(1-ω)Ni+ωNi,得到表面法向量图,其中:d为10,k为0.998。对于输出的法向量图像进行了一步双边滤波,进一步平滑所得结果。5)将表面法向量图导入光线追踪器中得到表面渲染结果。本实施例涉及一种实现上述方法的动态粒子集合的表面渲染系统,包括:位置记录模块,表面深度估计模块、光线投射模块、等值面提取模块、GPU并行加速模块以及表面法向量计算模块,其中:位置记录模块记录粒子位置数据并输送到表面深度估计模块,表面深度估计模块进行表面深度估计后得到深度图,本文档来自技高网...
动态粒子集合的表面渲染方法及系统

【技术保护点】
一种动态粒子集合的表面渲染方法,其特征在于,首先记录目标流体粒子位置数据,通过粒子溅射方法得到粒子集合的深度图并作为流体表面预估,经过光线投射过程查找等值面,并采用GPU并行加速来加速光线投射过程,通过对每个粒子的邻域粒子集进行主成分分析来估计流体表面法向量并得到表面法向量图,最后将表面法向量图导入光线追踪器中得到表面渲染结果。

【技术特征摘要】
1.一种动态粒子集合的表面渲染方法,其特征在于,首先记录目标流体粒子位置数据,通过粒子溅射方法得到粒子集合的深度图并作为流体表面预估,经过光线投射过程查找等值面,并采用GPU并行加速来加速光线投射过程,通过对每个粒子的邻域粒子集进行主成分分析来估计流体表面法向量并得到表面法向量图,最后将表面法向量图导入光线追踪器中得到表面渲染结果。2.根据权利要求1所述的动态粒子集合的表面渲染方法,其特征是,具体包括以下步骤:1)采用基于粒子的流体模拟方法进行流体模拟,并记录每一帧流体粒子的粒子位置数据;2)对粒子位置数据进行解析,并采用粒子溅射方法进行表面深度估计,得到深度图;3)将深度图作为流体表面的预估,采用光线投射方法,通过SPH密度估计方程定义的标量场来确定等值面,并同时采用GPU并行加速来加速光线投射与采样计算过程;4)通过主成分分析来估计流体表面法向量并得到表面法向量图;5)将表面法向量图导入光线追踪器中得到表面渲染结果。3.根据权利要求2所述的动态粒子集合的表面渲染方法,其特征是,所述的步骤2)具体包括以下步骤:2.1)采用具有深度偏移的点精灵渲染方式将所有的粒子位置快速渲染成较大的实心球;2.2)通过深度测试得到深度图;2.3)调节渲染半径,使得深度图接近实际表面。4.根据权利要求3所述的动态粒子集合的表面渲染方法,其特征是,所述的SPH密度估计方程定义的标量值其中:xi沿光线的采样位置,mj为粒子质量,pj为粒子的位置,r为...

【专利技术属性】
技术研发人员:杨旭波张帅肖祥云
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海,31

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

1