一种体积云渲染方法、装置、电子设备及存储介质制造方法及图纸

技术编号:27007761 阅读:21 留言:0更新日期:2021-01-08 17:13
本申请涉及一种体积云渲染方法、装置、电子设备及存储介质,该方法包括:将体积云的原网格模型按照顶点法线向量向外绘制至少一层网格模型;基于每层所述网格模型对应的噪声阈值对所述网格模型的像素点进行筛选,得到绘制模型;根据光照参数计算所述绘制模型对应的光照信息;根据所述光照信息对所述绘制模型进行渲染,得到待显示体积云。该技术方案体积云的形状基于网格模型确定,而不是通过噪声图的形状来确定,如果想要改变体积云的形状,仅需要设定额外绘制的层数以及筛选像素点的噪声阈值即可,则无需预先选取特定的噪声图;减少对噪声图的采用次数,也进一步降低了生成体积云的性能开销,使得体积云可以流畅地运行在移动端设备上。

【技术实现步骤摘要】
一种体积云渲染方法、装置、电子设备及存储介质
本申请涉及图像渲染
,尤其涉及一种体积云渲染方法、装置、电子设备及存储介质。
技术介绍
体积云是游戏户外场景中一个重要的组成部分,在大多数的小规模三维场景或者视点位于地面附近的场景的实时绘制系统中,体积云通常采用光线步进(RayMarching)或视差贴图方式绘制实现。RayMarching方式是通过将射线等长的向前拓展,采样3D噪声图,将多次采样结果叠加,生成体积云。视差贴图方式是通过一张高度图,计算像素点应该偏移的采样位置,进而欺骗人的眼睛,产生体积感。RayMarching方式的特点就是效果非常真实,但是随之而来的就是性能开销非常大,需要每次计算射线交点的位置,再去采样一张3D噪声图。而且体积云的形状需要通过3D噪声图的形状来决定,因而定制特定的形状就需要特定的噪声图。当场景里云的形状非常多的时候,就需要很多不同的噪声图。而视差贴图的特点是性能开销比较低,可以通过特定的算法来提高计算出来的偏移精度。但是,终究是欺骗眼睛的做法,当视线与模型表面有比较小的夹角的时候,体积感才会比较明显,当视线垂直于模型表面的时候,计算得出的偏移量为0,不会有体积感。而且在模型的边缘会有很强烈的穿帮现象。因此,急需一种效果真实且性能开销小的体积云渲染方法。
技术实现思路
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请实施例提供了一种体积云渲染方法、装置、电子设备及存储介质。根据本申请实施例的一个方面,提供了一种体积云渲染方法,包括:将体积云的原网格模型按照顶点法线方向向外绘制至少一层网格模型;基于每层所述网格模型对应的噪声阈值对所述网格模型的像素点进行筛选,得到绘制模型;根据光照参数计算所述绘制模型对应的光照信息;根据所述光照信息对所述绘制模型进行渲染,得到待显示体积云。可选的,所述基于每层所述网格模型对应的噪声阈值对所述网格模型的像素点进行筛选,得到绘制模型,包括:获取每层所述网格模型对应的噪声阈值;基于每层所述网格模型对预设噪声图进行采样,得到噪声值;对每层所述网格模型筛选所述噪声阈值小于或等于所述噪声值的像素点,得到所述绘制模型。可选的,所述获取每层所述网格模型对应的噪声阈值,包括:获取每层所述网格模型对应的噪声函数,所述噪声函数为以所述像素点的坐标为变量的线性函数;根据所述噪声函数得到每层所述网格模型像素点对应的噪声边界值;对所述噪声边界值进行幂运算,得到所述噪声阈值。可选的,所述根据光照参数计算所述绘制模型对应的光照信息之前,所述方法还包括:将所述原网格模型的顶点坐标作为第一输入参数输入图形处理器中的第一着色器;通过带所述第一输入参数的第一着色器,得到所述绘制模型的顶点坐标。可选的,所述根据所述光照信息对所述绘制模型进行渲染,包括:将所述原网格模型的顶点数据缓存至显存中;将每层所述网格模型对应的绘制命令进行排序并合批后,将得到的合批命令添加至命令缓冲区;由图形处理器从所述命令缓冲区读取所述合批命令,基于所述合批命令及所述原网格模型的顶点数据执行渲染操作。可选的,所述根据所述光照信息对所述绘制模型进行渲染,还包括:根据每层所述网格模型对应的噪声阈值及每层所述网格模型相对于所述原网格模型的偏移量,生成材质属性块;将所述材质属性块作为第二输入参数输入所述图形处理器中的第二着色器;所述由图形处理器从所述命令缓冲区读取所述合批命令,基于所述合批命令及所述原网格模型的顶点数据执行渲染操作,包括:由带所述第二输入参数的第二着色器,根据所述合批命令及所述原网格模型的顶点数据进行所述体积云的渲染。可选的,所述根据光照参数计算所述绘制模型对应的光照信息,包括:根据所述绘制模型各像素点的法线向量及光照方向向量计算各所述像素点对应的第一漫反射信息;将所述第一漫反射信息作为所述光照参数;基于所述光照参数计算各所述像素点对应的像素颜色,得到所述光照信息。可选的,所述根据光照参数计算所述绘制模型对应的光照信息,还包括:对所述第一漫反射信息进行半兰博计算,得到半兰博光照参数;获取每层所述网格模型对应的噪声阈值;根据所述噪声阈值及所述半兰博光照参数,拟合得到各所述像素点的第二漫反射信息;将所述第二漫反射信息作为所述光照参数。可选的,所述根据光照参数计算所述绘制模型对应的光照信息,还包括:根据背光次表面散射参数及观察者视线方向向量计算各所述像素点的后向次表面散射信息;根据向光次表面散射参数及所述观察者视线方向向量计算各所述像素点的前向次表面散射信息;获取所述前向次表面散射信息对应的影响因子;根据所述前向次表面散射信息与所述影响因子的乘积,以及所述后向次表面散射信息,得到总次表面散射信息;将所述总次表面散射信息作为所述光照参数。可选的,所述根据光照参数计算所述绘制模型对应的光照信息,还包括:根据定义的光源阴影,对阴影纹理进行采样,得到阴影参数;将所述阴影参数随着与相机距离的增加进行衰减计算,得到所述绘制模型各像素点对应的阴影信息;将所述阴影信息作为所述光照参数。可选的,所述根据光照参数计算所述绘制模型对应的光照信息,还包括:根据所述绘制模型的表面法线向量及观察者视线方向向量计算各所述像素点的第一镜面反射信息;根据所述噪声阈值及所述第一镜面反射信息,拟合得到各所述像素点的第二镜面反射信息;将所述第一镜面反射信息和所述第二镜面反射信息作为所述光照参数。可选的,所述根据光照参数计算所述绘制模型对应的光照信息,包括:获取环境光参数和主光源参数;基于所述光照参数、环境光参数及主光源参数计算各所述像素点对应的像素颜色,得到所述光照信息。可选的,所述根据所述光照信息对所述绘制模型进行渲染,得到待显示体积云,包括:根据渲染前各像素点的深度值及所述体积云的深度值,进行边缘检测;根据边缘检测结果确定与所述体积云重合的待混合物体;将所述待混合物体及体积云进行半透明混合,基于半透明混合结果得到所述待显示体积云。可选的,所述根据所述光照信息对所述绘制模型进行渲染之后,得到待显示体积云之前,所述将所述待混合物体及体积云进行半透明混合,基于半透明混合结果得到所述待显示体积云,包括:确定所述待混合物体与体积云的重合像素点;采样得到所述重合像素点渲染前的第一颜色缓冲值和第一深度缓冲值,以及所述重合像素点渲染后的第二颜色缓冲值和第二深度缓冲值;将所述第一颜色缓冲值作为插值计算器的起始位置输入参数,所述第二颜色缓冲值作为所述插值计算器的目标位置输入参数,所述第一深度缓冲值与所述第二深度缓冲值的差值作为所述插值计算器的插值速度输入参数,得到所述插值计算器本文档来自技高网...

