立方体纹理生成方法、装置、设备、存储介质和程序产品与流程

文档序号:35934308发布日期:2023-11-05 15:32阅读:44来源:国知局
立方体纹理生成方法、装置、设备、存储介质和程序产品与流程

本技术涉及计算机,特别是涉及一种立方体纹理生成方法、装置、计算机设备、存储介质和计算机程序产品。


背景技术:

1、虚幻引擎(ue4,unreal engine)是先进的实时3d创作平台,基于该平台可实现对虚拟场景中的虚拟对象进行渲染,提高虚拟对象的展示效果,如可以提高虚拟对象的立体感。例如,在游戏场景中,可以采用三角形网格构建虚拟对象的三维模型,然后利用该虚拟对象的三维模型渲染出该虚拟对象。

2、ue4中的纹理(texture)图像是表示物体表面纹理细节的图像,它可以表示出物体表面凹凸不平的沟纹,还可以表示出物体表面上的图案,通过将纹理图像按照特定的方式映射到物体表面上的时候能使物体看上去更加真实,例如,将纹理图像映射到三维对象模型中,可以实现对三维对象模型表面纹理的渲染,从而使三维对象模型的立体感更加真实。立方体纹理(texture cube)也是ue4中的一种纹理贴图资源,它是一个用于储存纹理的特殊数据结构,立方体纹理具有六个面,可以用于创建立方体贴图,立方体纹理可以让模型的表面反射出周围的环境,来表达它的表面的材质感。

3、相关技术中,在基于ue4生成一张立方体纹理时,需要先对立方体容器的六个面分别进行渲染,并将场景捕获立方体(scene capture cube)组件所捕获到的结果渲染到渲染目标(render target)上,需要经过多次渲染,内存开销成本大,运行效率也不高。


技术实现思路

1、基于此,有必要针对上述技术问题,提供一种能够降低内存开销成本、提高运行效率的立方体纹理生成方法、装置、计算机设备、存储介质和计算机程序产品。

2、第一方面,本技术提供了一种立方体纹理生成方法。所述方法包括:

3、获取多张二维纹理图像;

4、对所述多张二维纹理图像进行纹理映射,得到一张纹理映射图像;

5、根据所述一张纹理映射图像的像素数据,初始化立方体纹理对象的纹理数据变量,得到目标立方体纹理,所述目标立方体纹理的每个面分别与所述多张二维纹理图像中的各二维纹理图像一一对应。

6、第二方面,本技术还提供了一种立方体纹理生成装置。所述装置包括:

7、获取模块,用于获取多张二维纹理图像;

8、纹理映射模块,用于对所述多张二维纹理图像进行纹理映射,得到一张纹理映射图像;

9、纹理生成模块,用于根据所述一张纹理映射图像的像素数据,初始化立方体纹理对象的纹理数据变量,得到目标立方体纹理,所述目标立方体纹理的每个面分别与所述多张二维纹理图像中的各二维纹理图像一一对应。

10、在其中一个实施例中,所述纹理映射模块,还用于在虚幻引擎的编辑器模式下,根据所述多张二维纹理图像中每张二维纹理图像各自对应的面,对所述多张二维纹理图像分别进行坐标转换,得到一张纹理映射图像。

11、在其中一个实施例中,所述纹理生成模块,还用于将所述一张纹理映射图像渲染到渲染目标;读取所述渲染目标的像素数据;根据读取的像素数据初始化立方体纹理对象的纹理数据变量,得到目标立方体纹理。

12、在其中一个实施例中,所述纹理映射模块,还用于获取待生成的一张纹理映射图像中的纹理坐标;基于纹理空间与球面空间的映射关系,将所述纹理坐标转换为单位球面上的球形向量;根据所述球形向量对所述多张二维纹理图像所合成的立方体进行采样,得到所述纹理坐标对应的像素值;根据待生成的一张纹理映射图像中的每个纹理坐标对应的像素值得到一张纹理映射图像。

