光照贴图的生成方法和装置、存储介质及电子设备与流程

摘要: 本技术涉及计算机领域,具体而言,涉及一种光照贴图的生成方法和装置、存储介质及电子设备。背景技术:1、为了提升玩家在游戏互动中的沉浸式体验感,各个游戏开发方都在不...
光照贴图的生成方法和装置、存储介质及电子设备与流程

本技术涉及计算机领域,具体而言,涉及一种光照贴图的生成方法和装置、存储介质及电子设备。

背景技术:

1、为了提升玩家在游戏互动中的沉浸式体验感,各个游戏开发方都在不断地为优化游戏画面的视觉效果而投入资源。其中,影响游戏画面的视觉效果的最重要的元素就是画面中所呈现的光照效果。

2、目前,在游戏画面的渲染过程中,考虑到对画面中虚拟场景的全局光照渲染,常用的方式是调用渲染引擎的光照贴图烘焙功能,而对整个场景进行光照贴图的烘焙计算。也就是提前计算出游戏画面中每个像素的光照信息,并将这些光照信息映射到光照贴图中进行保存,然后使用该光照贴图来将复杂的光照效果实时渲染到画面中的虚拟对象模型上,从而实现减轻渲染引擎的性能负担的目的。

3、然而,在采用上述相关技术提供的方式生成的光照贴图中,各个虚拟对象模型对应的光照信息的存储位置,往往是基于该虚拟对象模型在虚拟场景中的原始显示位置而确定的。也就是说,原始显示位置相对分散的虚拟对象模型的光照信息,在光照贴图中的存储位置也是离散的,这就使得光照贴图中的部分存储空间无法被实际有效的光照信息占用存储,从而导致所生成的光照贴图的空间利用率较低。

4、针对上述的问题,目前尚未提出有效的解决方案。

技术实现思路

1、本技术实施例提供了一种光照贴图的生成方法和装置、存储介质及电子设备,以至少解决虚拟对象模型的原始显示位置分散导致光照贴图的空间利用率低的技术问题。

2、根据本技术实施例的一个方面,提供了一种光照贴图的生成方法,包括:确定目标游戏画面中包含的至少两个静态虚拟对象;将上述至少两个静态虚拟对象各自对应的对象模型网格信息进行合并,得到全局对象模型网格信息,其中,上述全局对象模型网格信息用于构建包含上述至少两个静态虚拟对象的全局静态虚拟对象;从上述全局对象模型网格信息中,获取上述全局静态虚拟对象中每个局部虚拟对象各自对应的对象模型网格统计信息,其中,每个上述局部虚拟对象分别与每个上述静态虚拟对象各自对应;基于上述对象模型网格统计信息,确定出每个上述局部虚拟对象各自的光照信息所要存储的贴图位置区域的区域描述信息,其中,不同的上述局部虚拟对象各自对应的上述贴图位置区域具有相同的区域图形但具有不同的区域尺寸;利用上述区域描述信息生成与上述全局对象模型网格信息对应的全局光照贴图。

3、作为一种可选的实施方式,上述基于上述对象模型网格统计信息,确定出每个上述局部虚拟对象各自的光照信息所要存储的贴图位置区域的区域描述信息包括:为每个上述局部虚拟对象分别分配与上述对象模型网格统计信息相匹配的对象空间,其中,不同的上述对象空间具有相同的空间形状但具有不同的空间尺寸,上述空间尺寸与上述对象模型网格统计信息线性相关;将各个上述对象空间按照上述空间尺寸进行分别映射,以得到上述局部虚拟对象的光照信息在上述全局光照贴图中的贴图位置区域的区域描述信息,其中,每个上述对象空间分别映射为上述全局光照贴图中的一个贴图位置区域,上述区域描述信息包括区域尺寸和区域偏移。

4、作为一种可选的实施方式,上述为每个上述局部虚拟对象分别分配与上述对象模型网格统计信息相匹配的对象空间包括以下之一:将上述对象模型网格统计信息作为上述对象空间的空间描述参数;为上述局部虚拟对象分配与上述空间描述参数匹配的上述对象空间;或者对上述对象模型网格统计信息进行线性缩放,得到上述对象空间的空间描述参数;为上述局部虚拟对象分配与上述空间描述参数匹配的上述对象空间。