【技术保护点】
1.一种体积云渲染方法,其特征在于,包括:/n将体积云的原网格模型按照顶点法线方向向外绘制至少一层网格模型;/n基于每层所述网格模型对应的噪声阈值对所述网格模型的像素点进行筛选,得到绘制模型;/n根据光照参数计算所述绘制模型对应的光照信息;/n根据所述光照信息对所述绘制模型进行渲染,得到待显示体积云。/n

【技术特征摘要】
1.一种体积云渲染方法,其特征在于,包括:
将体积云的原网格模型按照顶点法线方向向外绘制至少一层网格模型;
基于每层所述网格模型对应的噪声阈值对所述网格模型的像素点进行筛选,得到绘制模型;
根据光照参数计算所述绘制模型对应的光照信息;
根据所述光照信息对所述绘制模型进行渲染,得到待显示体积云。


2.根据权利要求1所述的方法,其特征在于,所述基于每层所述网格模型对应的噪声阈值对所述网格模型的像素点进行筛选,得到绘制模型,包括:
获取每层所述网格模型对应的噪声阈值;
基于每层所述网格模型对预设噪声图进行采样,得到噪声值;
对每层所述网格模型筛选所述噪声阈值小于或等于所述噪声值的像素点,得到所述绘制模型。


3.根据权利要求2所述的方法,其特征在于,所述获取每层所述网格模型对应的噪声阈值,包括:
获取每层所述网格模型对应的噪声函数,所述噪声函数为以所述像素点的坐标为变量的线性函数;
根据所述噪声函数得到每层所述网格模型像素点对应的噪声边界值;
对所述噪声边界值进行幂运算,得到所述噪声阈值。


