一种基于多平台的着色器使用方法和相关设备技术

技术编号:33128729 阅读:9 留言:0更新日期:2022-04-17 00:42
本发明专利技术公开了一种基于多平台的着色器使用方法和相关设备,方法包括:获取待处理的初始着色器;根据预设的转换格式,将所述初始着色器转换为与所述着色器格式对应的若干个着色器文件;根据所述着色器文件的第一属性值和所述初始着色器的第二属性值,生成与所述初始着色器对应的配置文件;当检测到渲染指令时,根据所述渲染指令中的着色器格式,对所述配置文件进行检索,得到与所述渲染格式对应的目标属性值;根据所述第二属性值,对与所述渲染指令对应的目标着色器进行参数配置,得到渲染着色器;基于所述渲染着色器,对与所述渲染指令对应的渲染文件进行渲染。本发明专利技术能够在不同的渲染平台上实现便捷渲染。渲染平台上实现便捷渲染。渲染平台上实现便捷渲染。

【技术实现步骤摘要】
一种基于多平台的着色器使用方法和相关设备


[0001]本专利技术涉及图像处理
,特别涉及一种基于多平台的着色器使用方法和相关设备。

技术介绍

[0002]目前市面上的渲染器越来越多,不同厂家出品的渲染器具有不同的优势,因此跨平台渲染已经成为越来越多公司的选择。在进行跨平台渲染过程中,编写着色器是其中最为重要的一环。如果缺少跨平台着色器转换程序,需要人为编写多个平台的着色器文件,例如常见的着色器GLSL、ESSL、HLSL等,效率非常低下。而且由于渲染过程中运用到的参数较多,在自行编译过程中常常出错,后端需要不停地编译调试。此外,在A平台上编写着色器文件后,导出到其他平台上,着色器文件的阅读性较差。

技术实现思路

[0003]本专利技术要解决的技术问题在于现有跨平台着色器转换较为复杂,针对现有技术的不足,提供一种基于多平台的着色器使用方法和相关设备。
[0004]为了解决上述技术问题,本专利技术所采用的技术方案如下:
[0005]一种基于多平台的着色器使用方法,所述方法包括:
[0006]获取待处理的初始着色器;
[0007]根据预设的转换格式,将所述初始着色器转换为与所述着色器格式对应的若干个着色器文件;
[0008]根据所述着色器文件的第一属性值和所述初始着色器的第二属性值,生成与所述初始着色器对应的配置文件;
[0009]当检测到渲染指令时,根据所述渲染指令中的着色器格式,对所述配置文件进行检索,得到与所述渲染格式对应的目标属性值;
[0010]根据所述第二属性值,对与所述渲染指令对应的目标着色器进行参数配置,得到渲染着色器;
[0011]基于所述渲染着色器,对与所述渲染指令对应的渲染文件进行渲染。
[0012]所述基于多平台的着色器使用方法,其中,所述获取待处理的初始着色器包括:
[0013]获取待处理的着色器名称和着色器地址;
[0014]基于所述着色器名称和所述着色器地址,获取所述初始着色器。
[0015]所述基于多平台的着色器使用方法,其中,所述根据所述渲染指令中的着色器格式,对所述配置文件进行检索,得到与所述渲染格式对应的目标属性值包括:
[0016]根据所述渲染指令中的着色器格式,对配置文件进行检索,将与所述着色器格式对对应的第一属性值作为候选属性值;
[0017]根据所述渲染指令中的渲染类型,确定所述候选属性值中的目标属性值。
[0018]所述基于多平台的着色器使用方法,其中,所述根据预设的转换格式,将所述初始
着色器转换为与所述着色器格式对应的若干个着色器文件包括:
[0019]将所述初始着色器转换为spv元数据,并将所述spv元数据输入预设的SPIRV

CROSS;
[0020]根据预设的转换格式,控制所述SPIRV

