本发明涉及数据处理领域,具体而言,涉及一种基于高斯泼溅的渲染方法、装置、电子设备及存储介质。
背景技术:
1、传统的渲染通常是基于三维模型进行的,场景三维模型是由若干顶点构成,三个顶点构成的三角面片作为最小渲染单元,渲染时会用到每个顶点的位置、大小、颜色和透明度等信息。而区别于传统的渲染方式,当下新兴的高斯泼溅技术是以高斯椭球来作为最小渲染单元,渲染场景包括若干高斯椭球,单个高斯椭球携带有位置(即在场景中的三维坐标)、协方差(反映椭球如何缩放或拉伸)、颜色和alpha(透明度)等信息,故可以抽象地将高斯椭球理解成在不同角度看到不同大小、颜色和透明度的点,以下简称高斯椭球为高斯点。例如,图1中即示出了三个不同颜色、位置的高斯点,每个高斯点呈现为椭球状(图1中的椭圆球线条仅为了辅助观看,实质并不存在)。
2、高斯泼溅技术需要预先将待渲染三维场景中的每个点云转换为高斯点,得到待渲染三维场景的高斯泼溅文件,从而即可以基于高斯泼溅文件进行渲染。通常情况下,高斯泼溅文件中的高斯点数量取决于场景规模和渲染精度需求,例如直径一公里左右的户外场景的高斯泼溅文件中的高斯点数量可达百万级,甚至千万级。因此,高斯泼溅场景的渲染对设备算力要求很高,难以普及。
技术实现思路
1、本发明的目的在于提供一种基于高斯泼溅的渲染方法、装置、电子设备及存储介质,以改善现有技术存在的问题。
2、本发明的实施例可以这样实现:
3、第一方面,本发明提供一种基于高斯泼溅的渲染方法,包括:
4、获取待渲染三维场景的高斯泼溅文件、三维网格模型以及所述三维网格模型对应的八叉树;所述高斯泼溅文件包括若干高斯点,所述三维网格模型包括若干网格;
5、计算默认渲染模式的最大可渲染高斯点数量;
6、基于角色所在网格、所述最大可渲染高斯点数量以及预设的渲染比例组,计算所述八叉树的lod层级数据;所述渲染比例组反映以所述角色所在网格为中心向外扩散的各个网格中待渲染高斯点数量占比逐渐降低;
7、基于所述八叉树的lod层级数据,确定所述三维网格模型中存在的每个激活网格;
8、基于所述渲染比例组,从所述高斯泼溅文件中采样出每个所述激活网格内的所有待渲染高斯点;
9、对所有激活网格内的待渲染高斯点进行深度排序得到有序待渲染高斯点数组;所述有序待渲染高斯点数组用于渲染出所述待渲染三维场景的场景图像。
10、第二方面,本发明提供一种基于高斯泼溅的渲染装置,包括:
11、获取模块,用于获取待渲染三维场景的高斯泼溅文件、三维网格模型以及所述三维网格模型对应的八叉树;所述高斯泼溅文件包括若干高斯点,所述三维网格模型包括若干网格;
12、高斯点计算模块,用于计算默认渲染模式的最大可渲染高斯点数量;
13、层级更新模块,用于基于角色所在网格、所述最大可渲染高斯点数量以及预设的渲染比例组,计算所述八叉树的lod层级数据;所述渲染比例组反映以所述角色所在网格为中心向外扩散的各个网格中待渲染高斯点数量占比逐渐降低;
14、网格确定模块,用于基于所述八叉树的lod层级数据,确定所述三维网格模型中存在的每个激活网格;
15、采样模块,用于基于所述渲染比例组,从所述高斯泼溅文件中采样出每个所述激活网格内的所有待渲染高斯点;
16、深度排序模块,用于对所有激活网格内的待渲染高斯点进行深度排序得到有序待渲染高斯点数组;所述有序待渲染高斯点数组用于渲染出所述待渲染三维场景的场景图像。
17、第三方面,本发明提供一种电子设备,包括:存储器和处理器,所述存储器存储有软件程序,当所述电子设备运行时所述处理器执行所述软件程序以实现如前述第一方面所述的基于高斯泼溅的渲染方法。
18、第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的基于高斯泼溅的渲染方法。
19、与现有技术相比,本发明实施例提供了一种基于高斯泼溅的渲染方法、装置、电子设备及存储介质,首先获取待渲染三维场景的高斯泼溅文件、三维网格模型以及三维网格模型对应的八叉树;高斯泼溅文件包括若干高斯点,三维网格模型包括若干网格;计算默认渲染模式的最大可渲染高斯点数量;基于角色所在网格、最大可渲染高斯点数量以及预设的渲染比例组,计算八叉树的lod层级数据;渲染比例组反映以角色所在网格为中心向外扩散的各个网格中待渲染高斯点数量占比逐渐降低;基于八叉树的lod层级数据,确定三维网格模型中存在的每个激活网格;基于渲染比例组,从高斯泼溅文件中采样出每个激活网格内的所有待渲染高斯点;对所有激活网格内的待渲染高斯点进行深度排序得到有序待渲染高斯点数组;有序待渲染高斯点数组用于渲染出待渲染三维场景的场景图像。如此,根据角色所在网格、最大可渲染高斯点数量以及渲染比例组计算八叉树的lod层级数据以进一步确定所有激活网格,最后基于渲染比例组来采样出每个激活网格中的所有待渲染高斯点,最终对所有待渲染高斯点进行深度排序后进行渲染。这样,在保证角色所在网格及其周围的渲染效果的同时减少了高斯点的渲染数量,有效降低了渲染所需的算力。
1.一种基于高斯泼溅的渲染方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述目标模式的理想目标帧率、初始高斯点数量和初始步长,计算所述目标模式的最大可渲染高斯点数量的步骤,包括:
3.根据权利要求1所述的方法,其特征在于,所述八叉树包括若干叶子节点,每个所述叶子节点对应所述三维网格模型中的一个网格;所述lod层级数据包括每个所述叶子节点的lod层级,所述lod层级包括核心层级、第一层级、第二层级以及第三层级;所述渲染比例组包括各个层级各自对应的待渲染高斯点数量占比,且所述待渲染高斯点数量占比从所述核心层级至所述第三层级逐渐降低;
4.根据权利要求1所述的方法,其特征在于,所述八叉树包括若干叶子节点,每个所述叶子节点对应所述三维网格模型中的一个网格;所述lod层级数据包括每个所述叶子节点的lod层级,所述lod层级包括核心层级、第一层级、第二层级以及第三层级;
5.根据权利要求1所述的方法,其特征在于,所述八叉树包括若干叶子节点,每个所述叶子节点对应所述三维网格模型中的一个网格;所述lod层级数据包括每个所述叶子节点的lod层级,所述lod层级包括核心层级、第一层级、第二层级以及第三层级;所述渲染比例组包括各个层级各自对应的待渲染高斯点数量占比,且所述待渲染高斯点数量占比从所述核心层级至所述第三层级逐渐降低;所述高斯点携带有颜色;
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
7.一种基于高斯泼溅的渲染装置,其特征在于,包括:
8.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器存储有软件程序,当所述电子设备运行时所述处理器执行所述软件程序以实现如权利要求1-6中任一项所述的基于高斯泼溅的渲染方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6中任一项所述的基于高斯泼溅的渲染方法。