一种合成多张纹理的方法及终端技术

技术编号:34203010 阅读:77 留言:0更新日期:2022-07-20 11:09
本发明专利技术公开了一种合成多张纹理的方法及终端,获取需合成纹理集合并创建结果对象;创建材质对象,将需合成纹理集合中的第一需合成纹理放入材质对象得到合成用材质对象;通过预设方法将合成用材质对象、合成纹理集合中的第二需合成纹理及结果对象作为参数传递给GPU,以使得GPU能够根据合成用材质对象及第二需合成纹理进行纹理合成并将合成结果存入结果对象;将结果对象中的合成结果作为第三需合成纹理加入需合成纹理集合,重复执行上述步骤,直至需合成纹理集合中的所有需合成纹理均合成完毕;本发明专利技术通过将一合成纹理放置在材质中实现了在GPU中对纹理进行合成,和传统利用现有提供的方式在CPU中实现纹理合成的方法,不会占用CPU资源。占用CPU资源。占用CPU资源。

【技术实现步骤摘要】
一种合成多张纹理的方法及终端


[0001]本专利技术涉及Unity纹理合成领域,尤其涉及一种合成多张纹理的方法及终端。

技术介绍

[0002]在现有技术中,若需要在Unity中实现对两张纹理的合成,常用的方式是调用Texture2D.GetPixel(x,y)方法逐个读取两张纹理,然后逐像素进行叠加进行计算,该方法在CPU中进行逐像素的合成,计算效率低,并且占用了CPU资源影响其他业务的进行,并且,需要进行合成的纹理需要具有相同的贴图尺寸,限制了纹理合成的使用范围。

技术实现思路

[0003]本专利技术所要解决的技术问题是:提供一种合成多张纹理的方法及终端,在对CPU资源低占用的同时保证合成效率。
[0004]为了解决上述技术问题,本专利技术采用的一种技术方案为:
[0005]一种合成多张纹理的方法,包括步骤:
[0006]S1、获取需合成纹理集合并创建结果对象;
[0007]S2、创建材质对象,将所述需合成纹理集合中的第一需合成纹理放入所述材质对象得到合成用材质对象;
[0008]S3、通过预设方法将所述合成用材质对象、所述合成纹理集合中的第二需合成纹理及所述结果对象作为参数传递给GPU,以使得所述GPU能够根据所述合成用材质对象及所述第二需合成纹理进行纹理合成并将合成结果存入所述结果对象;
[0009]S4、将所述结果对象中的所述合成结果作为第三需合成纹理加入所述需合成纹理集合,重复步骤S1

S4,直至所述需合成纹理集合中的所有需合成纹理均合成完毕。
[0010]为了解决上述技术问题,本专利技术采用的另一种技术方案为:
[0011]一种合成多张纹理的终端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0012]S1、获取需合成纹理集合并创建结果对象;
[0013]S2、创建材质对象,将所述需合成纹理集合中的第一需合成纹理放入所述材质对象得到合成用材质对象;
[0014]S3、通过预设方法将所述合成用材质对象、所述合成纹理集合中的第二需合成纹理及所述结果对象作为参数传递给GPU,以使得所述GPU能够根据所述合成用材质对象及所述第二需合成纹理进行纹理合成并将合成结果存入所述结果对象;
[0015]S4、将所述结果对象中的所述合成结果作为第三需合成纹理加入所述需合成纹理集合,重复步骤S1

S4,直至所述需合成纹理集合中的所有需合成纹理均合成完毕。
[0016]本专利技术的有益效果在于:创建结果材质对象,将一需合成纹理放入材质对象,同时创建结果对象,将材质对象、另一需合成纹理及结果对象作为参数传递给GPU,使得GPU能够将材质对象中的需合成纹理和另一需合成纹理进行合成并将纹理合成结果存入结果对象
中,通过将一合成纹理放置在材质中实现了在GPU中对纹理进行合成,和传统利用现有提供的方式在CPU中实现纹理合成的方法,不会占用CPU资源,纹理合成需要进行像素级的计算,在GPU中完成还能够利用GPU的并行能力提高纹理合成的速度。
附图说明
[0017]图1为本专利技术实施例的一种合成多张纹理的方法的步骤流程图;
[0018]图2为本专利技术实施例的一种合成多张纹理的终端的结构示意图;
[0019]标号说明:
[0020]1、一种合成多张纹理的终端;2、处理器;3、存储器。
具体实施方式
[0021]为详细说明本专利技术的
技术实现思路
、所实现目的及效果,以下结合实施方式并配合附图予以说明。
[0022]请参照图1,一种合成多张纹理的方法,包括步骤:
[0023]S1、获取需合成纹理集合并创建结果对象;
[0024]S2、创建材质对象,将所述需合成纹理集合中的第一需合成纹理放入所述材质对象得到合成用材质对象;
[0025]S3、通过预设方法将所述合成用材质对象、所述合成纹理集合中的第二需合成纹理及所述结果对象作为参数传递给GPU,以使得所述GPU能够根据所述合成用材质对象及所述第二需合成纹理进行纹理合成并将合成结果存入所述结果对象;
[0026]S4、将所述结果对象中的所述合成结果作为第三需合成纹理加入所述需合成纹理集合,重复步骤S1

