法律状态公告日
法律状态信息
法律状态
2019-12-10
授权
授权
2017-11-10
实质审查的生效 IPC(主分类):G06T15/00 申请日:20170524
实质审查的生效
2017-10-13
公开
公开
技术领域
本发明涉及的是一种图形处理领域的技术,具体是一种动态粒子集合的表面渲染方法及系统。
背景技术
基于粒子的拉格朗日方法,可以比较快速的进行流体模拟。但是对于动态粒子集合的表面渲染质量差,表面不平滑甚至能看到表面突出的粒子小球,或者表面过于平滑而模糊了大量流体细节。目前的渲染技术对内存要求高,渲染一帧图像就需要几分钟甚至更长的时间。
发明内容
本发明针对现有技术中采用双边滤波方法对深度图得到的平滑结果失真较为严重,无法满足高精度高质量的大规模粒子模拟的需求,并且现有技术多通过叉乘切向量求像素法向,导致法向结果精确性无法得到保证,无法适用于独立粒子渲染等缺陷,提出一种动态粒子集合的表面渲染方法及系统。
本发明是通过以下技术方案实现的:
本发明涉及一种动态粒子集合的表面渲染方法,首先记录目标流体粒子位置数据,通过粒子溅射方法得到粒子集合的深度图并作为流体表面预估,经过光线投射过程查找等值面,并采用GPU并行加速来加速光线投射过程,通过对每个粒子的邻域粒子集进行主成分分析来估计流体表面法向量并得到表面法向量图,最后将表面法向量图导入光线追踪器中得到表面渲染结果。
本发明具体包括以下步骤:
1)采用基于粒子的流体模拟方法进行流体模拟,并记录每一帧流体粒子的粒子位置数据;
2)对粒子位置数据进行解析,并采用粒子溅射方法进行表面深度估计,得到深度图;
3)将深度图作为流体表面的预估,采用光线投射方法,通过SPH密度估计方程定义的标量场来确定等值面,并同时采用GPU并行加速来加速光线投射与采样计算过程;
4)通过主成分分析来估计流体表面法向量并得到表面法向量图;
5)将表面法向量图导入光线追踪器中得到表面渲染结果。
所述的步骤2)具体包括以下步骤:
2.1)采用具有深度偏移的点精灵渲染方式将所有的粒子位置快速渲染成较大的实心球;
2.2)通过深度测试得到深度图;
2.3)调节渲染半径,使得深度图接近实际表面。
所述的SPH密度估计方程定义的标量值
所述的GPU并行加速是指令每一个线程对应一个像素光线,沿着投射的射线方向对流体粒子进行间隔采样并计算密度值直到满足定义等值面要求而停止,并将所有光线采样次数接近一致。
所述的步骤4)具体包括以下步骤:
4.1)基于标准的SPH梯度计算,使用Spiky核函数,计算近似法向量
4.2)构造xi处协方差矩阵
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密度估计方程定义的标量场的标量值
光线投射方法是在GPU上实现,GPU并行加速是指令每一个线程对应一个像素光线,沿着投射的射线方向对流体粒子进行间隔采样并计算密度值直到满足定义等值面要求而停止,并将所有光线采样次数接近一致。
4)通过主成分分析来估计流体表面法向量并得到表面法向量图。具体步骤包括:
4.1)基于标准的SPH梯度计算,使用Spiky核函数,计算近似法向量
4.2)构造xi处协方差矩阵
4.3)采用雅克比迭代求解协方差矩阵Ci的三对特征值和特征向量,得到最小特征值对应
的特征向量Ni″。
4.4)计算表面法向量Ni=(1-ω)Ni+ωNi,得到表面法向量图,其中:
5)将表面法向量图导入光线追踪器中得到表面渲染结果。
本实施例涉及一种实现上述方法的动态粒子集合的表面渲染系统,包括:位置记录模块,表面深度估计模块、光线投射模块、等值面提取模块、GPU并行加速模块以及表面法向量计算模块,其中:位置记录模块记录粒子位置数据并输送到表面深度估计模块,表面深度估计模块进行表面深度估计后得到深度图,光线投射模块根据深度图进行光线投射,GPU并行加速模块对光线投射过程进行加速,等值面提取模块在光线投射过程中提取等值面,表面法向量计算模块根据等值面计算表面法向量并得到表面法向量图。
如图2所示,三个渲染模型从左到右,依次为采用屏幕空间方法、各向异性渲染方法和本发明方法得到的渲染图。对同一动态粒子集合的表面提取结果中,屏幕空间渲染方法的输出结果所得到的表面质量很差。而采用各向异性核改进的屏幕空间方法的渲染结果,相比于直接的屏幕空间方法,表面平滑了很多,但是表面仍旧凹凸不平。很明显,相比于前两种实时渲染方法,本发明方法得到了更加平滑的表面。
同粒子数的不同场景进行了不同分辨率情况下的渲染实验,表1中列出了不同粒子情况下渲染所需的运行时间。从表1所列出的实验数据中,本发明方法可实时渲染包含超过两百万粒子的流体场景。特别地,我们能够在交互的水平下处理超过一亿两千万粒子的大规模场景。
表1不同分辨率粒子的渲染时间
与现有技术相比,本发明将内存与计算资源集中在实际流体表面附近,而不是整个模拟空间,适用于对大规模粒子集合的实时可视化和表面预览,利用其低通滤波特性,有效地排除噪音干扰,得到了相对平滑的法向量结果,本发明方法容易嵌入到已有的流体模拟框架中。
上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。
机译: 再生粒子集合体,再生粒子集合体的制造方法,其中含有再生粒子集合体的含有再生粒子集合体的纸,以及由该再生粒子集合体涂布的印刷用涂布纸
机译: 带电粒子束渲染设备,带电粒子束渲染系统和渲染数据生成方法
机译: 带电粒子束渲染设备,带电粒子束渲染系统和渲染数据生成方法