5、作为一种可选的实施方式,上述将各个上述对象空间按照上述空间尺寸进行分别映射,以得到上述局部虚拟对象的光照信息在上述全局光照贴图中的贴图位置区域的区域描述信息包括:将各个上述对象空间按照上述空间尺寸进行排序,得到对象空间序列;从上述对象空间序列依次确定出当前对象空间,并执行以下操作:对上述当前对象空间的空间尺寸按照映射缩放比例进行调整,得到上述当前对象空间对应的当前局部虚拟对象的光照信息所要存储的贴图位置区域的当前区域尺寸,其中,上述映射缩放比例是基于上述全局光照贴图的贴图尺寸和全局对象空间尺寸所确定的,上述全局对象空间尺寸是各个上述对象空间的空间尺寸进行累加的结果;在处于闲置状态的候选光照贴图中,为上述当前局部虚拟对象分配与上述当前区域尺寸相匹配的当前候选区域,并获取上述当前候选区域的区域位置坐标,其中,上述闲置状态下的上述候选光照贴图尚未被映射光照信息,上述区域位置坐标用于指示上述当前候选区域在上述候选光照贴图中的区域偏移;在上述对象空间序列中的各个对象空间各自对应的局部虚拟对象均已在上述候选光照贴图中被分配候选区域的情况下,基于上述候选光照贴图中各个候选区域的区域尺寸和区域位置坐标,确定出各个上述局部虚拟对象在上述全局光照贴图中的贴图位置区域的区域描述信息。

6、作为一种可选的实施方式,上述基于上述候选光照贴图中各个候选区域的区域尺寸和区域位置坐标,确定出各个上述局部虚拟对象在上述全局光照贴图中的贴图位置区域的区域描述信息包括:获取上述候选光照贴图的区域映射率;在上述区域映射率达到预设条件的情况下,将上述候选光照贴图作为上述全局光照贴图,并将上述候选光照贴图中各个候选区域的区域尺寸和区域位置坐标,分别作为各个上述局部虚拟对象在上述全局光照贴图中的贴图位置区域的区域描述信息;在上述区域映射率并未达到预设条件的情况下,调整上述候选光照贴图中各个候选区域的区域位置坐标,直至调整后的上述候选光照贴图的上述区域映射率达到上述预设条件。

7、作为一种可选的实施方式,上述将上述至少两个静态虚拟对象各自对应的对象模型网格信息进行合并,得到全局对象模型网格信息包括:将上述至少两个静态虚拟对象各自对应的对象模型网格顶点进行合并,得到顶点合集,并将上述顶点合集存储到顶点列表中;将上述至少两个静态虚拟对象各自对应的对象模型网格索引进行合并,得到索引合并数组;通过法线变换矩阵对上述至少两个静态虚拟对象各自对应的对象模型网格的法线向量进行变换,得到法线变换向量;合并上述法线变换向量,得到法线变换向量合集;将上述法线变换向量合集存储到法线列表中;基于上述顶点列表、上述索引合并数组和上述法线列表确定上述全局对象模型网格信息。

8、作为一种可选的实施方式,在上述将上述至少两个静态虚拟对象各自对应的对象模型网格索引进行合并,得到索引合并数组时,还包括以下之一:对上述索引合并数组中每个上述局部虚拟对象各自对应的对象模型网格的网格数量进行分别统计,得到上述局部虚拟对象各自对应的上述对象模型网格统计信息;或者对上述索引合并数组中每个上述局部虚拟对象各自对应的对象模型网格的网格面积平方根进行分别统计,得到上述局部虚拟对象各自对应的上述对象模型网格统计信息。

9、作为一种可选的实施方式,上述利用上述区域描述信息生成与上述全局对象模型网格信息对应的全局光照贴图包括:隐藏上述至少两个静态虚拟对象,并保留利用上述全局对象模型网格信息所创建的上述全局静态虚拟对象;将上述全局静态虚拟对象中每个局部虚拟对象各自的光照信息,分别添加到上述区域描述信息对应的贴图位置区域中,以生成上述全局静态虚拟对象的上述全局光照贴图。

10、作为一种可选的实施方式,在上述利用上述区域描述信息生成与上述全局对象模型网格信息对应的全局光照贴图之后,还包括:删除上述全局静态虚拟对象,并显示上述至少两个静态虚拟对象;从上述至少两个静态虚拟对象中确定出当前静态虚拟对象,并分别执行以下操作:为上述当前静态虚拟对象配置上述全局光照贴图;将上述全局光照贴图中与上述当前静态虚拟对象匹配的贴图位置区域内所存储的光照信息赋值给上述当前静态虚拟对象进行渲染。

