System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及但不限于计算机,尤其涉及一种渲染管线的转换方法、装置、电子设备、存储介质。
技术介绍
1、目前主流的3d渲染引擎提供了当前使用的渲染管线的功能设置,通过这个功能设置开发者可以根据不同的项目需求使用不同的渲染管线,3d渲染引擎同时也保留了内置渲染管线系统作为一个通用的处理方式。不同的渲染管线会需要不同的游戏制作方式(比如不同的模型数据格式,不同的shader代码等等),在游戏项目开发过程中,当游戏项目进入制作期,再想去切换引擎的渲染管线时,需要付出很大的时间和人力成本。
技术实现思路
1、本申请实施例提供了一种渲染管线的转换方法、装置、电子设备、存储介质,能够提升在3d渲染引擎中不同渲染管线的切换效率。
2、第一方面,本申请实施例提供了一种渲染管线的转换方法,应用于3d渲染引擎,所述3d渲染引擎包括多个渲染管线,所述方法包括:
3、响应于针对shader文件的编辑操作,生成多个shader镜像文件,其中,各个所述shader镜像文件对应不同的所述渲染管线;
4、当获取到转换渲染管线指令,从所述转换渲染管线指令中确定目标渲染管线,所述目标渲染管线为多个所述渲染管线中的任意一个;
5、确定所述目标渲染管线对应的目标代码宏标识;
6、从多个所述shader镜像文件中确定与所述目标渲染管线对应的目标shader镜像文件;
7、基于所述目标代码宏标识和所述目标shader镜像文件,将当前渲染管线转换至所述目标渲染
8、在一些实施例中,所述渲染管线至少包括第一渲染管线和第二渲染管线,当前渲染管线为所述第一渲染管线,响应于针对shader文件的编辑操作,生成多个shader镜像文件,包括:
9、获取针对shader文件的编辑操作得到的第一shader文件,将所述第一shader文件保存为所述第一渲染管线对应的shader镜像文件;
10、基于预设转换规则,将所述第一shader文件转换成第二shader文件,将所述第二shader文件保存为所述第二渲染管线对应的shader镜像文件。
11、在一些实施例中,所述目标代码宏标识根据以下步骤确定:
12、基于初始代码生成多个参考代码,不同的所述参考代码对应不同的所述渲染管线,所述初始代码为所述3d渲染引擎的运行代码;
13、生成多个代码宏标识,建立所述代码宏标识与所述参考代码之间的关联关系,其中,一个所述代码宏标识唯一关联一个所述参考代码;
14、从多个所述代码宏标识中确定与所述目标渲染管线关联的目标代码宏标识。
15、在一些实施例中,所述基于所述目标代码宏标识和所述目标shader镜像文件,将当前渲染管线转换至所述目标渲染管线,包括:
16、将所述目标shader镜像文件覆盖当前shader文件;
17、在引擎代码编译器增加所述目标渲染管线对应的目标代码宏标识,以使所述引擎代码编译器执行所述目标代码宏标识关联的参考代码和所述当前shader文件。
18、第二方面,本申请实施例提供了一种渲染管线的转换装置,包括:
19、shader镜像文件生成模块,用于响应于针对shader文件的编辑操作,生成多个shader镜像文件,其中,各个所述shader镜像文件对应不同的所述渲染管线;
20、目标渲染管线确定模块,用于当获取到转换渲染管线指令,从所述转换渲染管线指令中确定目标渲染管线,所述目标渲染管线为多个所述渲染管线中的任意一个;
21、第一数据处理模块,用于在引擎代码编译器增加所述目标渲染管线对应的目标代码宏标识;
22、第二数据处理模块,用于从多个所述shader镜像文件中确定与所述目标渲染管线对应的目标shader镜像文件;
23、第三数据处理模块,用于基于所述目标代码宏标识和所述目标shader镜像文件,将当前渲染管线转换至所述目标渲染管线。
24、在一些实施例中,所述渲染管线至少包括第一渲染管线和第二渲染管线,当前渲染管线为所述第一渲染管线,所述shader镜像文件生成模块包括:
25、第一shader镜像文件生成模块,用于获取针对shader文件的编辑操作得到的第一shader文件,将所述第一shader文件保存为所述第一渲染管线对应的shader镜像文件;
26、第二shader镜像文件生成模块,用于基于预设转换规则,将所述第一shader文件转换成第二shader文件,将所述第二shader文件保存为所述第二渲染管线对应的shader镜像文件。
27、在一些实施例中,所述渲染管线的转换装置还包括目标代码宏标识确定模块,所述目标代码宏标识确定模块包括:
28、第四数据处理模块,用于基于初始代码生成多个参考代码,不同的所述参考代码对应不同的所述渲染管线,所述初始代码为所述3d渲染引擎的运行代码;
29、第五数据处理模块,用于生成多个代码宏标识,建立所述代码宏标识与所述参考代码之间的关联关系,其中,一个所述代码宏标识唯一关联一个所述参考代码;
30、第六数据处理模块,用于从多个所述代码宏标识中确定与所述目标渲染管线关联的目标代码宏标识。
31、在一些实施例中,第三数据处理模块包括:
32、第七数据处理模块,用于将所述目标shader镜像文件覆盖当前shader文件;
33、第八数据处理模块,用于在引擎代码编译器增加所述目标渲染管线对应的目标代码宏标识,以使所述引擎代码编译器执行所述目标代码宏标识关联的参考代码和所述当前shader文件。
34、第三方面,本申请实施例提供了一种电子设备,包括至少一个控制处理器和用于与所述至少一个控制处理器通信连接的存储器;所述存储器存储有可被所述至少一个控制处理器执行的指令,所述指令被所述至少一个控制处理器执行,以使所述至少一个控制处理器能够执行如第一方面所述的渲染管线的转换方法。
35、第四方面,本申请实施例还提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如第一方面所述的渲染管线的转换方法。
36、本申请提供了一种渲染管线的转换方法、装置、电子设备、存储介质,方法包括:响应于针对shader文件的编辑操作,生成多个shader镜像文件,其中,各个所述shader镜像文件对应不同的所述渲染管线;当获取到转换渲染管线指令,从所述转换渲染管线指令中确定所述目标渲染管线,所述目标渲染管线为多个所述渲染管线中的任意一个;确定所述目标渲染管线对应的目标代码宏标识;从多个所述shader镜像文件中确定与所述目标渲染管线对应的目标shader镜像文件;基于所述目标代码宏标识和所述目标shader镜像文件,将当前渲染管线转换至所述目标渲染管线。根据本申请实施例提供的方案,通过确定目标代码宏标识和自本文档来自技高网...
【技术保护点】
1.一种渲染管线的转换方法,其特征在于,应用于3D渲染引擎,所述3D渲染引擎包括多个渲染管线,所述方法包括:
2.根据权利要求1所述的渲染管线的转换方法,其特征在于,所述渲染管线至少包括第一渲染管线和第二渲染管线,当前渲染管线为所述第一渲染管线,响应于针对Shader文件的编辑操作,生成多个Shader镜像文件,包括:
3.根据权利要求1所述的渲染管线的转换方法,其特征在于,所述目标代码宏标识根据以下步骤确定:
4.根据权利要求3所述的渲染管线的转换方法,其特征在于,所述基于所述目标代码宏标识和所述目标Shader镜像文件,将当前渲染管线转换至所述目标渲染管线,包括:
5.一种渲染管线的转换装置,其特征在于,包括:
6.根据权利要求5所述的渲染管线的转换装置,其特征在于,所述渲染管线至少包括第一渲染管线和第二渲染管线,当前渲染管线为所述第一渲染管线,所述Shader镜像文件生成模块包括:
7.根据权利要求5所述的渲染管线的转换装置,其特征在于,所述渲染管线的转换装置还包括目标代码宏标识确定模块,所述目标代码宏
8.根据权利要求7所述的渲染管线的转换装置,其特征在于,第三数据处理模块包括:
9.一种电子设备,其特征在于,包括至少一个控制处理器和用于与所述至少一个控制处理器通信连接的存储器;所述存储器存储有可被所述至少一个控制处理器执行的指令,所述指令被所述至少一个控制处理器执行,以使所述至少一个控制处理器能够执行如权利要求1至4任一项所述的渲染管线的转换方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1至4中任意一项所述的渲染管线的转换方法。
...【技术特征摘要】
1.一种渲染管线的转换方法,其特征在于,应用于3d渲染引擎,所述3d渲染引擎包括多个渲染管线,所述方法包括:
2.根据权利要求1所述的渲染管线的转换方法,其特征在于,所述渲染管线至少包括第一渲染管线和第二渲染管线,当前渲染管线为所述第一渲染管线,响应于针对shader文件的编辑操作,生成多个shader镜像文件,包括:
3.根据权利要求1所述的渲染管线的转换方法,其特征在于,所述目标代码宏标识根据以下步骤确定:
4.根据权利要求3所述的渲染管线的转换方法,其特征在于,所述基于所述目标代码宏标识和所述目标shader镜像文件,将当前渲染管线转换至所述目标渲染管线,包括:
5.一种渲染管线的转换装置,其特征在于,包括:
6.根据权利要求5所述的渲染管线的转换装置,其特征在于,所述渲染管线至少包括第一渲染管线和第二渲染管线,当前...
【专利技术属性】
技术研发人员:招新宇,王屹,郑宇华,
申请(专利权)人:珠海剑心互动娱乐有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。