纹理的处理方法、装置、设备、计算机可读存储介质及计算机程序产品与流程

摘要: 本技术涉及计算机技术,尤其涉及一种纹理的处理方法、装置、设备、计算机可读存储介质及计算机程序产品。背景技术:1、相关技术中,处理纹理的方案包括大纹理方案和虚拟纹...
纹理的处理方法、装置、设备、计算机可读存储介质及计算机程序产品与流程

本技术涉及计算机技术,尤其涉及一种纹理的处理方法、装置、设备、计算机可读存储介质及计算机程序产品。

背景技术:

1、相关技术中,处理纹理的方案包括大纹理方案和虚拟纹理方案。大纹理方案通过记录三维模型包围盒范围内的所有纹理信息来保证精度,要实现不同分辨率纹理渲染,需要在显存中加载多个大纹理,显存占用巨大,运行时帧率受影响;虚拟纹理方案通过将大纹理分割为分块并进行动态加载,但运行时动态加载分块会增加数据读写压力,同时也会加载包括无效数据的纹理,导致计算资源浪费。

技术实现思路

1、本技术实施例提供一种纹理的处理方法、装置、设备、计算机可读存储介质及计算机程序产品,能够减少显存占用,提高资源的利用率。

2、本技术实施例的技术方案是这样实现的:

3、本技术实施例提供一种纹理的处理方法,所述方法包括:

4、获取三维模型的初始纹理,并对所述初始纹理进行分块,得到所述初始纹理的多个第一分块纹理;

5、基于所述多个第一分块纹理,生成多个第二分块纹理,所述第二分块纹理的分辨率低于所述第一分块纹理的分辨率;

6、从所述多个第一分块纹理及所述多个第二分块纹理中,筛选得到包括有效数据的目标分块纹理,并将所述目标分块纹理存储至物理纹理;

7、将所述目标分块纹理在所述物理纹理中的坐标记录至索引纹理,所述索引纹理用于基于所述三维模型的纹理坐标,查询所述目标分块纹理在所述物理纹理中的坐标。

8、本技术实施例提供一种纹理的处理装置,所述装置包括:

9、分块模块,用于获取三维模型的初始纹理,并对所述初始纹理进行分块,得到所述初始纹理的多个第一分块纹理;

10、生成模块,用于基于所述多个第一分块纹理,生成多个第二分块纹理,所述第二分块纹理的分辨率低于所述第一分块纹理的分辨率;

11、筛选模块,用于从所述多个第一分块纹理及所述多个第二分块纹理中,筛选得到包括有效数据的目标分块纹理,并将所述目标分块纹理存储至物理纹理;

12、记录模块,用于将所述目标分块纹理在所述物理纹理中的坐标记录至索引纹理,所述索引纹理用于基于所述三维模型的纹理坐标,查询所述目标分块纹理在所述物理纹理中的坐标。

13、在上述方案中,所述多个第一分块纹理的尺寸相同,所述生成模块,还用于以所述初始纹理的尺寸大小为根节点、所述第一分块纹理的尺寸大小为叶子节点,构建四叉树;将所述多个第一分块纹理存储至所述四叉树的叶子节点,并基于所述叶子节点,生成所述四叉树中各层级的非叶子节点对应的第二分块纹理;其中,不同层级的非叶子节点对应的第二分块纹理的分辨率不同。

14、在上述方案中,所述生成模块,还用于基于所述叶子节点对应的第一分块纹理,从所述四叉树的叶子节点的父节点开始,逐层向上遍历所述四叉树直至所述根节点;在所述遍历的过程中,针对各层级中作为父节点的非叶子节点分别执行以下操作:对所述非叶子节点包括的各子节点对应的第一分块纹理,执行线性滤波,得到所述非叶子节点对应的第二分块纹理。

15、在上述方案中,所述纹理的处理装置还包括:更新模块,用于所述生成所述四叉树中各层级的非叶子节点对应的第二分块纹理之后,获取通过笔刷绘制得到的所述三维模型的笔刷纹理;基于所述第一分块纹理的尺寸,将所述笔刷纹理进行分块,得到至少一个第三分块纹理;基于所述至少一个第三分块纹理,更新所述四叉树的各节点对应的分块纹理;所述筛选模块,还用于从更新后的所述四叉树的各节点对应的分块纹理中,筛选得到包括有效数据的目标分块纹理。

16、在上述方案中,所述更新模块,还用于基于所述第三分块纹理的分辨率,分别将各所述第三分块纹理缓存至所述四叉树中对应分辨率的节点中;从所述四叉树的根节点开始,逐层向下遍历,并针对各层级的节点分别执行如下操作:若所述节点为根节点、且所述节点中包括所述第三分块纹理,则将所述节点中的第二分块纹理替换为所述第三分块纹理,并将所述第三分块纹理作为所述节点的分块纹理;若所述节点为中间节点、且所述节点中包括所述第三分块纹理,则将所述节点中的第二分块纹理替换为所述第三分块纹理,并将所述第三分块纹理,与所述节点的父节点的分块纹理进行融合,得到所述节点的分块纹理;若所述节点为叶子节点、且所述节点中包括所述第三分块纹理,则将所述第二分块纹理与所述第三分块纹理进行融合,得到融合纹理,将所述节点的父节点的分块纹理,与所述融合纹理进行融合,得到所述节点的分块纹理。