11、根据本技术实施例的另一方面,还提供了一种光照贴图的生成装置,包括:第一确定单元,用于确定目标游戏画面中包含的至少两个静态虚拟对象;合并单元,用于将上述至少两个静态虚拟对象各自对应的对象模型网格信息进行合并,得到全局对象模型网格信息,其中,上述全局对象模型网格信息用于构建包含上述至少两个静态虚拟对象的全局静态虚拟对象;获取单元,用于从上述全局对象模型网格信息中,获取上述全局静态虚拟对象中每个局部虚拟对象各自对应的对象模型网格统计信息,其中,每个上述局部虚拟对象分别与每个上述静态虚拟对象各自对应;第二确定单元,用于基于上述对象模型网格统计信息,确定出每个上述局部虚拟对象各自的光照信息所要存储的贴图位置区域的区域描述信息,其中,不同的上述局部虚拟对象各自对应的上述贴图位置区域具有相同的区域图形但具有不同的区域尺寸;生成单元,用于利用上述区域描述信息生成与上述全局对象模型网格信息对应的全局光照贴图。

12、作为一种可选的实施方式,上述第二确定单元包括:分配模块,用于为每个上述局部虚拟对象分别分配与上述对象模型网格统计信息相匹配的对象空间,其中,不同的上述对象空间具有相同的空间形状但具有不同的空间尺寸,上述空间尺寸与上述对象模型网格统计信息线性相关;映射模块,用于将各个上述对象空间按照上述空间尺寸进行分别映射,以得到上述局部虚拟对象的光照信息在上述全局光照贴图中的贴图位置区域的区域描述信息,其中,每个上述对象空间分别映射为上述全局光照贴图中的一个贴图位置区域,上述区域描述信息包括区域尺寸和区域偏移。

13、作为一种可选的实施方式,上述分配模块包括以下之一:处理子模块,用于将上述对象模型网格统计信息作为上述对象空间的空间描述参数;第一分配子模块,用于为上述局部虚拟对象分配与上述空间描述参数匹配的上述对象空间;缩放子模块,用于或者对上述对象模型网格统计信息进行线性缩放,得到上述对象空间的空间描述参数;第二分配子模块,用于为上述局部虚拟对象分配与上述空间描述参数匹配的上述对象空间。

14、作为一种可选的实施方式,上述映射模块包括:排序子模块,用于将各个上述对象空间按照上述空间尺寸进行排序,得到对象空间序列;确定子模块,用于从上述对象空间序列依次确定出当前对象空间,并执行以下操作:对上述当前对象空间的空间尺寸按照映射缩放比例进行调整,得到上述当前对象空间对应的当前局部虚拟对象的光照信息所要存储的贴图位置区域的当前区域尺寸,其中,上述映射缩放比例是基于上述全局光照贴图的贴图尺寸和全局对象空间尺寸所确定的,上述全局对象空间尺寸是各个上述对象空间的空间尺寸进行累加的结果;在处于闲置状态的候选光照贴图中,为上述当前局部虚拟对象分配与上述当前区域尺寸相匹配的当前候选区域,并获取上述当前候选区域的区域位置坐标,其中,上述闲置状态下的上述候选光照贴图尚未被映射光照信息,上述区域位置坐标用于指示上述当前候选区域在上述候选光照贴图中的区域偏移;在上述对象空间序列中的各个对象空间各自对应的局部虚拟对象均已在上述候选光照贴图中被分配候选区域的情况下,基于上述候选光照贴图中各个候选区域的区域尺寸和区域位置坐标,确定出各个上述局部虚拟对象在上述全局光照贴图中的贴图位置区域的区域描述信息。

15、作为一种可选的实施方式,上述确定子模块还用于:获取上述候选光照贴图的区域映射率;在上述区域映射率达到预设条件的情况下,将上述候选光照贴图作为上述全局光照贴图,并将上述候选光照贴图中各个候选区域的区域尺寸和区域位置坐标,分别作为各个上述局部虚拟对象在上述全局光照贴图中的贴图位置区域的区域描述信息;在上述区域映射率并未达到预设条件的情况下,调整上述候选光照贴图中各个候选区域的区域位置坐标,直至调整后的上述候选光照贴图的上述区域映射率达到上述预设条件。

