一种渲染方法、装置及电子设备和存储介质转让专利

申请号 : CN202311182196.6

文献号 : CN116912382B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王瑜

申请人 : 成都帆点创想科技有限公司

摘要 :

本申请公开了一种渲染方法、装置及电子设备和存储介质,涉及计算机技术领域,该方法包括:在当前游戏引擎的渲染管线图编辑器中显示候选渲染管线节点;其中,候选渲染管线节点包括几何体渲染节点、光照计算节点、材质渲染节点和后期处理节点;在候选渲染管线节点中选择目标渲染管线节点,并创建目标渲染管线节点之间的连接关系,以创建目标渲染管线图;基于目标渲染管线图在目标场景上进行渲染,以预览目标渲染管线图对应的目标渲染管线的渲染效果。本申请提供的渲染方法,提高了游戏引擎的渲染效率。

权利要求 :

1.一种渲染方法,其特征在于,包括:

在当前游戏引擎的渲染管线图编辑器中显示候选渲染管线节点;其中,所述候选渲染管线节点包括几何体渲染节点、光照计算节点、材质渲染节点和后期处理节点,所述渲染管线图编辑器基于Unity的Editor扩展机制实现;

在所述候选渲染管线节点中选择目标渲染管线节点,并创建所述目标渲染管线节点之间的连接关系,以创建目标渲染管线图;

利用渲染管线图执行器基于所述目标渲染管线图在目标场景上进行渲染,以预览所述目标渲染管线图对应的目标渲染管线的渲染效果;其中,所述渲染管线图执行器基于Unity的脚本编程实现;

其中,所述基于所述目标渲染管线图在目标场景上进行渲染,包括:在目标场景中创建目标对象,在所述目标对象中添加摄像头组件;

扫描所述目标渲染管线图中的所有所述目标渲染管线节点,根据所述目标渲染管线节点的节点类型和参数创建对应的目标组件,并将所述目标组件添加至所述目标对象中;

在所述目标场景中基于所述目标对象中的所述目标组件配置目标渲染管线,并利用所述目标对象中的所述摄像头组件进行渲染;

其中,所述根据所述目标渲染管线节点的节点类型和参数创建对应的目标组件,包括:若所述目标渲染管线节点的节点类型为所述几何体渲染节点,则基于所述目标渲染管线节点的参数创建网格渲染器组件;

若所述目标渲染管线节点的节点类型为所述光照计算节点,则基于所述目标渲染管线节点的参数创建光源组件;

若所述目标渲染管线节点的节点类型为所述材质渲染节点,则基于所述目标渲染管线节点的参数创建材料组件;

若所述目标渲染管线节点的节点类型为所述后期处理节点,则基于所述目标渲染管线节点的参数创建后处理组件。

2.根据权利要求1所述渲染方法,其特征在于,在所述候选渲染管线节点中选择目标渲染管线节点之后,还包括:配置所述目标渲染管线节点的参数。

3.根据权利要求1所述渲染方法,其特征在于,所述创建目标渲染管线图之后,还包括:基于所述目标渲染管线图生成目标渲染管线,以在所述当前游戏引擎中使用所述目标渲染管线进行渲染。

4.根据权利要求3所述渲染方法,其特征在于,所述基于所述目标渲染管线图生成目标渲染管线,包括:扫描所述目标渲染管线图中的所有所述目标渲染管线节点,根据所述目标渲染管线节点的节点类型和参数生成目标渲染管线。

5.根据权利要求1所述渲染方法,其特征在于,所述创建目标渲染管线图之后,还包括:将所述目标渲染管线图导出为目标渲染管线配置文件,并将所述目标渲染管线配置文件保存至预设路径中,以在其他游戏引擎中使用所述预设路径中的所述目标渲染管线配置文件进行渲染。

6.一种渲染装置,其特征在于,包括:

显示模块,用于在当前游戏引擎的渲染管线图编辑器中显示候选渲染管线节点;其中,所述候选渲染管线节点包括几何体渲染节点、光照计算节点、材质渲染节点和后期处理节点,所述渲染管线图编辑器基于Unity的Editor扩展机制实现;