CROSS将所述spv元数据转换为与所述着色器格式对应的着色器文件。
[0021]所述基于多平台的着色器使用方法,其中,所述配置文件的格式为json格式。
[0022]所述基于多平台的着色器使用方法,其中,所述第一属性值包括文件名、函数名、是否为内置着色器和着色器阶段。
[0023]所述基于多平台的着色器使用方法,其中,所述第二属性值包括layout清单、纹理数组,和Uniform块信息。
[0024]一种基于多平台的着色器使用装置,包括:
[0025]获取模块,用于获取待处理的初始着色器;
[0026]转换模块,用于根据预设的转换格式,将所述初始着色器转换为与所述着色器格式对应的若干个着色器文件;
[0027]生成模块,用于根据所述着色器文件的第一属性值和所述初始着色器的第二属性值,生成与所述初始着色器对应的配置文件;
[0028]检索模块,用于当检测到渲染指令时,根据所述渲染指令中的着色器格式,对所述配置文件进行检索,得到与所述渲染格式对应的目标属性值;
[0029]配置模块,用于根据所述第二属性值,对与所述渲染指令对应的目标着色器进行参数配置,得到渲染着色器;
[0030]渲染模块,用于基于所述渲染着色器,对与所述渲染指令对应的渲染文件进行渲染。
[0031]所述基于多平台的着色器使用装置,其中,所述获取模块具体用于:
[0032]获取待处理的着色器名称和着色器地址;
[0033]基于所述着色器名称和所述着色器地址,获取所述初始着色器。
[0034]所述基于多平台的着色器使用装置,其中,所述检索模块具体用于:
[0035]根据所述渲染指令中的着色器格式,对配置文件进行检索,将与所述着色器格式对对应的第一属性值作为候选属性值;
[0036]根据所述渲染指令中的渲染类型,确定所述候选属性值中的目标属性值。
[0037]所述基于多平台的着色器使用装置,其中,所述转换模块用于:
[0038]将所述初始着色器转换为spv元数据,并将所述spv元数据输入预设的SPIRV

CROSS;
[0039]根据预设的转换格式,控制所述SPIRV

CROSS将所述spv元数据转换为与所述着色器格式对应的着色器文件。
[0040]所述基于多平台的着色器使用装置,其中,所述配置文件的格式为json格式。
[0041]所述基于多平台的着色器使用装置,其中,所述第一属性值包括文件名、函数名、是否为内置着色器和着色器阶段。
[0042]所述基于多平台的着色器使用装置,其中,所述第二属性值包括layout清单、纹理数组,和Uniform块信息。
[0043]一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任一所述的基于多平台的着色器使用方法中的步骤。
[0044]一种终端设备,其包括:处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;
[0045]所述通信总线实现处理器和存储器之间的连接通信;
[0046]所述处理器执行所述计算机可读程序时实现如上任一所述的基于多平台的着色器使用方法中的步骤。
[0047]有益效果:本方案提供一种基于多平台的着色器使用方法,首先获取待处理的初始着色器,然后将初始着色器转换为若干个不同着色器格式的着色器文件。然后将着色器文件的文件名等信息作为第一属性值,将初始着色器的用于渲染的具体参数作为第二属性值,生成包含这两种属性值的配置文件。当需要进行渲染时,渲染指令中包含了需要用什么着色器进行渲染,也就是指定了着色器格式。因此,根据着色器格式,在配置文件中检索,可以得到能够使用的着色器文件,以及具体用于渲染的参数,将两者作为目标属性值,对需要渲染的渲染文件执行渲染操作。因此,在不同的平台上,基于这一配置文件,都可以实现不同类型的着色器文件的调用,以及具体渲染参数的配置,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于多平台的着色器使用方法,其特征在于,所述方法包括:获取待处理的初始着色器;根据预设的转换格式,将所述初始着色器转换为与所述着色器格式对应的若干个着色器文件;根据所述着色器文件的第一属性值和所述初始着色器的第二属性值,生成与所述初始着色器对应的配置文件;当检测到渲染指令时,根据所述渲染指令中的着色器格式,对所述配置文件进行检索,得到与所述渲染格式对应的目标属性值;根据所述第二属性值,对与所述渲染指令对应的目标着色器进行参数配置,得到渲染着色器;基于所述渲染着色器,对与所述渲染指令对应的渲染文件进行渲染。2.根据权利要求1所述基于多平台的着色器使用方法,其特征在于,所述获取待处理的初始着色器包括:获取待处理的着色器名称和着色器地址;基于所述着色器名称和所述着色器地址,获取所述初始着色器。3.根据权利要求1所述基于多平台的着色器使用方法,其特征在于,所述根据所述渲染指令中的着色器格式,对所述配置文件进行检索,得到与所述渲染格式对应的目标属性值包括:根据所述渲染指令中的着色器格式,对配置文件进行检索,将与所述着色器格式对对应的第一属性值作为候选属性值;根据所述渲染指令中的渲染类型,确定所述候选属性值中的目标属性值。4.根据权利要求1所述基于多平台的着色器使用方法,其特征在于,所述根据预设的转换格式,将所述初始着色器转换为与所述着色器格式对应的若干个着色器文件包括:将所述初始着色器转换为spv元数据,并将所述spv元数据输入预设的SPIRV

CROSS;根据预设的转换格式,控制所述SPIRV

CROSS将所述spv元数据转换为与所述着色器格式对应的着色器文件。5....

【专利技术属性】
技术研发人员:唐向阳廖舒华
申请(专利权)人:深圳市趣推科技有限公司
类型:发明
国别省市:

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

1