16、作为一种可选的实施方式,上述合并单元包括:第一合并模块,用于将上述至少两个静态虚拟对象各自对应的对象模型网格顶点进行合并,得到顶点合集,并将上述顶点合集存储到顶点列表中;第二合并模块,用于将上述至少两个静态虚拟对象各自对应的对象模型网格索引进行合并,得到索引合并数组;变换模块,用于通过法线变换矩阵对上述至少两个静态虚拟对象各自对应的对象模型网格的法线向量进行变换,得到法线变换向量;合并上述法线变换向量,得到法线变换向量合集;将上述法线变换向量合集存储到法线列表中;确定模块,用于基于上述顶点列表、上述索引合并数组和上述法线列表确定上述全局对象模型网格信息。

17、作为一种可选的实施方式,在上述第二合并模块还包括以下之一:第一统计子模块,用于对上述索引合并数组中每个上述局部虚拟对象各自对应的对象模型网格的网格数量进行分别统计,得到上述局部虚拟对象各自对应的上述对象模型网格统计信息;或者第二统计子模块,用于对上述索引合并数组中每个上述局部虚拟对象各自对应的对象模型网格的网格面积平方根进行分别统计,得到上述局部虚拟对象各自对应的上述对象模型网格统计信息。

18、作为一种可选的实施方式,上述生成单元包括:处理模块,用于隐藏上述至少两个静态虚拟对象,并保留利用上述全局对象模型网格信息所创建的上述全局静态虚拟对象;生成模块,用于将上述全局静态虚拟对象中每个局部虚拟对象各自的光照信息,分别添加到上述区域描述信息对应的贴图位置区域中,以生成上述全局静态虚拟对象的上述全局光照贴图。

19、作为一种可选的实施方式,上述装置还包括:第一处理单元,用于删除上述全局静态虚拟对象,并显示上述至少两个静态虚拟对象;第三确定单元,用于从上述至少两个静态虚拟对象中确定出当前静态虚拟对象,并分别执行以下操作:为上述当前静态虚拟对象配置上述全局光照贴图;将上述全局光照贴图中与上述当前静态虚拟对象匹配的贴图位置区域内所存储的光照信息赋值给上述当前静态虚拟对象进行渲染。

20、根据本技术实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述光照贴图的生成方法。

21、根据本技术实施例的又一个方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如以上光照贴图的生成方法。

22、根据本技术实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过所述计算机程序执行上述光照贴图的生成方法。

23、在本技术实施例中,在确定出目标游戏画面中包含的至少两个静态虚拟对象后,将至少两个静态虚拟对象各自对应的对象模型网格信息进行合并,得到全局对象模型网格信息,这里的全局对象模型网格信息用于构建包含至少两个静态虚拟对象的全局静态虚拟对象;从全局对象模型网格信息中获取上述全局静态虚拟对象中每个局部虚拟对象各自对应的对象模型网格统计信息,其中,每个局部虚拟对象分别与每个静态虚拟对象各自对应;基于获取到的对象模型网格统计信息,确定出每个局部虚拟对象各自的光照信息所要存储的贴图位置区域的区域描述信息,并利用区域描述信息生成与全局对象模型网格信息对应的全局光照贴图,其中,上述不同的局部虚拟对象各自对应的贴图位置区域具有相同的区域图形,但具有不同的区域尺寸。通过合并多个静态虚拟对象得到全局静态虚拟对象,并从全局对象模型网格信息中获取上述全局静态虚拟对象中每个局部虚拟对象各自对应的对象模型网格统计信息,从而能够基于获取到的对象模型网格统计信息确定出每个局部虚拟对象各自光照信息所要存储的贴图位置区域的区域描述信息,进而实现基于合并多个静态虚拟对象所得到的全局静态虚拟对象,确定全局静态虚拟对象中每个局部虚拟对象的光照信息在全局光照贴图中的贴图位置区域,避免了所生成的光照贴图中存在大量不被利用的存储空间所导致的空间浪费的问题,达到在光照贴图生成过程中灵活改变虚拟对象模型在光照贴图中的存储位置,以提高所生成的光照贴图的空间利用率的目的,进而解决了虚拟对象模型的原始显示位置分散导致光照贴图的空间利用率低的技术问题。