创建模块,用于在所述候选渲染管线节点中选择目标渲染管线节点,并创建所述目标渲染管线节点之间的连接关系,得到目标渲染管线图;

预览模块,用于利用渲染管线图执行器基于所述目标渲染管线图在目标场景上进行渲染,以预览所述目标渲染管线图对应的目标渲染管线的渲染效果;其中,所述渲染管线图执行器基于Unity的脚本编程实现;

其中,所述预览模块包括:

第一创建单元,用于在目标场景中创建目标对象,在所述目标对象中添加摄像头组件;

第二创建单元,用于扫描所述目标渲染管线图中的所有所述目标渲染管线节点,根据所述目标渲染管线节点的节点类型和参数创建对应的目标组件,并将所述目标组件添加至所述目标对象中;

渲染单元,用于在所述目标场景中基于所述目标对象中的所述目标组件配置目标渲染管线,并利用所述目标对象中的所述摄像头组件进行渲染;

其中,所述第二创建单元具体用于:扫描所述目标渲染管线图中的所有所述目标渲染管线节点,若所述目标渲染管线节点的节点类型为所述几何体渲染节点,则基于所述目标渲染管线节点的参数创建网格渲染器组件,若所述目标渲染管线节点的节点类型为所述光照计算节点,则基于所述目标渲染管线节点的参数创建光源组件,若所述目标渲染管线节点的节点类型为所述材质渲染节点,则基于所述目标渲染管线节点的参数创建材料组件,若所述目标渲染管线节点的节点类型为所述后期处理节点,则基于所述目标渲染管线节点的参数创建后处理组件,将创建的组件添加至所述目标对象中。

7.一种电子设备,其特征在于,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述渲染方法的步骤。

8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述渲染方法的步骤。

说明书 :

一种渲染方法、装置及电子设备和存储介质

技术领域

[0001] 本申请涉及计算机技术领域,更具体地说,涉及一种渲染方法、装置及电子设备和存储介质。

背景技术

[0002] Unity是一种广泛应用于游戏开发、虚拟现实和增强现实等领域的跨平台游戏引擎,Unity提供了强大的渲染管线,可以支持高质量的三维和二维图形渲染效果。
[0003] 在Unity中,渲染管线是由一系列的步骤组成的,这些步骤包括几何体渲染、光照计算、材质渲染和后期处理等,每个步骤都是由一个或多个Shader(着色器)程序实现的。Shader程序可以在GPU(图形处理器,Graphics Processing Unit)上执行,以提高渲染性能。Unity提供了一种Shader语言,称为ShaderLab,用于编写Shader程序。
[0004] 在实际的渲染管线编辑中,ShaderLab语言不够直观,难以进行复杂的渲染管线编排。此外,由于Unity的渲染管线是由一系列的步骤组成的,因此在编辑渲染管线时,往往需要进行大量的手动配置和调整,渲染效率较低。
[0005] 因此,如何提高游戏引擎的渲染效率是本领域技术人员需要解决的技术问题。

发明内容

