System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及渲染,尤其是涉及到一种渲染流程图的生成方法、装置及设备。
技术介绍
1、随着现代cpu和gpu以及游戏行业的高速发展,游戏引擎以及图像渲染的应用技术越来越复杂,一个精致的三维渲染场景往往需要多个渲染子系统,例如,地形、粒子、全局光照、贴花等,各个渲染子系统之间存在着直接或间接依赖的关系。如果涉及到不同的渲染风格,例如,基于物理渲染或者非真实渲染等,整个渲染系统的复杂度也会随之上升。
2、相关技术中,可通过渲染导图来创建渲染流程图,以降低渲染系统的复杂度,渲染导图是基于编译期间的静态代码去控制生成的,通过使用静态编译语言,开发人员可以利用其强大的编译能力和灵活性来创建复杂的渲染流程图,以满足特定的渲染需求。然而,使用静态代码生成的渲染导图需要开发人员具备较高的编程技能,并且需要投入更多的时间和精力去编写和维护代码,对于开发资源和技术要求都较高,使得渲染系统在代码编译过程中的灵活性较差,影响渲染引擎的运行效率。
技术实现思路
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、构建单元,用于根据所述节点配置信息构建编译对象。
32、进一步地,所述获取单元包括:
33、第一定义模块,用于用于在脚本文件中定义渲染流程图的节点,所述节点为渲染过程中抽象表示的一个环节;
34、配置模块,用于对所述渲染流程图中的每个节点进行资源配置、连接配置以及参数配置,得到节点配置信息。
35、进一步地,所述获取单元还包括:
36、第二定义模块,用于在所述获取渲染流程图的节点配置信息之后,在脚本文件中定义渲染流程图中节点的渲染结构,所述渲染结构包括节点之间连接关系,所述连接关系包括输入关系和输出关系;
37、确定模块,用于根据节点之间的输入关系和输出关系,确定节点之间的依赖关系。
38、进一步地,所述获取单元还包括:
39、处理模块,用于所述在脚本文件中定义渲染流程图中节点的渲染结构之后,在脚本文件中创建渲染流程图对象,当接收到节点之间输入关系和输出关系的变更指令,使用所述渲染流程图对象处理所述节点之间的连接关系。
40、进一步地,所述构建单元,具体用于读取节点配置信息,得到节点资源数据,所述节点资源数据包括节点、资源以及渲染结构;在宿主语言中创建对应的底层渲染数据结构体,将所述节点资源数据写入至所述底层渲染数据结构体,得到资源结构体;由脚本文件中节点、资源以及渲染结构将资源结构体持久化至存储器中,构建编译对象,以使得所述编译对象在渲染运行时根据不同渲染平台读取相应的资源结构体。
41、进一步地,所述生成单元,具体用于根据所述渲染链路上的操作指令,确定各个节点的资源流向;根据所述各个节点的资源流向,调用各个节点的渲染函数;按照所述节点之间的依赖关系执行所述渲染函数,根据所述资源流向将上游节点的资源输出传递至下游节点,形成渲染流程图。
42、根据本申请的第三个方面,提供了一种计算机设备,包括存储器和处理器,本文档来自技高网...
【技术保护点】
1.一种渲染流程图的生成方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,在所述读取使用脚本文件构建的编译对象之前,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述获取渲染流程图的节点配置信息,具体包括:
4.根据权利要求2所述的方法,其特征在于,在所述获取渲染流程图的节点配置信息之后,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述在脚本文件中定义渲染流程图中节点的渲染结构之后,所述方法还包括:
6.根据权利要求2所述的方法,其特征在于,所述根据所述节点配置信息构建编译对象,具体包括:
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述根据所述渲染链路上的操作指令调用各个节点的渲染函数,按照所述节点之间的依赖关系执行所述渲染函数,生成渲染流程图,具体包括:
8.一种渲染流程图的生成装置,其特征在于,包括:
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述渲染流程图的生成方法的步骤。
...【技术特征摘要】
1.一种渲染流程图的生成方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,在所述读取使用脚本文件构建的编译对象之前,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述获取渲染流程图的节点配置信息,具体包括:
4.根据权利要求2所述的方法,其特征在于,在所述获取渲染流程图的节点配置信息之后,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述在脚本文件中定义渲染流程图中节点的渲染结构之后,所述方法还包括:
6.根据权利要求2所述的方法,其特征在于,所述根据所述节点配置信息构建编译对象,具体包括:...
【专利技术属性】
技术研发人员:熊宏康,王月,崔铭,冯星,方顺,
申请(专利权)人:北京渲光科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。