13、在其中一个实施例中,所述纹理映射模块,还用于对所述纹理坐标进行坐标转换,得到所述纹理坐标对应的球面极坐标;将所述球面极坐标转换为单位球面上的球形向量。

14、在其中一个实施例中,所述纹理映射模块,还用于确定所述球形向量在所述多张二维纹理图像所合成的立方体上的投影面以及在所述投影面上的二维坐标;获取各所述二维纹理图像合成所述立方体时所对应的面;从所述多张二维纹理图像中确定相应的面为所述投影面的二维纹理图像;获取确定的所述二维纹理图像中位于所述二维坐标处的像素值;将所述像素值作为所述纹理坐标对应的像素值。

15、在其中一个实施例中,所述纹理映射模块,还用于确定所述球形向量的各坐标值中绝对值最大的坐标值;确定所述绝对值最大的坐标值所在的坐标轴和轴向;根据确定的坐标轴和轴向,确定所述球形向量在所述多张二维纹理图像合成的立方体上的投影面;计算所述球形向量的各坐标值与所述绝对值最大的坐标值的绝对值之比;根据所述投影面对应的坐标换算关系,将计算结果转换为所述投影面上的二维坐标。

16、在其中一个实施例中,所述纹理生成模块,还用于创建立方体纹理对象,所述立方体纹理对象包括编辑器模式下可访问的纹理数据变量;将读取的像素数据设置在所述编辑器模式下可访问的纹理数据变量中,得到目标立方体纹理。

17、在其中一个实施例中,所述纹理映射模块,还用于在虚幻引擎的运行模式下,根据所述多张二维纹理图像中每张二维纹理图像各自对应的面,对每张二维纹理图像进行翻转处理,得到翻转后的二维纹理图像;根据所述二维纹理图像各自对应的面的拼接顺序,将相应翻转后的二维纹理图像进行拼接,得到一张纹理映射图像。

18、在其中一个实施例中,所述纹理映射模块,还用于对于所述多张二维纹理图像中分别对应所述目标立方体纹理的反面的二维纹理图像,进行向左翻转90°处理,得到翻转后的二维纹理图像;对于所述多张二维纹理图像中分别对应所述目标立方体纹理的正面、上面和下面的二维纹理图像,进行向右翻转90°处理,得到翻转后的二维纹理图像;对于所述多张二维纹理图像中对应所述目标立方体纹理的左面的二维纹理图像,依次进行向左翻转90°、向右翻转90°、向上翻转180°和向下翻转180°处理,得到翻转后的二维纹理图像。

19、在其中一个实施例中,所述纹理映射模块,还用于根据所述纹理图像各自对应的面的拼接顺序,将相应翻转后的二维纹理图像按照从上到下的方向进行拼接,得到一张纹理映射图像。

20、在其中一个实施例中,所述纹理生成模块,还用于创建立方体纹理对象,所述立方体纹理对象包括运行模式下可访问的纹理数据变量;将读取的像素数据设置在所述运行模式下可访问的纹理数据变量中,得到目标立方体纹理。

21、第三方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述立方体纹理生成方法的步骤。

22、第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述立方体纹理生成方法的步骤。

23、第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述立方体纹理生成方法的步骤。

24、上述立方体纹理生成方法、装置、计算机设备、存储介质和计算机程序产品,对获取的多张二维纹理图像进行纹理映射,得到一张纹理映射图像,根据一张纹理映射图像的像素数据,初始化立方体纹理对象的纹理数据变量,得到目标立方体纹理。上述生成立方体纹理的过程中,无需创建立方体容器以及通过场景捕获立方体(scene capture cube)组件对立方体容器进行采样,因此,降低了冗余资源,并且将输入的多张二维纹理图像转换为一张纹理映射图像,通过对一张纹理映射图像进行一次渲染,即可生成目标立方体纹理,减少了渲染次数,降低了内存开销成本,提高了运行效率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1