[0006] 本申请的目的在于提供一种渲染方法、装置及一种电子设备和一种计算机可读存储介质,提高了游戏引擎的渲染效率。
[0007] 为实现上述目的,本申请提供了一种渲染方法,包括:
[0008] 在当前游戏引擎的渲染管线图编辑器中显示候选渲染管线节点;其中,所述候选渲染管线节点包括几何体渲染节点、光照计算节点、材质渲染节点和后期处理节点;
[0009] 在所述候选渲染管线节点中选择目标渲染管线节点,并创建所述目标渲染管线节点之间的连接关系,以创建目标渲染管线图;
[0010] 基于所述目标渲染管线图在目标场景上进行渲染,以预览所述目标渲染管线图对应的目标渲染管线的渲染效果。
[0011] 其中,在所述候选渲染管线节点中选择目标渲染管线节点之后,还包括:
[0012] 配置所述目标渲染管线节点的参数。
[0013] 其中,所述创建目标渲染管线图之后,还包括:
[0014] 基于所述目标渲染管线图生成目标渲染管线,以在所述当前游戏引擎中使用所述目标渲染管线进行渲染。
[0015] 其中,所述基于所述目标渲染管线图生成目标渲染管线,包括:
[0016] 扫描所述目标渲染管线图中的所有所述目标渲染管线节点,根据所述目标渲染管线节点的节点类型和参数生成目标渲染管线。
[0017] 其中,所述创建目标渲染管线图之后,还包括:
[0018] 将所述目标渲染管线图导出为目标渲染管线配置文件,并将所述目标渲染管线配置文件保存至预设路径中,以在其他游戏引擎中使用所述预设路径中的所述目标渲染管线配置文件进行渲染。
[0019] 其中,所述基于所述目标渲染管线图在目标场景上进行渲染,包括:
[0020] 在目标场景中创建目标对象,在所述目标对象中添加摄像头组件;
[0021] 扫描所述目标渲染管线图中的所有所述目标渲染管线节点,根据所述目标渲染管线节点的节点类型和参数创建对应的目标组件,并将所述目标组件添加至所述目标对象中;
[0022] 在所述目标场景中基于所述目标对象中的所述目标组件配置目标渲染管线,并利用所述目标对象中的所述摄像头组件进行渲染。
[0023] 其中,所述根据所述目标渲染管线节点的节点类型和参数创建对应的目标组件,包括:
[0024] 若所述目标渲染管线节点的节点类型为所述几何体渲染节点,则基于所述目标渲染管线节点的参数创建网格渲染器组件;
[0025] 若所述目标渲染管线节点的节点类型为所述光照计算节点,则基于所述目标渲染管线节点的参数创建光源组件;
[0026] 若所述目标渲染管线节点的节点类型为所述材质渲染节点,则基于所述目标渲染管线节点的参数创建材料组件;
[0027] 若所述目标渲染管线节点的节点类型为所述后期处理节点,则基于所述目标渲染管线节点的参数创建后处理组件。
[0028] 为实现上述目的,本申请提供了一种渲染装置,包括:
[0029] 显示模块,用于在当前游戏引擎的渲染管线图编辑器中显示候选渲染管线节点;其中,所述候选渲染管线节点包括几何体渲染节点、光照计算节点、材质渲染节点和后期处理节点;
[0030] 创建模块,用于在所述候选渲染管线节点中选择目标渲染管线节点,并创建所述目标渲染管线节点之间的连接关系,得到目标渲染管线图;
[0031] 预览模块,用于基于所述目标渲染管线图在目标场景上进行渲染,以预览所述目标渲染管线图对应的目标渲染管线的渲染效果。
[0032] 为实现上述目的,本申请提供了一种电子设备,包括:
[0033] 存储器,用于存储计算机程序;
[0034] 处理器,用于执行所述计算机程序时实现如上述渲染方法的步骤。
[0035] 为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述渲染方法的步骤。
[0036] 通过以上方案可知,本申请提供的一种渲染方法,包括:在当前游戏引擎的渲染管线图编辑器中显示候选渲染管线节点;其中,所述候选渲染管线节点包括几何体渲染节点、光照计算节点、材质渲染节点和后期处理节点;在所述候选渲染管线节点中选择目标渲染管线节点,并创建所述目标渲染管线节点之间的连接关系,以创建目标渲染管线图;基于所述目标渲染管线图在目标场景上进行渲染,以预览所述目标渲染管线图对应的目标渲染管线的渲染效果。
[0037] 本申请提供的渲染方法,在当前游戏引擎中实现渲染管线图编辑器,渲染管线图编辑器提供候选渲染管线节点,包括几何体渲染节点、光照计算节点、材质渲染节点和后期处理节点,用户可以在渲染管线图编辑器提供的候选渲染管线节点中选择目标渲染管线节点,并创建目标渲染管线节点之间的连接关系,进而创建目标渲染管线图。通过渲染管线图编辑器中的渲染管线图可以直观的进行复杂的渲染管线编排,且无需手动配置和调整每个目标渲染管线节点的参数,即可预览目标渲染管线的渲染效果,提高了游戏引擎的渲染效率。本申请还公开了一种渲染装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
[0038] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。

