本发明涉及计算机,尤其涉及一种纹理压缩方法、装置、电子设备及存储介质。
背景技术:
1、纹理是一种贴图,通常广泛应用于模型表面,使得模型表现出丰富的细节。烘培是指将3d网格模型的全局光照信息保存成为纹理的过程,当光照事件发生时,直接渲染光照纹理,可以呈现出光照效果,从而不需要实时计算光照信息,可以节省性能开销,提升渲染速度,并且使得光照效果更加逼真,可以在保持较高渲染效果的同时保持较快的渲染速度。
2、然而,烘焙会产生大量的光照纹理,保存大量的光照纹理会导致内存压力增加;并且,在渲染过程中如果光照纹理过多,会增加上下文切换和绘制调用的次数,不仅会导致内存占用增加,还会导致图形处理器(graphics processing unit,gpu)的性能压力增加。
技术实现思路
1、本发明提供一种纹理压缩方法、装置、电子设备及存储介质,用以解决现有技术中渲染大量光照纹理时导致gpu性能压力和内存压力增加的缺陷,从而减少纹理数量,减小内存压力,减小gpu的性能压力。
2、本发明提供一种纹理压缩方法,包括:
3、获取待处理的纹理贴图,根据所述纹理贴图中的子图对所述纹理贴图进行分割,得到多个纹理子图;
4、针对每个纹理子图,根据所述纹理子图的像素值变化剧烈程度,确定所述纹理子图的压缩比例;其中,所述像素值变化剧烈程度根据所述纹理子图的像素值的方差确定;
5、根据每个纹理子图的压缩比例,对所述每个纹理子图进行降采样,得到缩小后的新纹理贴图。
6、根据本发明提供的一种纹理压缩方法,所述根据所述纹理子图的像素值变化剧烈程度,确定所述纹理子图的压缩比例,包括:
7、根据每个像素组组内的像素值的方差,确定每个像素组的压缩比例;
8、分别根据横向上和纵向上的像素组的压缩比例,确定所述纹理子图在横向上和纵向上的压缩比例。
9、根据本发明提供的一种纹理压缩方法,所述根据每个像素组组内的像素值的方差,确定每个像素组的压缩比例,包括:
10、若像素组组内的像素值的方差为0,则将所述像素组的新边长设置为固定参数值;和/或,
11、若像素组组内的像素值的方差大于第一方差阈值,则将所述像素组的新边长设置为旧边长;
12、计算所述像素组的新边长与旧边长的比值,得到所述像素组的压缩比例。
13、根据本发明提供的一种纹理压缩方法,所述根据每个像素组组内的像素值的方差,确定每个像素组的压缩比例,包括:
14、若像素组组内的像素值的方差小于等于第一方差阈值,则根据所述像素组组内的像素值的方差,计算所述像素组的新边长;
15、计算所述像素组的新边长与旧边长的比值,得到所述像素组的压缩比例。
16、根据本发明提供的一种纹理压缩方法,在所述根据每个像素组组内的像素值的方差,确定每个像素组的压缩比例之后,还包括:
17、计算所述像素组组内的相邻像素斜率的方差;
18、若所述相邻像素斜率的方差小于第二方差阈值,计算所述新边长与第一预设常数的比值,得到所述像素组的最终新边长;
19、计算所述像素组的最终新边长与旧边长的比值,得到所述像素组的最终压缩比例。
20、根据本发明提供的一种纹理压缩方法,所述根据所述像素组组内的像素值的方差,计算所述像素组的新边长,包括:
21、计算所述像素值的方差的平方根与第二预设常数的和值;
22、计算所述和值与第三预设常数的乘积,得到所述像素组的新边长。
23、根据本发明提供的一种纹理压缩方法,所述分别根据横向上和纵向上的像素组的压缩比例,确定所述纹理子图在横向上和纵向上的压缩比例,包括:
24、若同一方向上的所有像素组的压缩比例不为1,则从同一方向上的所有像素组的压缩比例中,选取最大压缩比例作为所述纹理子图在所述方向上的压缩比例;
25、若同一方向上的任一像素组的压缩比例为1,则将所述纹理子图在所述方向上的压缩比例设置为1。
26、根据本发明提供的一种纹理压缩方法,所述根据每个纹理子图的压缩比例,对所述每个纹理子图进行降采样,得到缩小后的新纹理贴图,包括:
27、根据所述纹理子图的压缩比例,确定所述纹理子图内部的每个三角面的压缩比例;
28、根据所述每个三角面的压缩比例,重新计算三维模型的二维展开后的每个三角面的新纹理坐标;
29、根据所述每个三角面的新纹理坐标,对所述每个三角面进行降采样并绘制到新图片上,得到缩小后的新纹理贴图。
30、本发明还提供一种纹理压缩装置,包括:
31、分割模块,用于获取待处理的纹理贴图,根据所述纹理贴图中的子图对所述纹理贴图进行分割,得到多个纹理子图;
32、确定模块,用于针对每个纹理子图,根据所述纹理子图的像素值变化剧烈程度,确定所述纹理子图的压缩比例;其中,所述像素值变化剧烈程度根据所述纹理子图的像素值的方差确定;
33、降采样模块,用于根据每个纹理子图的压缩比例,对所述每个纹理子图进行降采样,得到缩小后的新纹理贴图。
34、本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一项所述的纹理压缩方法的步骤。
35、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的纹理压缩方法的步骤。
36、本发明通过根据每个纹理子图的像素值的方差,确定每个纹理子图的像素值变化剧烈程度,进而确定每个纹理子图的压缩比例,并根据压缩比例进行降采样,可以实现对纹理贴图的压缩,从而减少纹理数量,减小保存纹理时的内存压力,减小渲染过程中的内存占用和gpu性能压力。
1.一种纹理压缩方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述纹理子图的像素值变化剧烈程度,确定所述纹理子图的压缩比例,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据每个像素组组内的像素值的方差,确定每个像素组的压缩比例,包括:
4.根据权利要求2所述的方法,其特征在于,所述根据每个像素组组内的像素值的方差,确定每个像素组的压缩比例,包括:
5.根据权利要求2所述的方法,其特征在于,在所述根据每个像素组组内的像素值的方差,确定每个像素组的压缩比例之后,还包括:
6.根据权利要求4所述的方法,其特征在于,所述根据所述像素组组内的像素值的方差,计算所述像素组的新边长,包括:
7.根据权利要求2所述的方法,其特征在于,所述分别根据横向上和纵向上的像素组的压缩比例,确定所述纹理子图在横向上和纵向上的压缩比例,包括:
8.根据权利要求1所述的方法,其特征在于,所述根据每个纹理子图的压缩比例,对所述每个纹理子图进行降采样,得到缩小后的新纹理贴图,包括:
9.一种纹理压缩装置,其特征在于,包括:
10.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至8任一项所述的纹理压缩方法。
11.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的纹理压缩方法。
12.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的纹理压缩方法。