CN114064039A - 一种渲染管线的创建方法、装置、存储介质及计算设备 - Google Patents
一种渲染管线的创建方法、装置、存储介质及计算设备 Download PDFInfo
- Publication number
- CN114064039A CN114064039A CN202111425330.1A CN202111425330A CN114064039A CN 114064039 A CN114064039 A CN 114064039A CN 202111425330 A CN202111425330 A CN 202111425330A CN 114064039 A CN114064039 A CN 114064039A
- Authority
- CN
- China
- Prior art keywords
- pipeline
- rendering
- rendered
- description
- switch
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 314
- 238000000034 method Methods 0.000 title claims abstract description 65
- 239000000463 material Substances 0.000 claims abstract description 117
- 230000003068 static effect Effects 0.000 claims abstract description 61
- 238000004590 computer program Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 abstract description 22
- 238000010586 diagram Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 210000000988 bone and bone Anatomy 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
本发明提供了一种渲染管线的创建方法、装置、存储介质及计算设备,该方法包括:接收对待渲染对象源材质的静态开关及上下文开关的配置操作,其中,静态开关用于配置源材质参数,上下文开关控制管线描述的查找规则;依据源材质及源材质的静态开关确定材质模板,从材质模板中查找待渲染对象的渲染批次类型对应的管线变体;利用待渲染对象的上下文数据计算上下文开关的值,依据上下文开关的值从管线变体中查找管线描述,基于管线描述创建渲染管线。通过对待渲染对象源材质配置静态开关及上下文开关,避免了复杂的渲染管线数据的配置过程,而且使得同一源材质在不同开关分支下可生成对应的管线描述,减少了不必要的管线描述数量。
Description
本申请要求2020年12月22日提交中国专利局、申请号为202011531506.7、申请名称为“一种渲染管线的创建方法、装置、存储介质及计算设备”的中国专利申请的优先权,其全部内容通过引用结合在申请中。
技术领域
本发明涉及游戏渲染技术领域,特别是一种渲染管线的创建方法、装置、存储介质及计算设备。
背景技术
现有技术中,通过直接配置渲染管线数据并与渲染API(ApplicationProgramming Interface,应用程序接口)交互的方式对用户实际使用不友好。商业引擎的材质系统封装了较多的细节,容易生成过多管线,从而降低游戏运行效率。在游戏运行阶段动态切换渲染状态,不符合当前移动端GPU(Graphics Processing Unit,图形处理器)的设计,不能充分发挥其效率。另外,现有技术需要多批次渲染的对象会按照渲染对象的顺序进行绘制,绘制过程中需要反复切换管线,渲染效率较低。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的渲染管线的创建方法、装置、存储介质及计算设备,能够避免复杂的渲染管线数据的配置过程,而且可以方便地根据实际渲染需求对配置内容进行调整,使得同一源材质在不同开关分支下可以生成相对应的管线描述,有效减少了不必要的管线描述数量。
根据本发明实施例的一方面,提供了一种渲染管线的创建方法,包括:
接收对待渲染对象源材质的静态开关及上下文开关的配置操作,其中,所述静态开关用于配置源材质参数,所述上下文开关控制管线描述的查找规则;
依据所述源材质及所述静态开关确定材质模板,从所述材质模板中查找所述待渲染对象的渲染批次类型对应的管线变体;
利用所述待渲染对象的上下文数据计算所述上下文开关的值,依据上下文开关的值从所述管线变体中查找管线描述,基于所述管线描述创建渲染管线。
可选地,依据上下文开关的值从所述管线变体中查找管线描述之后,还包括:采用收集器依据所述管线描述收集所述待渲染对象的渲染实例;
基于所述管线描述创建渲染管线之后,还包括:通过创建的渲染管线对具有相同管线描述的渲染实例合并渲染。
可选地,通过创建的渲染管线对具有相同管线描述的渲染实例合并渲染,包括:
获取预先配置的管线描述顺序;
通过创建的渲染管线按照所述管线描述顺序对所述待渲染对象的渲染实例进行渲染,并将属于同一顺序层级的具有相同管线描述的渲染实例合并渲染。
可选地,通过所述静态开关配置的源材质参数包括源材质采用模型参数、待渲染对象源材质渲染方式、源材质使用方式中至少一项。
可选地,从所述材质模板中查找所述待渲染对象的渲染批次类型对应的管线变体,包括:
确定所述待渲染对象采用的渲染方式,通过收集器获取所述渲染方式对应的渲染批次类型;
从所述材质模板中查找获取到的所述渲染批次类型对应的管线变体。
可选地,从所述材质模板中查找获取到的所述待渲染对象的渲染批次类型对应的管线变体之前,还包括:
定义与所述待渲染对象所属场景中渲染相机对应的收集器,其中,一个所述收集器对应一个渲染相机;
对所述收集器传入初始化参数,利用所述初始化参数对所述收集器进行初始化。
可选地,对所述收集器传入初始化参数,包括:
设置所述待渲染对象的渲染方式;
为每种渲染方式配置对应的渲染批次类型,将所述渲染方式与渲染批次类型的对应关系作为初始化参数传入所述收集器;
设置管线描述顺序,将所述管线描述的序号作为初始化参数传入所述收集器。
可选地,所述渲染方式包含普通渲染方式、带勾边的渲染方式、实例化渲染方式中至少一项。
可选地,依据上下文开关的值从所述管线变体中查找管线描述之后,还包括:
将所述待渲染对象使用的材质模板、查找到的所述待渲染对象的渲染批次类型对应的管线变体、依据上下文开关的值从所述管线变体中查找到的管线描述分别归类存储;
其中,所述待渲染对象使用的所有材质模板归属同一类别,查找到的所述待渲染对象的渲染批次类型对应的管线变体归属同一类别,从所述管线变体中查找管线描述归属同一类别。
根据本发明实施例的另一方面,还提供了一种渲染管线的创建装置,包括:
配置模块,适于接收对待渲染对象源材质的静态开关及上下文开关的配置操作,其中,所述静态开关用于配置源材质参数,所述上下文开关控制管线描述的查找规则;
查找模块,适于依据所述源材质及所述静态开关确定材质模板,从所述材质模板中查找所述待渲染对象的渲染批次类型对应的管线变体;
创建模块,适于利用所述待渲染对象的上下文数据计算所述上下文开关的值,依据上下文开关的值从所述管线变体中查找管线描述,基于所述管线描述创建渲染管线。
根据本发明实施例的再一方面,还提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行上文任意实施例的渲染管线的创建方法。
根据本发明实施例的又一方面,还提供了一种计算设备,包括:处理器;存储有计算机程序代码的存储器;当所述计算机程序代码被所述处理器运行时,导致所述计算设备执行上文任意实施例的渲染管线的创建方法。
本发明实施例通过对待渲染对象源材质配置静态开关及上下文开关,使得相关技术人员无需直接操作渲染管线数据,避免了复杂的渲染管线数据的配置过程。而且通过对静态开关及上下文开关的配置操作,能够方便地根据实际渲染需求对配置内容进行调整,使得同一源材质在不同开关分支下可以生成相对应的管线描述,有效减少了不必要的管线描述数量。另外,本发明实施基于配置的源材质的静态开关及上下文开关生成相应的管线描述,并基于管线描述创建渲染管线,从而在游戏运行阶段可以直接切换渲染管线,无需单独改变渲染状态或着色器shader,可以有效地适配新一代图形API的设计。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了根据本发明一实施例的渲染管线的创建方法的流程示意图;
图2示出了根据本发明另一实施例的渲染管线的创建方法的流程示意图;
图3示出了根据本发明一实施例的渲染管线的创建装置的结构示意图;
图4示出了根据本发明另一实施例的渲染管线的创建装置的结构示意图;
图5示出了根据本发明再一实施例的渲染管线的创建装置的结构示意图;
图6示出了根据本发明又一实施例的渲染管线的创建装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本申请的说明书中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为解决上述技术问题,本发明实施例提供了一种渲染管线的创建方法。图1示出了根据本发明一实施例的渲染管线的创建方法的流程示意图。参见图1,该方法包括步骤S102至步骤S106。
步骤S102,接收对待渲染对象源材质的静态开关及上下文开关的配置操作,其中静态开关用于配置源材质参数,上下文开关控制管线描述的查找规则。
本发明实施例的开关分为两级,分别是静态开关和上下文开关,静态指的是这部分开关在配置阶段可以静态确定,且不存在游戏运行过程中切换的情况。例如,静态开关可以包含Skeleton(骨骼)开关、Instance(实例)开关等等。上下文开关可以在游戏运行过程中根据上下文动态切换,配置阶段无法确定上下文开关相关的值,需要依据待渲染对象的上下文数据计算上下文开关的值。本发明实施例可以根据实际需求配置合适的静态开关和上下文开关。
步骤S104,依据源材质及静态开关确定材质模板,从材质模板中查找待渲染对象的渲染批次类型对应的管线变体。
步骤S106,利用待渲染对象的上下文数据计算上下文开关的值,依据上下文开关的值从管线变体中查找管线描述,基于管线描述创建渲染管线。
本发明实施例通过对待渲染对象源材质配置静态开关及上下文开关,使得相关技术人员无需直接操作渲染管线数据,避免了复杂的渲染管线数据的配置过程。通过对静态开关及上下文开关的配置操作,能够方便地根据实际渲染需求对配置内容进行调整,使得同一源材质在不同开关分支下可以生成相对应的管线描述,有效减少了不必要的管线描述数量。另外,本发明实施基于配置的源材质的静态开关及上下文开关生成相应的管线描述,并基于管线描述创建渲染管线,从而在游戏运行阶段可以直接切换渲染管线,无需单独改变渲染状态或着色器shader,可以有效地适配新一代图形API的设计。
通常传统的图形API支持单独改变渲染状态或切换着色器shader,可以改变渲染管线的一小部分内容,而新一代图形API对于改变渲染管线的情况可进行切换管线处理,渲染管线有变化时可整体切换管线,这里改变渲染管线的一小部分和渲染管线全部内容的方式一样。其中,新一代图形API可以包含跨平台的2D和3D绘图应用程序接口Vulkan、图形编程接口Metal、图形接口DX12(即DirectX12)等,本发明实施例对新一代图形API的类型不作具体限定。
通常渲染一个渲染批次只需要管线描述,但对技术人员来说如果直接操作渲染管线所需的操作过程较为复杂。由于待渲染对象的源材质系统会对渲染效果部分进行封装,且将一个渲染效果封装为一个材质,因此本发明实施例根据渲染对象的相关参数生成管线描述。管线描述包含一个渲染批次所需要的渲染状态和着色器shader的静态配置数据。进而将生成的管线描述传给渲染器,并通过渲染器利用管线描述创建渲染管线。
上文实施例生成管线描述的过程中涉及到了源材质、材质模板、管线变体和管线描述几个层次,即从配置源材质的静态开关及上下文开关到最终生成管线描述可以分为源材质、材质模板、管线变体和管线描述几个层次。下面对各层次内容分别进行介绍。
源材质是最终提供给技术人员使用的材质,表示某一种渲染效果。本发明实施例为源材质配置的静态开关包含多个“名称—值”组合,每个游戏项目有一套静态开关的可选配置(如静态开关集合),针对每个源材质可以选择所需的静态开关。因此,在执行步骤S102接收对待渲染对象源材质的静态开关的配置操作时,可以接收技术人员从相应静态开关集合中为源材质选取的静态开关,选取静态开关时可以依据源材质需要支持的功能进行选取,源材质支持的功能越丰富,对应选取的静态开关数量越多。
下面以不同实施例对静态开关包含的“名称—值”的组合进行介绍。
例如,骨骼Skeleton开关可以包含两组“名称—值”的组合,分别为“Skeleton—0”和“Skeleto—1”,这里Skeleton为静态开关名称,0或1分别表示静态开关的值,且0表示静态模型,1表示骨骼动画模型。因此,通过对Skeleton开关进行配置操作,可以配置骨骼对应的模型类型。
又例如,实例Instance开关可以包含两组“名称—值”的组合,分别为“Instance—0”和“Instance—1”,这里Instance为静态开关名称,0或1分别表示静态开关的值,且0表示普通渲染方式,1表示以GPU Instance的方式渲染。因此,通过对Instance开关进行配置操作,可配置待渲染对象的渲染方式。
再例如,法线Normal开关可以包含三组“名称—值”的组合,分别为“Normal—Normal”、“Normal—TBN”和“Normal—NULL”,在开关的值中Normal表示顶点流包含法线,TBN表示顶点流切线和法线,NULL表示法线和切线。
上述举例仅仅是示意性的,本发明实施例对静态开关的内容不做具体限定。结合上述举例,静态开关配置的源材质参数可以包括源材质使用方式、源材质采用模型参数、待渲染对象源材质渲染方式等。
对于材质模板,一个材质模板包含多个渲染批次类型,渲染批次类型是逻辑上的一种分类枚举类型,每个材质模板需要对支持的渲染批次定义管线变体。材质模板可以在编辑阶段由源材质和静态开关共同确定。使用材质模板的待渲染对象包含的渲染批次由收集器的配置参数和待渲染对象的配置共同决定。对于没有使用的管线变体和管线描述,在导出阶段不会被包含在材质模板中。
对于管线变体,本发明实施例从材质模板中查询渲染批次类型对应的管线变体。一个渲染批次所对应所有可能的管线描述集合,通过上下文开关可以从管线描述集合中确定出最终的管线描述。上下文开关包含“名称—值”的组合,但是上下文开关的值不是由技术人员直接指定,而是根据代码定义的规则计算得出,本发明实施例利用待渲染对象的上下文数据计算上下文开关的值。每个游戏项目有一套上下文开关的可选配置(如上下文开关集合),每个游戏项目中的所有管线变体可从同一个上下文开关集合中选择需要的多个上下文开关,所有配置的上下文开关可能的值所对应的管线描述在导出阶段都会生成。
上下文开关为代码定义的规则,用于控制查找管线描述的规则,输入参数是上下文数据,该规则的代码里会读取需要的参数得到管线描述。上下文为固定的输入结构,渲染对象可以设置上下文的数据,根据渲染对象提供的上下文数据可以计算得到各上下文开关的值,上下文开关的值用于查找管线描述。
下面以不同实施例对上下文开关包含的“名称—值”的组合进行介绍。每个上下文开关都有一段规则。
例如,上下文开关ReceiveShadow(物体是否接收阴影)相关上下文变量为intshadow,对应的规则为,shadow设置0为无阴影,shadow设置1为低效果阴影,shadow设置2为高效果阴影。
又例如,上下文开关ColorBlendByAlpha(管线颜色混合)相关上下文变量为floatalpha,对应的规则为,如果alpha>0.95,选择不透明的管线,如果alpha<0.95,选择半透的管线,该管线的像素着色器pixel shader有alpha参数。
对于管线描述,本发明实施例依据计算得到的上下文开关的值从管线变体中查找管线描述,管线描述用于传给渲染器,并通过渲染器创建渲染管线。
参见上文步骤S104,在本发明一实施例中,从材质模板中查找待渲染对象的渲染批次类型对应的管线变体时,可以先确定待渲染对象采用的渲染方式,并通过收集器获取渲染方式对应的渲染批次类型。然后从材质模板中查找获取到的渲染批次类型对应的管线变体。
本发明实施例中,待渲染对象包含渲染方式EntityRenderType的值,待渲染对象在编辑阶段可以确定材质模板,运行阶段每帧可以提交到多个收集器进行渲染,具体可以由相机裁剪的结果决定每帧提交到哪个收集器。
该实施例的收集器在定义过程中会预先建立渲染方式EntityRenderType和渲染批次类型的映射关系,因此,在确定待渲染对象采用的渲染方式之后,通过收集器可以获取到渲染方式对应的渲染批次类型。关于定义收集器的过程可以参见后文实施例。其中,待渲染对象的渲染方式可以包括普通渲染方式、带勾边的渲染方式、实例化渲染方式等,本发明实施例对待渲染对象的渲染方式不作具体限定。
在本发明一实施例中,还可以采用收集器收集待渲染对象的渲染实例,并将相同管线描述的渲染实例合并渲染,以提高待渲染对象的渲染效率。基于此,参见图2,本发明实施例还提供了另一种渲染管线的创建方法,包括步骤S202至步骤S210。
步骤S202,接收对待渲染对象源材质的静态开关及上下文开关的配置操作,其中静态开关用于配置源材质参数,上下文开关控制管线描述的查找规则。
步骤S204,依据源材质及静态开关确定材质模板,从材质模板中查找待渲染对象的渲染批次类型对应的管线变体。
步骤S206,利用待渲染对象的上下文数据计算上下文开关的值,依据上下文开关的值从管线变体中查找管线描述。
关于上文步骤S202至步骤S206的介绍具体可以参见上文实施例内容。
步骤S208,采用收集器依据管线描述收集待渲染对象的渲染实例。
由于有些待渲染对象需要不止一个渲染批次进行渲染,每个渲染批次对应一个管线描述。因此在执行步骤S208时可将待渲染对象的多个渲染实例收集到相应管线描述对应的容器,其中,一个管线描述对应一个容器。最后可以将管线描述相同的渲染实例一起渲染,即将一个容器中的渲染实例一起渲染。
步骤S210,基于管线描述创建渲染管线,通过创建的渲染管线对具有相同管线描述的渲染实例合并渲染。
在该实施例中,若依据不同待渲染对象的上下文数据计算出相同的上下文开关的值,则依据相同的上下文开关的值从管线变体中可能查找到相同的管线描述,对于相同管线描述的待渲染对象的渲染实例可进行合并渲染。例如,依据待渲染对象A和待渲染对象B的上下文数据分别计算出上下文开关的值相同,且依据相同的上下文开关的值查找的管线描述也相同。此时可以将待渲染对象A和待渲染对象B一起渲染。
由此,本发明实施例针对当前移动端图形处理器GPU进行了渲染效率的优化,通过依据渲染管线收集渲染实例,并在后续将渲染管线相同的渲染实例一起合并渲染,不仅有效地提高了待渲染对象的渲染效率,而且还有效地减少了渲染API切换管线的次数,节约了切换管线产生的开销。
在本发明实施例中,待渲染对象在编辑阶段可以确定材质模板,运行阶段每帧可以提交到多个收集器进行渲染,一个待渲染对象提交到一个收集器时,由于管线描述包含一个渲染批次所需要的渲染状态,因此在查找管线描述时可以判断管线描述的渲染状态是否发生变化,若渲染状态发生变化,从所述材质模板中查找所述待渲染对象的渲染批次类型对应的管线变体,并依据上下文开关的值从所述管线变体中查找管线描述。若渲染状态未发生变化,可以直接使用上一帧的管线描述。
在本发明一可选实施例中,在执行步骤S210通过创建的渲染管线对具有相同管线描述的渲染实例合并渲染时,还可以先获取预先配置的管线描述顺序,进而通过创建的渲染管线按照管线描述顺序对待渲染对象的渲染实例进行渲染。并且,在依据管线描述顺序对渲染实例进行渲染的过程中,将属于同一顺序层级的具有相同管线描述的渲染实例合并渲染。
该实施例中,收集器在定义过程中会设置管线描述顺序,预先设置多个有序的【管线描述,id】组合,【管线描述,id】组合用于规定逻辑渲染顺序。关于定义收集器的过程可以参见后文实施例。
例如,规定待渲染对象A先渲染,设置对应的管线描述的id为1,待渲染对象B后渲染,设置对应的管线描述的id为2。此时,即使针对待渲染对象A和待渲染对象B查询到的管线描述相同,但是由于管线描述对应的id不同,会将两个待渲染对象分别收集到不同的【管线描述,id】对应的容器,同一个【管线描述,id】对应的待渲染对象会一起渲染。这里同一【管线描述,id】对应的待渲染对象的渲染实例属于同一顺序层级的具有相同管线描述的渲染实例。
本发明实施例设置的多组有序的【管线描述,id】组合中,任意组合不重复,id主要用于相同管线描述出现多次的情况,大部分情况id默认值为0。另外,每个【管线描述,id】对应一个容器,用于收集渲染实例。
本发明实施例按照预先配置的渲染管线顺序对渲染实例进行渲染,相比于现有技术中按照待渲染对象从远到近的渲染顺序进行渲染的过程具有更高的渲染效率。
在本发明实施例中,在从材质模板中查找获取到的待渲染对象的渲染批次类型对应的管线变体之前,还可以定义收集器并对收集器进行初始化。具体过程为,首先定义与待渲染对象所属场景中渲染相机对应的收集器,其中,一个收集器可以对应一个渲染相机。然后对收集器传入初始化参数,利用初始化参数对收集器进行初始化。该实施例中,对收集器传入的初始化参数包含渲染方式与渲染批次类型的对应关系、管线描述的序号等。
对收集器传入的初始化参数时,首先可以设置待渲染对象的渲染方式EntityRenderType,然后为每种渲染方式配置对应的渲染批次类型,并将渲染方式与渲染批次类型的对应关系作为初始化参数传入收集器。进而设置管线描述顺序,并将管线描述的序号作为初始化参数传入收集器。本发明实施例对不同初始化参数传入收集器的顺序不作具体限定。
在本发明实施例中,一个渲染方式EntityRenderType可以配置多个渲染批次类型,其中,每个渲染批次对应一个管线变体。渲染方式可以包括普通渲染方式、带勾边的渲染方式、实例化渲染方式等。并且,收集器具有不同的渲染模式,如前向渲染模式、延时渲染模式等。下面介绍为不同渲染方式EntityRenderType配置对应的多个渲染批次类型的过程。
例如,一个前向渲染的收集器可以支持默认渲染方式,也可以支持带勾边的渲染方式,那么需要配置这两种渲染方式EntityRenderType各自对应的渲染批次类型,即为默认渲染方式配置在前向渲染模式下对应的多个渲染批次类型,并且为带勾边的渲染方式配置在前向渲染模式下对应的多个渲染批次类型。
又例如,一个延时渲染的收集器可以支持默认渲染方式,也可以支持带勾边的渲染方式,那么可以为默认渲染方式配置在延时渲染模式下对应的多个渲染批次类型,并且为带勾边的渲染方式配置在延时渲染模式下对应的多个渲染批次类型。
在本发明实施例中,在执行步骤S106依据上下文开关的值从管线变体中查找管线描述之后,还可以将待渲染对象使用的材质模板、查找到的待渲染对象的渲染批次类型对应的管线变体、依据上下文开关的值从管线变体中查找到的管线描述分别归类存储。
该实施例可以分为三部分数据进行存储,将待渲染对象使用的所有材质模板归属同一类别并存储。将查找到的待渲染对象的渲染批次类型对应的管线变体归属同一类别并存储,将从管线变体中查找管线描述归属同一类别并存储。
采用本发明实施例,同一个材质模板在配置阶段可以配置多个渲染批次类型,例如延时渲染模式和前向渲染模式需要的渲染批次对应的管线变体都配置在材质模板,在资源存储阶段只存储需要使用的渲染模式对应的管线变体和管线描述,从而游戏只需要加载这部分管线变体和管线描述,无需加载所有管线变体和管线描述,从而可以提高游戏运行速度。
基于同一发明构思,本发明实施例还提供了一种渲染管线的创建装置,用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3示出了根据本发明一实施例的渲染管线的创建装置的结构示意图。参见图3,渲染管线的创建装置包括配置模块310、查找模块320和创建模块330。
配置模块310,适于接收对待渲染对象源材质的静态开关及上下文开关的配置操作,其中,静态开关用于配置源材质参数,上下文开关控制管线描述的查找规则。
查找模块320,适于依据源材质及静态开关确定材质模板,从材质模板中查找待渲染对象的渲染批次类型对应的管线变体。
创建模块330,适于利用待渲染对象的上下文数据计算上下文开关的值,依据上下文开关的值从管线变体中查找管线描述,基于管线描述创建渲染管线。
本发明实施例通过对待渲染对象源材质配置静态开关及上下文开关,使得相关技术人员无需直接操作渲染管线数据,避免了复杂的渲染管线数据的配置过程。通过对静态开关及上下文开关的配置操作,能够方便地根据实际渲染需求对配置内容进行调整,使得同一源材质在不同开关分支下可以生成相对应的管线描述,有效减少了不必要的管线描述数量。另外,本发明实施基于配置的源材质的静态开关及上下文开关生成相应的管线描述,并基于管线描述创建渲染管线,从而在游戏运行阶段可以直接切换渲染管线,无需单独改变渲染状态或着色器shader,可以有效地适配新一代图形API的设计。
参见图4,在本发明一实施例中,上文图3所示实施例中的渲染管线的创建装置还包括收集模块340和渲染模块350。
收集模块340,适于在创建模块330依据上下文开关的值从管线变体中查找管线描述之后,采用收集器依据管线描述收集待渲染对象的渲染实例。
渲染模块350,适于在创建模块330基于管线描述创建渲染管线之后,通过创建的渲染管线对具有相同管线描述的渲染实例合并渲染。
在本发明一实施例中,渲染模块350适于,获取预先配置的管线描述顺序;
通过创建的渲染管线按照管线描述顺序对待渲染对象的渲染实例进行渲染,并将属于同一顺序层级的具有相同管线描述的渲染实例合并渲染。
在本发明一实施例中,通过静态开关配置的源材质参数包括源材质采用模型参数、待渲染对象源材质渲染方式、源材质使用方式中至少一项。
在本发明一实施例中,查找模块320还适于,确定待渲染对象采用的渲染方式,通过收集器获取渲染方式对应的渲染批次类型;从材质模板中查找获取到的渲染批次类型对应的管线变体。
参见图5,在本发明一实施例中,上文图3所示实施例中的渲染管线的创建装置还包括初始化模块360。
初始化模块360,适于在查找模块320从材质模板中查找获取到的待渲染对象的渲染批次类型对应的管线变体之前,定义与待渲染对象所属场景中渲染相机对应的收集器,其中,一个收集器对应一个渲染相机;对收集器传入初始化参数,利用初始化参数对收集器进行初始化。
在本发明一实施例中,初始化模块360还适于,设置待渲染对象的渲染方式;为每种渲染方式配置对应的渲染批次类型,将渲染方式与渲染批次类型的对应关系作为初始化参数传入收集器;设置管线描述顺序,将管线描述的序号作为初始化参数传入收集器。
在本发明一实施例中,渲染方式包含普通渲染方式、带勾边的渲染方式、实例化渲染方式中至少一项。
参见图6,在本发明一实施例中,上文图3所示实施例中的渲染管线的创建装置还包括存储模块370。
存储模块370,适于创建模块330依据上下文开关的值从管线变体中查找管线描述之后,将待渲染对象使用的材质模板、查找到的待渲染对象的渲染批次类型对应的管线变体、依据上下文开关的值从管线变体中查找到的管线描述分别归类存储;其中,待渲染对象使用的所有材质模板归属同一类别,查找到的待渲染对象的渲染批次类型对应的管线变体归属同一类别,从管线变体中查找管线描述归属同一类别。
基于同一发明构思,本发明实施例还提供了一种计算机存储介质,计算机存储介质存储有计算机程序代码,当计算机程序代码在计算设备上运行时,导致计算设备执行上文任意实施例的渲染管线的创建方法。
基于同一发明构思,本发明实施例还提供了一种计算设备,包括:处理器;存储有计算机程序代码的存储器;当计算机程序代码被处理器运行时,导致计算设备执行上文任意实施例的渲染管线的创建方法。
所属领域的技术人员可以清楚地了解到,上述描述的系统、装置、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,为简洁起见,在此不另赘述。
另外,在本发明各个实施例中的各功能单元可以物理上相互独立,也可以两个或两个以上功能单元集成在一起,还可以全部功能单元都集成在一个处理单元中。上述集成的功能单元既可以采用硬件的形式实现,也可以采用软件或者固件的形式实现。
本领域普通技术人员可以理解:所述集成的功能单元如果以软件的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,其包括若干指令,用以使得一台计算设备(例如个人计算机,服务器,或者网络设备等)在运行所述指令时执行本发明各实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM)、随机存取存储器(RAM),磁碟或者光盘等各种可以存储程序代码的介质。
或者,实现前述方法实施例的全部或部分步骤可以通过程序指令相关的硬件(诸如个人计算机,服务器,或者网络设备等的计算设备)来完成,所述程序指令可以存储于一计算机可读取存储介质中,当所述程序指令被计算设备的处理器执行时,所述计算设备执行本发明各实施例所述方法的全部或部分步骤。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:在本发明的精神和原则之内,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案脱离本发明的保护范围。
Claims (12)
1.一种渲染管线的创建方法,其特征在于,包括:
接收对待渲染对象源材质的静态开关及上下文开关的配置操作,其中,所述静态开关用于配置源材质参数,所述上下文开关控制管线描述的查找规则;
依据所述源材质及所述静态开关确定材质模板,从所述材质模板中查找所述待渲染对象的渲染批次类型对应的管线变体;
利用所述待渲染对象的上下文数据计算所述上下文开关的值,依据上下文开关的值从所述管线变体中查找管线描述,基于所述管线描述创建渲染管线;其中,若依据不同待渲染对象的上下文数据计算出相同的上下文开关的值,依据所述相同的上下文开关的值从管线变体中查找相同的管线描述;
通过创建的渲染管线对相同管线描述对应的待渲染对象的渲染实例进行合并渲染。
2.根据权利要求1所述的方法,其特征在于,
依据上下文开关的值从所述管线变体中查找管线描述之后,还包括:采用收集器依据所述管线描述收集所述待渲染对象的渲染实例;
基于所述管线描述创建渲染管线之后,还包括:通过创建的渲染管线对具有相同管线描述的渲染实例合并渲染。
3.根据权利要求2所述的方法,其特征在于,通过创建的渲染管线对具有相同管线描述的渲染实例合并渲染,包括:
获取预先配置的管线描述顺序;
通过创建的渲染管线按照所述管线描述顺序对所述待渲染对象的渲染实例进行渲染,并将属于同一顺序层级的具有相同管线描述的渲染实例合并渲染。
4.根据权利要求1-3中任一项所述的方法,其特征在于,通过所述静态开关配置的源材质参数包括源材质采用模型参数、待渲染对象源材质渲染方式、源材质使用方式中至少一项。
5.根据权利要求1-3中任一项所述的方法,其特征在于,从所述材质模板中查找所述待渲染对象的渲染批次类型对应的管线变体,包括:
确定所述待渲染对象采用的渲染方式,通过收集器获取所述渲染方式对应的渲染批次类型;
从所述材质模板中查找获取到的所述渲染批次类型对应的管线变体。
6.根据权利要求5所述的方法,其特征在于,从所述材质模板中查找获取到的所述待渲染对象的渲染批次类型对应的管线变体之前,还包括:
定义与所述待渲染对象所属场景中渲染相机对应的收集器,其中,一个所述收集器对应一个渲染相机;
对所述收集器传入初始化参数,利用所述初始化参数对所述收集器进行初始化。
7.根据权利要求6所述的方法,其特征在于,对所述收集器传入初始化参数,包括:
设置所述待渲染对象的渲染方式;
为每种渲染方式配置对应的渲染批次类型,将所述渲染方式与渲染批次类型的对应关系作为初始化参数传入所述收集器;
设置管线描述顺序,将所述管线描述的序号作为初始化参数传入所述收集器。
8.根据权利要求1-3中任一项所述的方法,其特征在于,所述渲染方式包含普通渲染方式、带勾边的渲染方式、实例化渲染方式中至少一项。
9.根据权利要求1-3中任一项所述的方法,其特征在于,依据上下文开关的值从所述管线变体中查找管线描述之后,还包括:
将所述待渲染对象使用的材质模板、查找到的所述待渲染对象的渲染批次类型对应的管线变体、依据上下文开关的值从所述管线变体中查找到的管线描述分别归类存储;
其中,所述待渲染对象使用的所有材质模板归属同一类别,查找到的所述待渲染对象的渲染批次类型对应的管线变体归属同一类别,从所述管线变体中查找管线描述归属同一类别。
10.一种渲染管线的创建装置,其特征在于,包括:
配置模块,适于接收对待渲染对象源材质的静态开关及上下文开关的配置操作,其中,所述静态开关用于配置源材质参数,所述上下文开关控制管线描述的查找规则;
查找模块,适于依据所述源材质及所述静态开关确定材质模板,从所述材质模板中查找所述待渲染对象的渲染批次类型对应的管线变体;
创建模块,适于利用所述待渲染对象的上下文数据计算所述上下文开关的值,依据上下文开关的值从所述管线变体中查找管线描述,基于所述管线描述创建渲染管线;其中,若依据不同待渲染对象的上下文数据计算出相同的上下文开关的值,依据所述相同的上下文开关的值从管线变体中查找相同的管线描述;
渲染模块,适于通过创建的渲染管线对相同管线描述对应的待渲染对象的渲染实例进行合并渲染。
11.一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行权利要求1-9中任一项所述的渲染管线的创建方法。
12.一种计算设备,包括:处理器;存储有计算机程序代码的存储器;当所述计算机程序代码被所述处理器运行时,导致所述计算设备执行权利要求1-9中任一项所述的渲染管线的创建方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111425330.1A CN114064039A (zh) | 2020-12-22 | 2020-12-22 | 一种渲染管线的创建方法、装置、存储介质及计算设备 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111425330.1A CN114064039A (zh) | 2020-12-22 | 2020-12-22 | 一种渲染管线的创建方法、装置、存储介质及计算设备 |
CN202011531506.7A CN112667234B (zh) | 2020-12-22 | 2020-12-22 | 一种渲染管线的创建方法、装置、存储介质及计算设备 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011531506.7A Division CN112667234B (zh) | 2020-12-22 | 2020-12-22 | 一种渲染管线的创建方法、装置、存储介质及计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114064039A true CN114064039A (zh) | 2022-02-18 |
Family
ID=75407823
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111425330.1A Pending CN114064039A (zh) | 2020-12-22 | 2020-12-22 | 一种渲染管线的创建方法、装置、存储介质及计算设备 |
CN202011531506.7A Active CN112667234B (zh) | 2020-12-22 | 2020-12-22 | 一种渲染管线的创建方法、装置、存储介质及计算设备 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011531506.7A Active CN112667234B (zh) | 2020-12-22 | 2020-12-22 | 一种渲染管线的创建方法、装置、存储介质及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN114064039A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115185523B (zh) * | 2022-09-13 | 2022-11-25 | 北京蔚领时代科技有限公司 | 一种将ProceduralMesh转换为能打包的静态网格的方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8922564B2 (en) * | 2010-12-01 | 2014-12-30 | Microsoft Corporation | Controlling runtime execution from a host to conserve resources |
CN104036534B (zh) * | 2014-06-27 | 2017-02-22 | 成都品果科技有限公司 | 一种基于wp8平台的相机实时特效渲染方法 |
EP3012737A1 (en) * | 2014-10-24 | 2016-04-27 | Thomson Licensing | Devices and methods for generating elementary geometries |
CN108363569B (zh) * | 2018-03-07 | 2021-06-11 | 腾讯科技(深圳)有限公司 | 应用中的图像帧生成方法、装置、设备及存储介质 |
CN108573524B (zh) * | 2018-04-12 | 2022-02-08 | 东南大学 | 基于渲染管线的交互式实时自由立体显示方法 |
CN109242943B (zh) * | 2018-08-21 | 2023-03-21 | 腾讯科技(深圳)有限公司 | 一种图像渲染方法、装置及图像处理设备、存储介质 |
CN109325899B (zh) * | 2018-09-07 | 2023-04-04 | 格兰菲智能科技有限公司 | 计算机系统、图形处理单元及其图形处理方法 |
CN111833429A (zh) * | 2019-04-04 | 2020-10-27 | 厦门雅基软件有限公司 | 三维游戏渲染方法、三维引擎、电子设备及可读存储介质 |
CN110874856A (zh) * | 2019-11-12 | 2020-03-10 | 广州银汉科技有限公司 | 一种基于gpu特性的实时渲染gui的优化方法 |
CN111818120B (zh) * | 2020-05-20 | 2023-05-02 | 北京元心科技有限公司 | 端云用户交互方法、系统及相应设备、存储介质 |
CN111968214B (zh) * | 2020-07-29 | 2024-04-19 | 完美世界(北京)软件科技发展有限公司 | 一种体积云渲染方法、装置、电子设备及存储介质 |
-
2020
- 2020-12-22 CN CN202111425330.1A patent/CN114064039A/zh active Pending
- 2020-12-22 CN CN202011531506.7A patent/CN112667234B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112667234B (zh) | 2021-12-24 |
CN112667234A (zh) | 2021-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6995765B2 (en) | System, method, and computer program product for optimization of a scene graph | |
CN104751507B (zh) | 图形内容渲染方法和装置 | |
US20230120253A1 (en) | Method and apparatus for generating virtual character, electronic device and readable storage medium | |
US10719303B2 (en) | Graphics engine and environment for encapsulating graphics libraries and hardware | |
CN108399646B (zh) | 一种图像渲染方法及装置 | |
CN111429333A (zh) | 一种gpu动态调频的方法、装置及系统 | |
CN112667234B (zh) | 一种渲染管线的创建方法、装置、存储介质及计算设备 | |
US20210287418A1 (en) | Graphics processing unit render mode selection system | |
US8907979B2 (en) | Fast rendering of knockout groups using a depth buffer of a graphics processing unit | |
CN111583379A (zh) | 虚拟模型的渲染方法、装置、存储介质与电子设备 | |
CN111710020B (zh) | 动画渲染方法和装置及存储介质 | |
US10964288B2 (en) | Automatically adapt user interface color scheme for digital images and video | |
CN109671097B (zh) | 运动模糊实现方法及装置 | |
WO2023173728A1 (zh) | 图形渲染方法、装置及存储介质 | |
CN110069313A (zh) | 图像切换方法、装置、电子设备及存储介质 | |
CN113419806B (zh) | 图像处理方法、装置、计算机设备和存储介质 | |
CN112862923A (zh) | 特征直方图驱动的二维标量场数据可视化方法及系统 | |
CN113535171B (zh) | 一种信息查找方法、装置、设备及存储介质 | |
CN112579083B (zh) | 图像展示方法、装置、电子设备和存储介质 | |
CN116310213B (zh) | 三维物体模型的处理方法、装置、电子设备与可读存储介质 | |
CN117437338A (zh) | 特效生成方法、装置和计算机可读存储介质 | |
CN116991295A (zh) | 一种图像处理方法及装置 | |
CN115345971A (zh) | 一种模型纹理切换方法及装置 | |
CN117541696A (zh) | 三维模型贴图的渲染和制作方法、装置、设备和存储介质 | |
CN115129553A (zh) | 图可视化方法、装置、设备、介质及产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20220218 Assignee: Beijing Xuanguang Technology Co.,Ltd. Assignor: Perfect world (Beijing) software technology development Co.,Ltd. Contract record no.: X2022990000514 Denomination of invention: A method, device, storage medium and computing device for creating a rendering pipeline License type: Exclusive License Record date: 20220817 |
|
EE01 | Entry into force of recordation of patent licensing contract |