4.根据权利要求1所述的方法,其特征在于,所述根据光照参数计算所述绘制模型对应的光照信息之前,所述方法还包括:
将所述原网格模型的顶点坐标作为第一输入参数输入图形处理器中的第一着色器;
通过带所述第一输入参数的第一着色器,得到所述绘制模型的顶点坐标。


5.根据权利要求2所述的方法,其特征在于,所述根据所述光照信息对所述绘制模型进行渲染,包括:
将所述原网格模型的顶点数据缓存至显存中;
将每层所述网格模型对应的绘制命令进行排序并合批后,将得到的合批命令添加至命令缓冲区;
由图形处理器从所述命令缓冲区读取所述合批命令,基于所述合批命令及所述原网格模型的顶点数据执行渲染操作。


6.根据权利要求5所述的方法,其特征在于,所述根据所述光照信息对所述绘制模型进行渲染,还包括:
根据每层所述网格模型对应的噪声阈值及每层所述网格模型相对于所述原网格模型的偏移量,生成材质属性块;
将所述材质属性块作为第二输入参数输入所述图形处理器中的第二着色器;
所述由图形处理器从所述命令缓冲区读取所述合批命令,基于所述合批命令及所述原网格模型的顶点数据执行渲染操作,包括:
由带所述第二输入参数的第二着色器,根据所述合批命令及所述原网格模型的顶点数据进行所述体积云的渲染。


7.根据权利要求1所述的方法,其特征在于,所述根据光照参数计算所述绘制模型对应的光照信息,包括:
根据所述绘制模型各像素点的法线向量及光照方向向量计算各所述像素点对应的第一漫反射信息;
将所述第一漫反射信息作为所述光照参数;
基于所述光照参数计算各所述像素点对应的像素颜色,得到所述光照信息。


8.根据权利要求7所述的方法,其特征在于,所述根据光照参数计算所述绘制模型对应的光照信息,还包括:
对所述第一漫反射信息进行半兰博计算,得到半兰博光照参数;
获取每层所述网格模型对应的噪声阈值;
根据所述噪声阈值及所述半兰博光照参数,拟合得到各所述像素点的第二漫反射信息;
将所述第二漫反射信息作为所述光照参数。


9.根据权利要求7所述的方法,其特征在于,所述根据光照参数计算所述绘制模型对应的光照信息,还包括:
根据背光次表面散射参数及观察者视线方向向量计算各所述像素点的后向次表面散射信息;
根据向光次表面散射参数及所述观察者视线方向向量计算各所述像素点的前向次表面散射信息;
获取所述前向次表面散射信息对应的影响因子;
根据所述前向次表面散射信息与所述影响因子的乘积,以及所述后向次表面散射信息,得到总次表面散射信息;
将所述总次表面散射信息作为所述光照参数。


10.根据权利要求7所述的方法,其特征在于,所述根据光照参数计算所述绘制模型对应的光照信息,还包括:
根据定义的光源阴影,对阴影纹理进行采样,得到...

【专利技术属性】
技术研发人员:申晨
申请(专利权)人:成都完美时空网络技术有限公司
类型:发明
国别省市:四川;51

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

1