S4,直至所述需合成纹理集合中的所有需合成纹理均合成完毕。
[0027]从上述描述可知,本专利技术的有益效果在于:创建结果材质对象,将一需合成纹理放入材质对象,同时创建结果对象,将材质对象、另一需合成纹理及结果对象作为参数传递给GPU,使得GPU能够将材质对象中的需合成纹理和另一需合成纹理进行合成并将纹理合成结果存入结果对象中,通过将一合成纹理放置在材质中实现了在GPU中对纹理进行合成,和传统利用现有提供的方式在CPU中实现纹理合成的方法,不会占用CPU资源,纹理合成需要进行像素级的计算,在GPU中完成还能够利用GPU的并行能力提高纹理合成的速度。
[0028]进一步地,所述S2之前还包括:
[0029]创建后处理效果着色器,并在所述后处理效果着色器的片元着色器中设置图片合成算法,以使得所述GPU能够调用所述图片合成算法进行纹理合成;
[0030]所述S2具体为:
[0031]通过实例化所述后处理效果着色器创建所述材质对象,通过调用所述材质对象的SetTexture()方法将所述第一需合成纹理放入所述材质对象得到合成用材质对象。
[0032]由上述描述可知,创建后处理效果着色器,通过将其实例化得到材质对象,将第一需合成纹理放入材质对象后能够以材质对象为容器将第一需合成纹理进行显示,以使得GPU能够读取到第一需合成纹理。
[0033]进一步地,所述S3具体为:
[0034]通过UnityEngine.Graphics.Blit()方法将所述合成用材质对象、所述第二需合
成纹理及所述结果对象作为参数传递给GPU,以使得所述GPU能够根据所述合成用材质对象及所述第二需合成纹理进行纹理合成并将合成结果存入所述结果对象。
[0035]由上述描述可知,合成用材质对象是通过实例化着色器生成,即该合成用材质对象对应后处理效果着色器,材质所对应的着色器相关操作能够在GPU中合成,通过调用UnityEngine.Graphics.Blit()方法能够实现CPU和GPU之间的参数传递,将第二需合成纹理及合成用材质对象作为参数传入GPU中,合成用材质对象上有第一需合成纹理,将合成纹理的处理转换成材质上纹理的处理,实现在GPU中对纹理进行合成。
[0036]进一步地,所述S4具体为:
[0037]S41、将所述结果对象中的所述合成结果作为第三需合成纹理加入所述需合成纹理集合,并将所述第一需合成纹理及所述第二需合成纹理从所述需合成纹理集合中删除;
[0038]S42、重复步骤S1

S41,直至所述需合成纹理集合中的需合成纹理本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种合成多张纹理的方法,其特征在于,包括步骤:S1、获取需合成纹理集合并创建结果对象;S2、创建材质对象,将所述需合成纹理集合中的第一需合成纹理放入所述材质对象得到合成用材质对象;S3、通过预设方法将所述合成用材质对象、所述合成纹理集合中的第二需合成纹理及所述结果对象作为参数传递给GPU,以使得所述GPU能够根据所述合成用材质对象及所述第二需合成纹理进行纹理合成并将合成结果存入所述结果对象;S4、将所述结果对象中的所述合成结果作为第三需合成纹理加入所述需合成纹理集合,重复步骤S1

S4,直至所述需合成纹理集合中的所有需合成纹理均合成完毕。2.根据权利要求1所述的一种合成多张纹理的方法,其特征在于,所述S2之前还包括:创建后处理效果着色器,并在所述后处理效果着色器的片元着色器中设置图片合成算法,以使得所述GPU能够调用所述图片合成算法进行纹理合成;所述S2具体为:通过实例化所述后处理效果着色器创建所述材质对象,通过调用所述材质对象的SetTexture()方法将所述第一需合成纹理放入所述材质对象得到合成用材质对象。3.根据权利要求1所述的一种合成多张纹理的方法,其特征在于,所述S3具体为:通过UnityEngine.Graphics.Blit()方法将所述合成用材质对象、所述第二需合成纹理及所述结果对象作为参数传递给GPU,以使得所述GPU能够根据所述合成用材质对象及所述第二需合成纹理进行纹理合成并将合成结果存入所述结果对象。4.根据权利要求1所述的一种合成多张纹理的方法,其特征在于,所述S4具体为:S41、将所述结果对象中的所述合成结果作为第三需合成纹理加入所述需合成纹理集合,并将所述第一需合成纹理及所述第二需合成纹理从所述需合成纹理集合中删除;S42、重复步骤S1

S41,直至所述需合成纹理集合中的需合成纹理的数量为1,标记此时的需合成纹理为最终纹理;S43、创建Texture2D对象,读取所述最终纹理到所述Texture2D对象中得到输出对象,并将所述输出对象转换为字节数组数据保存到文件中。5.根据权利要求2所述的一种合成多张纹理的方法,其特征在于,在所述后处理效果着色器的片元着色器中设置图片合成算法具体为:分别设置两个2D属性,所述2D属性用于接收纹理图片;对所述2D属性中接收的所述纹理图片进行像素颜色值采样得到纹理采样结果;根据预设的纹理合成公式对所述纹理采样结果进行合成。6.一种合成多张纹理的终端,包括存储器、处理器及存储在所述存储器上并...

【专利技术属性】
技术研发人员:刘德建谢曦陈波林琛
申请(专利权)人:福建天晴数码有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1