附图说明

[0039] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
[0040] 图1为根据一示例性实施例示出的一种渲染方法的流程图;
[0041] 图2为根据一示例性实施例示出的另一种渲染方法的流程图;
[0042] 图3为根据一示例性实施例示出的一种渲染装置的结构图;
[0043] 图4为根据一示例性实施例示出的一种电子设备的结构图。

具体实施方式

[0044] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。另外,在本申请实施例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
[0045] 本申请实施例公开了一种渲染方法,提高了游戏引擎的渲染效率。
[0046] 参见图1,根据一示例性实施例示出的一种渲染方法的流程图,如图1所示,包括:
[0047] S101:在当前游戏引擎的渲染管线图编辑器中显示候选渲染管线节点;其中,所述候选渲染管线节点包括几何体渲染节点、光照计算节点、材质渲染节点和后期处理节点;
[0048] 在具体实施中,在当前游戏引擎中实现渲染管线图编辑器,渲染管线图编辑器是一个可视化的编辑器,可以在其中创建和编辑渲染管线。渲染管线图编辑器提供候选渲染管线节点,包括几何体渲染节点、光照计算节点、材质渲染节点和后期处理节点。可以理解的是,不同的几何体对应不同的几何体渲染节点,不同的光照计算方式对应不同的光照计算节点,不同的材质对应不同的材质渲染节点,不同的后期处理方式对应不同的后期处理节点。
[0049] 渲染管线图编辑器可以基于Unity的Editor扩展机制实现。该扩展可以提供一个自定义的编辑器窗口,用于展示渲染管线图的节点和连接线。用户可以在该窗口中使用鼠标和键盘操作来创建和编辑渲染管线图。每个候选渲染管线节点可以包含多个输入和输出端口,用于连接其他候选渲染管线节点,通过连接不同的候选渲染管线节点,可以创建一个完整的渲染管线图。
[0050] 可见,图形化界面方便用户操作,用户可以通过图形化界面直观地创建和编辑渲染管线图,而不需要编写复杂的代码。
[0051] S102:在所述候选渲染管线节点中选择目标渲染管线节点,并创建所述目标渲染管线节点之间的连接关系,以创建目标渲染管线图;
[0052] 在具体实施中,用户可以在渲染管线图编辑器提供的候选渲染管线节点中选择目标渲染管线节点,并创建目标渲染管线节点之间的连接关系,进而创建目标渲染管线图。
[0053] 需要说明的是,渲染管线图编辑器提供的候选渲染管线节点具备默认参数,用户选择目标渲染管线节点之后,可以基于目标渲染管线节点默认参数创建目标渲染管线图,用户也可以手动对目标渲染管线节点的参数进行修改。也即,在所述候选渲染管线节点中选择目标渲染管线节点之后,还包括:配置所述目标渲染管线节点的参数。
[0054] 可见,本实施例支持自定义节点和参数,用户可以根据自己的需求添加、修改或删除节点和参数,以满足不同的渲染需求。
[0055] S103:基于所述目标渲染管线图在目标场景上进行渲染,以预览所述目标渲染管线图对应的目标渲染管线的渲染效果。
[0056] 在具体实施中,利用渲染管线图执行器将目标渲染管线图在目标场景上进行渲染,实现预览目标渲染管线的渲染效果。渲染管线图执行器是一个执行渲染管线图的工具。用户可以使用渲染管线图执行器将目标渲染管线图应用到目标场景中的对象上,并实时预览渲染效果。此外,用户还可以基于渲染管线图执行器的预览效果在渲染管线图编辑器中进行调试和优化渲染管线。
[0057] 作为一种可行的实施方式,所述基于所述目标渲染管线图在目标场景上进行渲染,包括:在目标场景中创建目标对象,在所述目标对象中添加摄像头组件;扫描所述目标渲染管线图中的所有所述目标渲染管线节点,根据所述目标渲染管线节点的节点类型和参数创建对应的目标组件,并将所述目标组件添加至所述目标对象中;在所述目标场景中基于所述目标对象中的所述目标组件配置目标渲染管线,并利用所述目标对象中的所述摄像头组件进行渲染。
[0058] 渲染管线图执行器可以基于Unity的脚本编程实现,该脚本可以扫描目标渲染管线图中所有的目标渲染管线节点,并根据目标渲染管线节点的节点类型和参数创建对应的组件,并将其添加到目标场景中的对象上。在执行渲染管线时,可以使用Unity的Camera(摄像头)组件来进行渲染。在具体实施中,在目标场景中创建一个空对象,也即目标对象,在目标对象中添加一个Camera(摄像头)组件和一个自定义脚本,该自定义脚本可以使用渲染管线图执行器中创建的组件来配置渲染管线,并在每帧渲染时使用Camera(摄像头)组件进行渲染。
[0059] 若目标渲染管线节点的节点类型为几何体渲染节点,则基于目标渲染管线节点的参数创建网格渲染器(MeshRenderer)组件,网格渲染器(MeshRenderer)组件用于渲染几何体。若目标渲染管线节点的节点类型为光照计算节点,则基于目标渲染管线节点的参数创建光源(Light)组件,光源(Light)组件用于计算光照效果。若目标渲染管线节点的节点类型为材质渲染节点,则基于目标渲染管线节点的参数创建材料(Material)组件,材料(Material)组件用于渲染材质效果。若目标渲染管线节点的节点类型为后期处理节点,则基于目标渲染管线节点的参数创建后处理(PostProcessing)组件,后处理(PostProcessing)组件用于执行后期处理效果。
[0060] 可见,本实施例支持实时预览功能,用户可以随时查看编辑好的渲染管线图的效果,快速迭代设计。
[0061] 本申请实施例提供的渲染方法,在当前游戏引擎中实现渲染管线图编辑器,渲染管线图编辑器提供候选渲染管线节点,包括几何体渲染节点、光照计算节点、材质渲染节点和后期处理节点,用户可以在渲染管线图编辑器提供的候选渲染管线节点中选择目标渲染管线节点,并创建目标渲染管线节点之间的连接关系,进而创建目标渲染管线图。通过渲染管线图编辑器中的渲染管线图可以直观的进行复杂的渲染管线编排,且无需手动配置和调整每个目标渲染管线节点的参数,即可预览目标渲染管线的渲染效果,提高了游戏引擎的渲染效率。
[0062] 本申请实施例公开了一种渲染方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
[0063] 参见图2,根据一示例性实施例示出的另一种渲染方法的流程图,如图2所示,包括:
[0064] S201:在当前游戏引擎的渲染管线图编辑器中显示候选渲染管线节点;其中,所述候选渲染管线节点包括几何体渲染节点、光照计算节点、材质渲染节点和后期处理节点;
[0065] S202:在所述候选渲染管线节点中选择目标渲染管线节点,并创建所述目标渲染管线节点之间的连接关系,以创建目标渲染管线图;
[0066] S203:基于所述目标渲染管线图在目标场景上进行渲染,以预览所述目标渲染管线图对应的目标渲染管线的渲染效果;
[0067] S204:基于所述目标渲染管线图生成目标渲染管线,以在所述当前游戏引擎中使用所述目标渲染管线进行渲染;
[0068] 在具体实施中,利用渲染管线图自动生成器生成目标渲染管线,渲染管线图自动生成器是一个自动化的工具,用于根据目标渲染管线图自动生成完整的目标渲染管线,目标渲染管线用于在当前游戏引擎中进行渲染。
[0069] 作为一种可行的实施方式,所述基于所述目标渲染管线图生成目标渲染管线,包括:扫描所述目标渲染管线图中的所有所述目标渲染管线节点,根据所述目标渲染管线节点的节点类型和参数生成目标渲染管线。
[0070] 在具体实施中,渲染管线图自动生成器可以基于Unity的脚本编程实现,该脚本可以扫描目标渲染管线图中所有的目标渲染管线节点,并根据节点类型和参数自动生成完整的渲染管线。在自动生成渲染管线时,可以使用Unity的渲染管线API(应用程序接口,Application Programming Interface)来创建和配置渲染管线。例如,可以使用RenderPipelineManager来获取当前渲染管线实例,并使用该实例来创建和配置各个渲染管线阶段。
[0071] S205:将所述目标渲染管线图导出为目标渲染管线配置文件,并将所述目标渲染管线配置文件保存至预设路径中,以在其他游戏引擎中使用所述预设路径中的所述目标渲染管线配置文件进行渲染。
[0072] 在具体实施中,利用渲染管线图导出器将目标渲染管线图导出为目标渲染管线配置文件,渲染管线图导出器是一个导出渲染管线图的工具。用户可以使用渲染管线图导出器将目标渲染管线图导出为Unity的目标渲染管线配置文件,从而满足跨平台渲染管线的应用需求,也即在其他游戏引擎中使用目标渲染管线。
[0073] 渲染管线图导出器可以基于Unity的AssetPostprocessor机制实现,该机制可以监控特定类型的资源导入和导出事件,并在事件发生时执行自定义代码。在渲染管线图导出器中,可以定义一个导出方法,用于将目标渲染管线图导出为Unity的目标渲染管线配置文件,导出方法可以将渲染管线图转换为JSON格式,然后保存到指定的文件路径中。
[0074] 可见,本实施支持导出为Unity的渲染管线配置文件,用户可以将编辑好的渲染管线图导出为Unity的渲染管线配置文件,方便在不同项目中复用已经编辑好的渲染管线图。本实施支持跨平台渲染管线的应用,用户可以将编辑好的渲染管线图导出为其他游戏引擎或渲染管线开发平台的配置文件,以满足跨平台渲染管线的应用需求。
[0075] 综上所述,本实施例提供了一种基于图的可视化渲染管线编辑器,该编辑器包括渲染管线图编辑器、渲染管线图自动生成器、渲染管线图导出器和渲染管线图执行器。用户可以使用节点库中的节点和参数创建和编辑渲染管线图,也可以使用预设的规则和节点信息自动创建渲染管线图。编辑好的渲染管线图可以导出为Unity的渲染管线配置文件,并在场景中应用,也可以导出为其他游戏引擎或渲染管线开发平台的配置文件,以满足跨平台渲染管线的应用需求。通过图形化界面、自定义节点和参数、实时预览、导出为Unity的渲染管线配置文件和导出为其他游戏引擎或渲染管线开发平台的配置文件等特点,方便用户定制和优化渲染管线,提高游戏渲染效果和开发效率。
[0076] 下面对本申请实施例提供的一种渲染装置进行介绍,下文描述的一种渲染装置与上文描述的一种渲染方法可以相互参照。
[0077] 参见图3,根据一示例性实施例示出的一种渲染装置的结构图,如图3所示,包括:
[0078] 显示模块301,用于在当前游戏引擎的渲染管线图编辑器中显示候选渲染管线节点;其中,所述候选渲染管线节点包括几何体渲染节点、光照计算节点、材质渲染节点和后期处理节点;
[0079] 创建模块302,用于在所述候选渲染管线节点中选择目标渲染管线节点,并创建所述目标渲染管线节点之间的连接关系,得到目标渲染管线图;
[0080] 预览模块303,用于基于所述目标渲染管线图在目标场景上进行渲染,以预览所述目标渲染管线图对应的目标渲染管线的渲染效果。
[0081] 本申请实施例提供的渲染装置,在当前游戏引擎中实现渲染管线图编辑器,渲染管线图编辑器提供候选渲染管线节点,包括几何体渲染节点、光照计算节点、材质渲染节点和后期处理节点,用户可以在渲染管线图编辑器提供的候选渲染管线节点中选择目标渲染管线节点,并创建目标渲染管线节点之间的连接关系,进而创建目标渲染管线图。通过渲染管线图编辑器中的渲染管线图可以直观的进行复杂的渲染管线编排,且无需手动配置和调整每个目标渲染管线节点的参数,即可预览目标渲染管线的渲染效果,提高了游戏引擎的渲染效率。
[0082] 在上述实施例的基础上,作为一种优选实施方式,还包括:
[0083] 配置模块,用于配置所述目标渲染管线节点的参数。
[0084] 在上述实施例的基础上,作为一种优选实施方式,还包括:
[0085] 生成模块,用于基于所述目标渲染管线图生成目标渲染管线,以在所述当前游戏引擎中使用所述目标渲染管线进行渲染。
[0086] 在上述实施例的基础上,作为一种优选实施方式,所述生成模块具体用于:扫描所述目标渲染管线图中的所有所述目标渲染管线节点,根据所述目标渲染管线节点的节点类型和参数生成目标渲染管线。
[0087] 在上述实施例的基础上,作为一种优选实施方式,还包括:
[0088] 导出模块,用于将所述目标渲染管线图导出为目标渲染管线配置文件,并将所述目标渲染管线配置文件保存至预设路径中,以在其他游戏引擎中使用所述预设路径中的所述目标渲染管线配置文件进行渲染。
[0089] 在上述实施例的基础上,作为一种优选实施方式,所述预览模块303包括:
[0090] 第一创建单元,用于在目标场景中创建目标对象,在所述目标对象中添加摄像头组件;
[0091] 第二创建单元,用于扫描所述目标渲染管线图中的所有所述目标渲染管线节点,根据所述目标渲染管线节点的节点类型和参数创建对应的目标组件,并将所述目标组件添加至所述目标对象中;
[0092] 渲染单元,用于在所述目标场景中基于所述目标对象中的所述目标组件配置目标渲染管线,并利用所述目标对象中的所述摄像头组件进行渲染。
[0093] 在上述实施例的基础上,作为一种优选实施方式,所述第二创建单元具体用于:扫描所述目标渲染管线图中的所有所述目标渲染管线节点,若所述目标渲染管线节点的节点类型为所述几何体渲染节点,则基于所述目标渲染管线节点的参数创建网格渲染器组件,若所述目标渲染管线节点的节点类型为所述光照计算节点,则基于所述目标渲染管线节点的参数创建光源组件,若所述目标渲染管线节点的节点类型为所述材质渲染节点,则基于所述目标渲染管线节点的参数创建材料组件,若所述目标渲染管线节点的节点类型为所述后期处理节点,则基于所述目标渲染管线节点的参数创建后处理组件,将创建的组件添加至所述目标对象中。
[0094] 关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0095] 基于上述程序模块的硬件实现,且为了实现本申请实施例的方法,本申请实施例还提供了一种电子设备,图4为根据一示例性实施例示出的一种电子设备的结构图,如图4所示,电子设备包括:
[0096] 通信接口1,能够与其它设备比如网络设备等进行信息交互;
[0097] 处理器2,与通信接口1连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的渲染方法。而所述计算机程序存储在存储器3上。
[0098] 当然,实际应用时,电子设备中的各个组件通过总线系统4耦合在一起。可理解,总线系统4用于实现这些组件之间的连接通信。总线系统4除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4中将各种总线都标为总线系统4。
[0099] 本申请实施例中的存储器3用于存储各种类型的数据以支持电子设备的操作。这些数据的示例包括:用于在电子设备上操作的任何计算机程序。
[0100] 可以理解,存储器3可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read‑Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read‑Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read‑Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD‑ROM,Compact Disc Read‑Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,Synchronous Dynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器3旨在包括但不限于这些和任意其它适合类型的存储器。
[0101] 上述本申请实施例揭示的方法可以应用于处理器2中,或者由处理器2实现。处理器2可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器2可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器3,处理器2读取存储器3中的程序,结合其硬件完成前述方法的步骤。
[0102] 处理器2执行所述程序时实现本申请实施例的各个方法中的相应流程,为了简洁,在此不再赘述。
[0103] 在示例性实施例中,本申请实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器3,上述计算机程序可由处理器2执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、CD‑ROM等存储器。
[0104] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0105] 或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0106] 以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。