17、在上述方案中,所述纹理的处理装置还包括:扩展模块,用于所述对所述初始纹理进行分块,得到所述初始纹理的多个第一分块纹理之后,针对每个所述第一分块纹理,分别执行以下处理:确定所述第一分块纹理的相邻分块纹理;基于所述相邻分块纹理的分辨率,对所述第一分块纹理进行边缘扩展,得到携带边缘像素的第一分块纹理。

18、在上述方案中,所述扩展模块,还用于当所述相邻分块纹理的分辨率与所述第一分块纹理的分辨率相同时,获取所述相邻分块纹理中所述第一分块纹理的相邻像素;复制所述相邻像素,并将所述相邻像素作为所述边缘像素添加至所述第一分块纹理的边缘。

19、在上述方案中,所述扩展模块,还用于当所述相邻分块纹理的分辨率与所述第一分块纹理的分辨率不同时,获取所述第一分块纹理的边缘像素的世界坐标;将所述世界坐标映射为所述相邻分块纹理的纹理坐标;基于所述纹理坐标对所述相邻分块纹理进行采样,并将采样得到的像素作为边缘像素添加至所述第一分块纹理的边缘。

20、在上述方案中,所述筛选模块,还用于从所述多个第一分块纹理及所述多个第二分块纹理中,识别无效分块纹理,所述无效分块纹理为不包括所述有效数据的分块纹理;从所述多个第一分块纹理及所述多个第二分块纹理中,剔除所述无效分块纹理,得到所述包括有效数据的目标分块纹理。

21、在上述方案中,所述筛选模块,还用于当所述无效分块纹理包括重复分块纹理时,针对所述多个第一分块纹理及所述多个第二分块纹理中每个分块纹理,分别执行以下操作:将所述分块纹理分别与其它分块纹理进行比对,得到比对结果;当基于所述比对结果,从所述多个第一分块纹理及所述多个第二分块纹理中,确定与所述分块纹理相同的重复分块纹理;对所述分块纹理及所述重复分块纹理进行去重,得到包括有效数据的目标分块纹理。

22、在上述方案中,所述筛选模块,还用于当所述无效分块纹理包括空白分块纹理时,针对所述多个第一分块纹理及所述多个第二分块纹理中每个分块纹理,分别执行以下操作:对所述分块纹理进行逐像素检测,得到所述分块纹理中各像素的通道值;当所述分块纹理中各像素的通道值均为默认值时,将所述分块纹理确定为所述空白分块纹理;从所述多个第一分块纹理及所述多个第二分块纹理中,剔除所述空白分块纹理,得到包括有效数据的目标分块纹理。

23、在上述方案中,所述纹理的处理装置还包括:创建模块,用于所述将所述目标分块纹理存储至物理纹理之前,确定所述目标分块纹理的数量;基于所述数量及所述目标分块纹理的尺寸,创建空白的所述物理纹理,所述物理纹理的尺寸与所述数量的目标分块纹理的尺寸之和相适配。

24、在上述方案中,所述纹理的处理装置还包括:采样模块,用于所述将所述目标分块纹理在所述物理纹理中的坐标记录至索引纹理之后,基于所述三维模型的纹理坐标,采样所述索引纹理,得到所述目标分块纹理在所述物理纹理中的坐标;基于所述在所述物理纹理中的坐标,采样所述物理纹理,得到所述三维模型的纹理。

25、本技术实施例提供一种电子设备,包括:

26、存储器,用于存储计算机可执行指令或者计算机程序;

27、处理器,用于执行所述存储器中存储的计算机可执行指令或者计算机程序时,实现本技术实施例提供的纹理的处理方法。

28、本技术实施例提供一种计算机可读存储介质,存储有计算机可执行指令或者计算机程序,用于被处理器执行时实现本技术实施例提供的纹理的处理方法。

29、本技术实施例提供一种计算机程序产品,包括计算机可执行指令或计算机程序,所述计算机可执行指令或计算机程序被处理器执行时,实现本技术实施例提供的纹理的处理方法。

30、本技术实施例具有以下有益效果:

31、本技术通过将三维模型的初始纹理进行分块得到多个第一分块纹理,相较于第一分块纹理的分辨率,基于多个第一分块纹理,生成多个低分辨率的第二分块纹理,然后从多个第一分块纹理及多个第二分块纹理中,筛选得到包括有效数据的目标分块纹理,从而去除仅包括无效数据的无效分块纹理,可以有效减少纹理加载时中存储空间的占用,优化资源利用率。通过将目标分块纹理存储到物理纹理并记录索引纹理,能够在运行时快速查询和采样所需的多分辨率的纹理数据,减少动态加载的输入输出压力,提升运行效率,从而在保证纹理精度的同时,显著降低显存占用和运行时资源消耗。