CN114170364A - 一种渲染流程确定方法、装置及电子设备 - Google Patents
一种渲染流程确定方法、装置及电子设备 Download PDFInfo
- Publication number
- CN114170364A CN114170364A CN202111509505.7A CN202111509505A CN114170364A CN 114170364 A CN114170364 A CN 114170364A CN 202111509505 A CN202111509505 A CN 202111509505A CN 114170364 A CN114170364 A CN 114170364A
- Authority
- CN
- China
- Prior art keywords
- rendering
- node
- texture
- determining
- target
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本公开涉及一种渲染流程确定方法,尤其涉及图像处理技术领域。包括:获取多个渲染节点的第一关联关系;根据第一关联关系,确定多个渲染节点对应的至少两个渲染纹理和第二关联关系,其中,第二关联关系为多个渲染节点与至少两个渲染纹理的关联关系;根据第二关联关系,确定渲染流程。本公开实施例用于解决目前的渲染流程繁琐,流程复杂度高的问题。
Description
技术领域
本公开涉及图像处理技术领域,尤其涉及一种渲染流程确定方法、装置及电子设备。
背景技术
目前在实现图像渲染时,通常需要多个渲染节点来实现完整渲染流程,由于渲染节点数量较多,在使用摄像头组件(Camera)和设置渲染纹理(Render Texture,RT)时,需要合理设计渲染流程,因此亟需实现针对多个渲染节点的一种复杂度较低的渲染流程确定方法。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种渲染流程确定方法、装置及电子设备,可以简化渲染流程,以及降低修改渲染流程的复杂度。
为了实现上述目的,本公开实施例提供的技术方案如下:
第一方面,提供一种渲染流程确定方法,包括:
获取多个渲染节点的第一关联关系;
根据所述第一关联关系,确定所述多个渲染节点对应的至少两个渲染纹理和第二关联关系,其中,所述第二关联关系为所述多个渲染节点与所述至少两个渲染纹理的关联关系;
根据所述第二关联关系,确定渲染流程。
作为本公开实施例一种可选的实施方式,所述根据所述第一关联关系,确定所述多个渲染节点对应的至少两个渲染纹理和第二关联关系,包括:
根据所述第一关联关系,为每个渲染节点确定输出渲染纹理,并为每个渲染节点确定输入渲染纹理,以确定所述至少两个渲染纹理;
根据所述每个渲染节点的输出渲染纹理和输入渲染纹理,确定所述第二关联关系。
作为本公开实施例一种可选的实施方式,所述根据所述第一关联关系,确定所述多个渲染节点对应的至少两个渲染纹理和第二关联关系,包括:
根据所述第一关联关系,为每个渲染节点确定输出渲染纹理,并为初始渲染节点之外的其他渲染节点确定输入渲染纹理,以确定所述至少两个渲染纹理;
根据所述初始渲染节点的输出渲染纹理,以及其他渲染节点的输入渲染纹理和输出渲染纹理,确定所述第二关联关系。
作为本公开实施例一种可选的实施方式,所述根据所述第一关联关系,为每个渲染节点确定输出渲染纹理,包括:
根据所述第一关联关系,确定已创建渲染纹理中是否存在针对第一目标渲染节点的可用渲染纹理,所述可用渲染纹理是指所述已创建渲染纹理中未作为所述第一目标渲染节点的输入渲染纹理的渲染纹理;
若所述已创建渲染纹理中存在所述可用渲染纹理,则将所述可用渲染纹理作为所述第一目标渲染节点的输出渲染纹理;
若所述已创建渲染纹理中不存在所述可用渲染纹理,则创建一个新的渲染纹理作为所述第一目标渲染节点的输出渲染纹理;
其中,所述第一目标渲染节点为所述多个渲染节点中的任一个渲染节点。
作为本公开实施例一种可选的实施方式,所述根据所述第一关联关系,为每个渲染节点确定输入渲染纹理,包括:
若根据所述第一关联关系,确定所述第一目标渲染节点为初始渲染节点,则将指定渲染纹理确定为所述第一目标渲染节点的输入渲染纹理;
若根据所述第一关联关系,确定所述第一目标渲染节点为其他渲染节点,则将所述第一目标渲染节点的上一级渲染节点的输出渲染纹理,确定为所述第一目标渲染节点的输入渲染纹理。
作为本公开实施例一种可选的实施方式,所述根据所述第一关联关系,为其他渲染节点确定输入渲染纹理,包括:
若根据所述第一关联关系,确定所述第一目标渲染节点为其他渲染节点,则将所述第一目标渲染节点的上一级渲染节点的输出渲染纹理,确定为所述第一目标渲染节点的输入渲染纹理;
所述方法还包括:
若根据所述第一关联关系,确定所述第一目标渲染节点为初始渲染节点,则不为所述第一目标渲染节点确定输入渲染纹理。
作为本公开实施例一种可选的实施方式,所述根据所述第一关联关系,为每个渲染节点确定输出渲染纹理之前,所述方法还包括:
获取每个渲染节点配置的渲染纹理尺寸;
所述根据所述第一关联关系,为每个渲染节点确定输出渲染纹理,包括:
根据所述第一关联关系,将尺寸大于或等于所述渲染纹理尺寸的第一渲染纹理,确定为所述每个渲染节点的输出渲染纹理。
作为本公开实施例一种可选的实施方式,所述根据所述第一关联关系,确定所述第二关联关系,包括:
根据所述第一关联关系,确定所述多个渲染节点与所述至少两个渲染纹理的目标关联关系;
若在所述目标关联关系中,最后一个渲染节点的输出渲染纹理不是最终渲染纹理,则交换所述最后一个渲染节点的输出渲染纹理与第二目标渲染节点的输出渲染纹理,以将所述目标关联关系更新为所述第二关联关系,其中,所述第二目标渲染节点为所述多个渲染节点中除所述最后一个渲染节点之外的渲染节点中输入渲染纹理为最终渲染纹理的渲染节点;
若在所述目标关联关系中,最后一个渲染节点的输出渲染纹理为最终渲染纹理,则将所述目标关联关系作为所述第二关联关系。
作为本公开实施例一种可选的实施方式,所述获取多个渲染节点的第一关联关系,包括:
获取配置文件,所述配置文件中包括:每个渲染节点对应的输入渲染节点;
根据所述配置文件,获取所述第一关联关系;
或,
获取所述配置文件,基于所述配置文件绘制关联关系图;
根据所述关联关系图,获取所述第一关联关系。
第二方面,提供一种渲染流程确定装置,包括:
获取模块,用于获取多个渲染节点的第一关联关系;
确定模块,用于根据所述第一关联关系,确定所述多个渲染节点对应的至少两个渲染纹理和第二关联关系,其中,所述第二关联关系为所述多个渲染节点与所述至少两个渲染纹理的关联关系;
根据所述第二关联关系,确定渲染流程。
作为本公开实施例一种可选的实施方式,所述确定模块,具体用于:
根据所述第一关联关系,为每个渲染节点确定输出渲染纹理,并为每个渲染节点确定输入渲染纹理,以确定所述至少两个渲染纹理;
根据所述每个渲染节点的输出渲染纹理和输入渲染纹理,确定所述第二关联关系。
作为本公开实施例一种可选的实施方式,所述确定模块,具体用于:
根据所述第一关联关系,为每个渲染节点确定输出渲染纹理,并为初始渲染节点之外的其他渲染节点确定输入渲染纹理,以确定所述至少两个渲染纹理;
根据所述初始渲染节点的输出渲染纹理,以及其他渲染节点的输入渲染纹理和输出渲染纹理,确定所述第二关联关系。
作为本公开实施例一种可选的实施方式,所述确定模块,具体用于:
根据所述第一关联关系,确定已创建渲染纹理中是否存在针对第一目标渲染节点的可用渲染纹理,所述可用渲染纹理是指所述已创建渲染纹理中未作为所述第一目标渲染节点的输入渲染纹理的渲染纹理;
若所述已创建渲染纹理中存在所述可用渲染纹理,则将所述可用渲染纹理作为所述第一目标渲染节点的输出渲染纹理;
若所述已创建渲染纹理中不存在所述可用渲染纹理,则创建一个新的渲染纹理作为所述第一目标渲染节点的输出渲染纹理;
其中,所述第一目标渲染节点为所述多个渲染节点中的任一个渲染节点。
作为本公开实施例一种可选的实施方式,所述确定模块,具体用于:
若根据所述第一关联关系,确定所述第一目标渲染节点为初始渲染节点,则将指定渲染纹理确定为所述第一目标渲染节点的输入渲染纹理;
若根据所述第一关联关系,确定所述第一目标渲染节点为其他渲染节点,则将所述第一目标渲染节点的上一级渲染节点的输出渲染纹理,确定为所述第一目标渲染节点的输入渲染纹理。
作为本公开实施例一种可选的实施方式,所述确定模块,具体用于:
若根据所述第一关联关系,确定所述第一目标渲染节点为其他渲染节点,则将所述第一目标渲染节点的上一级渲染节点的输出渲染纹理,确定为所述第一目标渲染节点的输入渲染纹理;
所述确定模块,还用于:
若根据所述第一关联关系,确定所述第一目标渲染节点为初始渲染节点,则不为所述第一目标渲染节点确定输入渲染纹理。
作为本公开实施例一种可选的实施方式,所述获取模块,还用于:
在所述确定模块根据所述第一关联关系,为每个渲染节点确定输出渲染纹理之前,获取每个渲染节点配置的渲染纹理尺寸;
所述确定模块,具体用于:
根据所述第一关联关系,将尺寸大于或等于所述渲染纹理尺寸的第一渲染纹理,确定为所述每个渲染节点的输出渲染纹理。
作为本公开实施例一种可选的实施方式,所述确定模块,具体用于:
根据所述第一关联关系,确定所述多个渲染节点与所述至少两个渲染纹理的目标关联关系;
若在所述目标关联关系中,最后一个渲染节点的输出渲染纹理不是最终渲染纹理,则交换所述最后一个渲染节点的输出渲染纹理与第二目标渲染节点的输出渲染纹理,以将所述目标关联关系更新为所述第二关联关系,其中,所述第二目标渲染节点为所述多个渲染节点中除所述最后一个渲染节点之外的渲染节点中输入渲染纹理为最终渲染纹理的渲染节点;
若在所述目标关联关系中,最后一个渲染节点的输出渲染纹理为最终渲染纹理,则将所述目标关联关系作为所述第二关联关系。
作为本公开实施例一种可选的实施方式,所述获取模块,具体用于:
获取配置文件,所述配置文件中包括:每个渲染节点对应的输入渲染节点;
根据所述配置文件,获取所述第一关联关系;
或,
获取所述配置文件,基于所述配置文件绘制关联关系图;
根据所述关联关系图,获取所述第一关联关系。
第三方面,提供一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面或其任意一种可选的实施方式所述的渲染流程确定方法。
第四方面,提供一种计算机可读存储介质,包括:所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如第一方面或其任意一种可选的实施方式所述的渲染流程确定方法。
第五方面,提供一种计算机程序产品,其特征在于,包括:当所述计算机程序产品在计算机上运行时,使得所述计算机实现如第一方面或其任意一种可选的实施方式所述的渲染流程确定方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:可以直接根据多个渲染节点之间的第一关联关系,确定使用的至少两个RT,以及这些渲染节点与该至少两个RT的第二关联关系,这样就可以根据第二关联关系确定渲染流程,无需为每个Pass创建一个Camera,并为每个Camera指定RT的,这样的渲染流程仅通过一个Camera就可以实现,因此渲染流程简单,并且由于RT不再绑定至Camera,在增加Pass后也不需要修改RT与Camera的绑定关系,仅需通过更新后的多个Pass之间的关联关系就可以自动确定渲染流程,从而可以简化渲染流程,以及降低修改渲染流程的复杂度。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的一种通过4个渲染节点进行交替渲染的渲染流程示意图;
图2为本公开实施例提供的一种渲染流程确定方法的流程示意图;
图3为本公开实施例提供的一种根据配置文件的内容生成关联关系图的示意图;
图4为本公开实施例提供的一种第二关联关系的示意图一;
图5为本公开实施例提供的一种第二关联关系的示意图二;
图6为本公开实施例提供的一种第二关联关系的示意图三;
图7为本公开实施例提供的一种渲染流程确定装置的结构框图;
图8为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
目前在实现图像渲染时,有一种方式是使用多个渲染节点来实现完整渲染流程,由于渲染节点数量较多,在使用Camera和设置RT时,需要合理设计渲染流程,因此亟需实现针对多个渲染节点的一种复杂度较低的渲染流程确定方法。
相关技术中,存在一种可选的实现方式,可以对每个Pass都创建一个Camera去指定渲染后得到的渲染纹理(Render Texture,RT),需要先提前创建好需要用到的RT,然后为每个Pass的输入输出去指定对应的RT。
上述可选的实现方式中,由于为将每个RT与一个Camera绑定,RT的管理非常复杂且重复耗时,而且在需要对渲染的Pass进行增加,删除,调整顺序等过程的时候,必须把所有Camera指定的RT都进行修改,以保证结果正确和RT复用的最优化。
示例性的,如图1所示,为一种通过4个渲染节点进行交替渲染的渲染流程示意图,我们需要提前为每个渲染节点的Camera指定对应的输入RT和输出RT。图1中存在4个渲染节点,分别标识为P1、P2、P3和P4;这4个渲染节点每个设置了一个Camera,为P1设置的Camera标识为C1,为P2设置的Camera标识为C2,为P3设置的Camera标识为C3,为P4设置的Camera标识为C4;并且制定了Camera对应的输入RT和输出RT,其中,如图1中的(a)所示,C1对应的输出RT为RT1;如图1中的(b)所示,C2对应的输入RT为RT1,C2对应的输出RT为RT2;如图1中的(c)所示,C3对应的输入RT为RT2,C2对应的输出RT为RT1;如图1中的(d)所示,C4对应的输入RT为RT1,C4对应的输出RT为RT2。可以看出图1所示的渲染流程由于需要为Camera指定RT,为每个Pass都创建了一个Camera,这样使得整个渲染流程的确定方式非常复杂,并且修改渲染流程时的复杂度非常高。
为了解决上述问题,本公开实施例提供了一种渲染流程确定方法,
可以直接根据多个渲染节点之间的第一关联关系,确定使用的至少两个RT,以及这些渲染节点与该至少两个RT的第二关联关系,这样就可以根据第二关联关系确定渲染流程,相比于为每个Pass创建一个Camera,并为每个Camera指定RT的方式,RT不再绑定至Camera,这样的渲染流程仅通过一个Camera就可以实现,因此渲染流程简单,并且由于RT不再绑定至Camera,在增加Pass后也不需要修改RT与Camera的绑定关系,仅需通过更新后的多个Pass之间的绑定关系就可以自动确定渲染流程,从而可以简化渲染流程,以及降低修改渲染流程的复杂度。
本公开实施例中提供了一种渲染流程确定方法、装置及电子设备,可以通过渲染流程确定装置或者电子设备实现,其中,该渲染流程确定装置可以为该电子设备中用于实现该渲染流程确定方法的功能实体或者功能模块。
本公开实施例中,上述电子设备可以为平板电脑、手机、笔记本电脑、掌上电脑、车载终端、可穿戴设备等,本公开实施例对此不作具体限定。如图2所示,为一种渲染流程确定方法的流程示意图,该方法包括:
201、获取多个渲染节点的第一关联关系。
其中,第一关联关系可以用来表征多个渲染节点中,各个节点之间的关联关系。
本公开实施例中,所涉及的上述第一关联关系可以表示多个渲染节点中,每个渲染节点与其他渲染节点之间的数据传输关系。在获取到多个渲染节点的第一关联关系之后,可以获知多个渲染节点之间的输入数据和输出数据的流向。
例如,渲染节点A、渲染节B和渲染节点C的关联关系,可以表示渲染节点A输出的数据,会作为渲染节点B输入的数据。渲染节点B输出的数据会作为渲染节点C输入的数据。在一些实施例中,获取多个渲染节点的第一关联关系的方式可以为:获取配置文件,该配置文件中可以包括:每个渲染节点对应的输入渲染节点,然后根据配置文件,获取该第一关联关系。
在一些实施例中,获取多个渲染节点的第一关联关系的方式可以为:获取配置文件,该配置文件中可以包括:每个渲染节点对应的输入渲染节点,基于该配置文件绘制关联关系图;然后根据该关联关系图,获取该第一关联关系。
本发明实施例中,可以通过渲染引擎实现上述实施例,在绘制关联关系图后,还可以在渲染引擎中的界面上显示该关联关系图,以直观的呈现各个节点之间的关联关系。
可选的,上述配置文件中,还可以包括每个渲染节点的输出渲染节点。
示例性的,如图3所示,为一种根据配置文件的内容生成关联关系图的示意图。图3中,包括四个渲染节点,分别表示为P1、P2、P3和P4,其中,如图3中的(a)所示,配置文件的内容中说明了P1为初始渲染节点,其不存在输入渲染节点,输入的是初始图像数据,P2的输入渲染节点为P1、P3的初始输入节点为P2、P4的初始输入节点为P3,基于此得到的这四个渲染节点的关联关系图可以如图3中的(b)所示。
202、根据第一关联关系,确定多个渲染节点对应的至少两个RT和第二关联关系。
203、根据第二关联关系,确定渲染流程。
在渲染流程中,初始渲染节点可以存在输入RT,也可以不存在输入RT。
其中,上述第二关联关系为多个渲染节点与至少两个RT的关联关系,也即多个渲染节点与至少两个RT之间的数据传输关系,在获取到多个渲染节点的第二关联关系之后,可以获知多个渲染节点与至少两个RT之间的输入数据和输出数据的流向。
(1)在一些实施例中,针对初始渲染节点存在输入RT的情况,上述根据第一关联关系,确定多个渲染节点对应的至少两个RT和第二关联关系的方式为:先根据第一关联关系,为每个渲染节点确定输出RT,并为每个渲染节点确定输入RT,以确定至少两个RT,最后根据每个渲染节点的输出RT和输入RT,确定第二关联关系。
(2)在一些实施例中,针对初始渲染节点不存在输入RT的情况,根据第一关联关系,确定多个渲染节点对应的至少两个RT和第二关联关系的方式为:首先根据第一关联关系,为每个渲染节点确定输出RT,并为多个渲染节点中初始渲染节点以外的其他渲染节点确定输入RT,以确定至少两个RT,然后根据初始渲染节点的输出RT,以及其他渲染节点的输入RT和输出RT,确定第二关联关系。
上述(1)和(2)两类实施例中,根据第一关联关系,为每个渲染节点确定输出RT的方式可以为:首先根据第一关联关系,确定已创建RT中是否存在针对第一目标渲染节点的可用RT,可用RT是指已创建RT中未作为第一目标渲染节点的输入RT的RT;若已创建RT中存在可用RT,则将可用RT作为第一目标渲染节点的输出RT;若已创建RT中不存在可用RT,则创建一个新的RT作为第一目标渲染节点的输出RT;
其中,第一目标渲染节点为多个渲染节点中的任一个渲染节点。也就是说,按照渲染顺序可以针对多个渲染节点中的每个渲染节点,均执行上述针对第一目标渲染节点执行的方式去确定输出RT,这样就可以确定出多个渲染节点中每个渲染节点的输出RT。
通常,由于一个渲染节点的输入RT和输出RT不能是同一RT,也就是说,RT的数量最少为2个,那么可以在一开始先创建2个不同RT,以供选择,后续在为多个渲染节点确定输出RT的过程中,可以根据实际情况考虑增加新创建的RT,或者不增加新创建的RT。
上述确定输出RT的方式,根据贪心算法,从已创建RT中选择当前渲染节点的输出RT,如果已创建RT中存在有可用RT则直接使用一个可用RT作为当前渲染节点的输出RT,如果已创建RT中没有可用RT,则说明目前创建的RT数量无法满足需求,需要创建一个新的RT作为输出RT。
在一些实施例中,还可以获取每个渲染节点配置的RT尺寸,然后再根据第一关联关系,为每个渲染节点确定输出RT,具体的,可以根据第一关联关系,将尺寸大于或等于RT尺寸的第一RT,确定为每个渲染节点的输出RT。也就是说,在选择输出RT时,输出RT的尺寸需要满足一定RT尺寸要求,才进行选择。其中RT尺寸可以是指渲染纹理对应的像素点个数。这样选择输出RT的方式可以保证为每个渲染节点选择出RT尺寸满足要求的输出RT。
针对上述(1)对应的实施例中,根据第一关联关系,为每个渲染节点确定输入RT的方式可以为:若根据第一关联关系,确定第一目标渲染节点为初始渲染节点,则将指定RT确定为第一目标渲染节点的输入RT;若根据第一关联关系,确定第一目标渲染节点为其他渲染节点,则将第一目标渲染节点的上一级渲染节点的输出RT,确定为第一目标渲染节点的输入RT。
示例性的,假设已创建的RT包括RT1和RT2,其中RT1为初始输入的指定RT,针对初始渲染节点存在输入RT的情况,按照如图3中的(b)所示的节点图确定RT时:P1的输入RT可以是指定的RT1,此时为P1选择输出RT时,确定已创建RT中还存在可用的RT2,那么可以将RT2作为P1的输出RT,该RT2同时也是P2的输入RT,在为RT2选择输出RT时,确定已创建RT中还存在可用的RT1,那么可以将RT1作为P2的输入RT,该RT1同时也是P3的输入RT,为P3选择输出RT时,确定已创建RT中还存在可用的RT2,那么可以将RT2作为P3的输出RT,该RT2同时也是P4的输入RT,为P4选择输出RT时,确定已创建RT中还存在可用的RT1,那么可以将RT1作为P4的输出RT。该示例中最终确定的第二关联关系如图4所示,图4中虚线箭头所示为4个渲染节点之间的关联关系,实线箭头所示为第二关联关系。
针对上述(2)对应的实施例中,根据第一关联关系,为其他渲染节点确定输入RT,包括:若根据第一关联关系,确定第一目标渲染节点为其他渲染节点,则将第一目标渲染节点的上一级渲染节点的输出RT,确定为第一目标渲染节点的输入RT;
进一步的,若根据第一关联关系,确定第一目标渲染节点为初始渲染节点,则不为第一目标渲染节点确定输入RT。
示例性的,假设已创建的RT包括RT1和RT2,不存在初始输入的指定RT,针对初始渲染节点不存在输入RT的情况,按照如图3中的(b)所示的节点图选择RT时:P1无输入RT,此时为P1选择输出RT时,确定已创建RT中存在可用的RT1和RT2,那么可以在RT1和RT2中任意选择一个RT作为P1的输出RT,假设选择了RT2作为输出RT,该RT2同时也是P2的输入RT,在为RT2选择输出RT时,确定已创建RT中还存在可用的RT1,那么可以将RT1作为P2的输入RT,该RT1同时也时P3的输入RT,为P3选择输出RT时,确定已创建RT中还存在可用的RT2,那么可以将RT2作为P3的输出RT,该RT2同时也是P4的输入RT,为P4选择输出RT时,确定已创建RT中还存在可用的RT1,那么可以将RT1作为P4的输出RT。该示例中最终确定的第二关联关系如图5所示。图5中虚线箭头所示为4个渲染节点之间的关联关系,实线箭头所示为第二关联关系。
实际渲染过程中,由于必须保证最后一个渲染节点的输出是最终RT(即outputRT),该RT通常是待显示的RT,因此该RT一般会至指定的,因此在上述按照贪心算法得出多个渲染节点的RT数量以及第二关联关系之后,还需要判断一下最后一个渲染节点的输出RT是否为outputRT,如果不是,就跟所有输出为outputRT的渲染节点的输出RT进行一下交换。
也就是说,在一些实施例中,根据第一关联关系,确定第二关联关系的方式可以包括:先根据第一关联关系,确定多个渲染节点与至少两个RT的目标关联关系;然后若在目标关联关系中,最后一个渲染节点的输出RT不是最终RT,则交换最后一个渲染节点的输出RT与第二目标渲染节点的输出RT,以将目标关联关系更新为第二关联关系,其中,第二目标渲染节点为多个渲染节点中除最后一个渲染节点之外的渲染节点中输入RT为最终RT的渲染节点;若在目标关联关系中,最后一个渲染节点的输出RT为最终RT,则将目标关联关系作为第二关联关系。
示例性的,假设根据贪心算法一开始得到的多个渲染节点与至少两个RT的关联关系如图5中所示,但是图5中作为最后一个渲染节点P4的输出RT为RT1,并不是最终RT,RT2才是最终RT,那么可以将RT1和RT2交换位置,这样可以更新一开始得到的关联关系,得到如图6中实线箭头所示的关联关系。
本公开实施例中提供的确定渲染流程的方法通过渲染引擎的RT管理器实现。例如,可以将所有的RT创建的过程交给RT管理器,RT管理器根据节点的连接情况,进行RT的创建和为每个渲染节点确定对应的输入RT和输出RT。如此可以实现根据节点图(也即第一关联关系)自动生成包括至少两个RT的RT管理器,然后基于该RT管理器去实现整条渲染的流程,有了这套包括至少两个RT的RT管理器后,不在需要手动为每个节点设置输入和输出RT。而且不需要知道某个Pass它的输出RT究竟是RT1还是RT2,只需要关心多个Pass之间的关联关系。这样极大的简化了确定渲染流程的过程。
本公开实施例提供的渲染流程确定方法,可以直接根据多个渲染节点之间的第一关联关系,确定使用的至少两个RT,以及这些渲染节点与该至少两个RT的第二关联关系,这样就可以根据第二关联关系确定渲染流程,相比于为每个Pass创建一个Camera,并为每个Camera指定RT的方式,RT不再绑定至Camera,这样的渲染流程仅通过一个Camera就可以实现,因此渲染流程简单,并且由于RT不再绑定至Camera,在增加Pass后也不需要修改RT与Camera的绑定关系,仅需通过更新后的多个Pass之间的绑定关系就可以自动确定渲染流程,从而可以简化渲染流程,以及降低修改渲染流程的复杂度。
如图7所示,本公开实施例提供一种渲染流程确定装置,该装置包括:
获取模块701,用于获取多个渲染节点的第一关联关系;
确定模块702,用于根据第一关联关系,确定多个渲染节点对应的至少两个RT和第二关联关系,其中,第二关联关系为多个渲染节点与至少两个RT的关联关系;
根据第二关联关系,确定渲染流程。
作为本公开实施例一种可选的实施方式,确定模块702,具体用于:
根据第一关联关系,为每个渲染节点确定输出RT,并为每个渲染节点确定输入RT,以确定至少两个RT;
根据每个渲染节点的输出RT和输入RT,确定第二关联关系。
作为本公开实施例一种可选的实施方式,确定模块702,具体用于:
根据第一关联关系,为每个渲染节点确定输出RT,并为初始渲染节点之外的其他渲染节点确定输入RT,以确定至少两个RT;
根据初始渲染节点的输出RT,以及其他渲染节点的输入RT和输出RT,确定第二关联关系。
作为本公开实施例一种可选的实施方式,确定模块702,具体用于:
根据第一关联关系,确定已创建RT中是否存在针对第一目标渲染节点的可用RT,可用RT是指已创建RT中未作为第一目标渲染节点的输入RT的RT;
若已创建RT中存在可用RT,则将可用RT作为第一目标渲染节点的输出RT;
若已创建RT中不存在可用RT,则创建一个新的RT作为第一目标渲染节点的输出RT;
其中,第一目标渲染节点为多个渲染节点中的任一个渲染节点。
作为本公开实施例一种可选的实施方式,确定模块702,具体用于:
若根据第一关联关系,确定第一目标渲染节点为初始渲染节点,则将指定RT确定为第一目标渲染节点的输入RT;
若根据第一关联关系,确定第一目标渲染节点为其他渲染节点,则将第一目标渲染节点的上一级渲染节点的输出RT,确定为第一目标渲染节点的输入RT。
作为本公开实施例一种可选的实施方式,确定模块702,具体用于:
若根据第一关联关系,确定第一目标渲染节点为其他渲染节点,则将第一目标渲染节点的上一级渲染节点的输出RT,确定为第一目标渲染节点的输入RT;
确定模块702,还用于:
若根据第一关联关系,确定第一目标渲染节点为初始渲染节点,则不为第一目标渲染节点确定输入RT。
作为本公开实施例一种可选的实施方式,获取模块701,还用于:
在确定模块702根据第一关联关系,为每个渲染节点确定输出RT之前,获取每个渲染节点配置的RT尺寸;
确定模块702,具体用于:
根据第一关联关系,将尺寸大于或等于RT尺寸的第一RT,确定为每个渲染节点的输出RT。
作为本公开实施例一种可选的实施方式,确定模块702,具体用于:
根据第一关联关系,确定多个渲染节点与至少两个RT的目标关联关系;
若在目标关联关系中,最后一个渲染节点的输出RT不是最终RT,则交换最后一个渲染节点的输出RT与第二目标渲染节点的输出RT,以将目标关联关系更新为第二关联关系,其中,第二目标渲染节点为多个渲染节点中除最后一个渲染节点之外的渲染节点中输入RT为最终RT的渲染节点;
若在目标关联关系中,最后一个渲染节点的输出RT为最终RT,则将目标关联关系作为第二关联关系。
作为本公开实施例一种可选的实施方式,获取模块701,具体用于:
获取配置文件,配置文件中包括:每个渲染节点对应的输入渲染节点;
根据配置文件,获取第一关联关系;
或,
获取配置文件,基于配置文件绘制关联关系图;
根据关联关系图,获取第一关联关系。
如图8所示,本公开实施例提供一种电子设备,该电子设备包括:处理器801、存储器802及存储在存储器802上并可在处理器801上运行的计算机程序,计算机程序被处理器801执行时实现上述方法实施例中的渲染流程确定方法的各个过程。且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例提供一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储计算机程序,该计算机程序被处理器执行时实现上述方法实施例中渲染流程确定方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,该计算机可读存储介质可以为只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
本发明实施例提供一种计算程序产品,该计算机程序产品存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中渲染流程确定方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本领域技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。
本公开中,处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本公开中,存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
本公开中,计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质。存储介质可以由任何方法或技术来实现信息存储,信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。根据本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (12)
1.一种渲染流程确定方法,其特征在于,包括:
获取多个渲染节点的第一关联关系;
根据所述第一关联关系,确定所述多个渲染节点对应的至少两个渲染纹理和第二关联关系,其中,所述第二关联关系渲染纹理关联关系;
根据所述第二关联关系,确定渲染流程。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一关联关系,确定所述多个渲染节点对应的至少两个渲染纹理和第二关联关系,包括:
根据所述第一关联关系,为每个渲染节点确定输出渲染纹理,并为每个渲染节点确定输入渲染纹理,以确定所述至少两个渲染纹理;
根据所述每个渲染节点的输出渲染纹理和输入渲染纹理,确定所述第二关联关系。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一关联关系,确定所述多个渲染节点对应的至少两个渲染纹理和第二关联关系,包括:
根据所述第一关联关系,为每个渲染节点确定输出渲染纹理,并为初始渲染节点之外的其他渲染节点确定输入渲染纹理,以确定所述至少两个渲染纹理;
根据所述初始渲染节点的输出渲染纹理,以及所述其他渲染节点的输入渲染纹理和输出渲染纹理,确定所述第二关联关系。
4.根据权利要求2或3所述的方法,其特征在于,所述根据所述第一关联关系,为每个渲染节点确定输出渲染纹理,包括:
根据所述第一关联关系,确定已创建渲染纹理中是否存在针对第一目标渲染节点的可用渲染纹理,所述可用渲染纹理是指所述已创建渲染纹理中未作为所述第一目标渲染节点的输入渲染纹理的渲染纹理;
若所述已创建渲染纹理中存在所述可用渲染纹理,则将所述可用渲染纹理作为所述第一目标渲染节点的输出渲染纹理;
若所述已创建渲染纹理中不存在所述可用渲染纹理,则创建一个新的渲染纹理作为所述第一目标渲染节点的输出渲染纹理;
其中,所述第一目标渲染节点为所述多个渲染节点中的任一个渲染节点。
5.根据权利要求2所述的方法,其特征在于,所述根据所述第一关联关系,为每个渲染节点确定输入渲染纹理,包括:
若根据所述第一关联关系,确定所述第一目标渲染节点为初始渲染节点,则将指定渲染纹理确定为所述第一目标渲染节点的输入渲染纹理;
若根据所述第一关联关系,确定所述第一目标渲染节点为其他渲染节点,则将所述第一目标渲染节点的上一级渲染节点的输出渲染纹理,确定为所述第一目标渲染节点的输入渲染纹理。
6.根据权利要求3所述的方法,其特征在于,所述根据所述第一关联关系,为其他渲染节点确定输入渲染纹理,包括:
若根据所述第一关联关系,确定所述第一目标渲染节点为其他渲染节点,则将所述第一目标渲染节点的上一级渲染节点的输出渲染纹理,确定为所述第一目标渲染节点的输入渲染纹理;
所述方法还包括:
若根据所述第一关联关系,确定所述第一目标渲染节点为初始渲染节点,则不为所述第一目标渲染节点确定输入渲染纹理。
7.根据权利要求2所述的方法,其特征在于,所述根据所述第一关联关系,为每个渲染节点确定输出渲染纹理之前,所述方法还包括:
获取每个渲染节点配置的渲染纹理尺寸;
所述根据所述第一关联关系,为每个渲染节点确定输出渲染纹理,包括:
根据所述第一关联关系,将尺寸大于或等于所述渲染纹理尺寸的第一渲染纹理,确定为所述每个渲染节点的输出渲染纹理。
8.根据权利要求1所述的方法,其特征在于,所述根据所述第一关联关系,确定所述第二关联关系,包括:
根据所述第一关联关系,确定所述多个渲染节点与所述至少两个渲染纹理的目标关联关系;
若在所述目标关联关系中,最后一个渲染节点的输出渲染纹理不是最终渲染纹理,则交换所述最后一个渲染节点的输出渲染纹理与第二目标渲染节点的输出渲染纹理,以将所述目标关联关系更新为所述第二关联关系,其中,所述第二目标渲染节点为所述多个渲染节点中除所述最后一个渲染节点之外的渲染节点中输入渲染纹理为最终渲染纹理的渲染节点;
若在所述目标关联关系中,最后一个渲染节点的输出渲染纹理为最终渲染纹理,则将所述目标关联关系作为所述第二关联关系。
9.根据权利要求1或2所述的方法,其特征在于,所述获取多个渲染节点的第一关联关系,包括:
获取配置文件,所述配置文件中包括:每个渲染节点对应的输入渲染节点;
根据所述配置文件,获取所述第一关联关系;
或,
获取所述配置文件,基于所述配置文件绘制关联关系图;
根据所述关联关系图,获取所述第一关联关系。
10.一种渲染流程确定装置,其特征在于,包括:
获取模块,用于获取多个渲染节点的第一关联关系;
确定模块,用于根据所述第一关联关系,确定所述多个渲染节点对应的至少两个渲染纹理和第二关联关系,其中,所述第二关联关系为所述多个渲染节点与所述至少两个渲染纹理的关联关系;
根据所述第二关联关系,确定渲染流程。
11.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至9中任一项所述的渲染流程确定方法。
12.一种计算机可读存储介质,其特征在于,包括:所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9中任一项所述的渲染流程确定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111509505.7A CN114170364A (zh) | 2021-12-10 | 2021-12-10 | 一种渲染流程确定方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111509505.7A CN114170364A (zh) | 2021-12-10 | 2021-12-10 | 一种渲染流程确定方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114170364A true CN114170364A (zh) | 2022-03-11 |
Family
ID=80485519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111509505.7A Pending CN114170364A (zh) | 2021-12-10 | 2021-12-10 | 一种渲染流程确定方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114170364A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023197868A1 (zh) * | 2022-04-11 | 2023-10-19 | 北京字跳网络技术有限公司 | 图像处理方法、装置、系统和存储介质 |
-
2021
- 2021-12-10 CN CN202111509505.7A patent/CN114170364A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023197868A1 (zh) * | 2022-04-11 | 2023-10-19 | 北京字跳网络技术有限公司 | 图像处理方法、装置、系统和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11626972B2 (en) | Data processing method and apparatus | |
CN107450981B (zh) | 一种区块链共识方法及设备 | |
CN111741035B (zh) | 电子合同的签署方法、装置及设备 | |
US11003625B2 (en) | Method and apparatus for operating on file | |
CN106031127B (zh) | 用于应用的管理的方法和装置 | |
CN110717050B (zh) | 一种知识图谱数据库的访问方法及装置 | |
CN111324457A (zh) | 一种gpu集群中发布推理服务的方法、装置、设备和介质 | |
CN114170364A (zh) | 一种渲染流程确定方法、装置及电子设备 | |
CN111737369B (zh) | 一种关系图谱的更新方法、装置及存储介质 | |
CN110837499A (zh) | 数据访问处理方法、装置、电子设备和存储介质 | |
US20240005036A1 (en) | Resource access control method, image file sharing method, electronic apparatus and computer-readable medium | |
CN114924674B (zh) | 一种多区域分栏导航交互方法、设备及介质 | |
CN114968024B (zh) | 微服务菜单管理方法、装置、电子设备及存储介质 | |
KR101540300B1 (ko) | 캐시 메모리를 이용한 이미지 워핑 시스템 및 그 방법 | |
CN110347333A (zh) | 提高克隆镜像性能的方法、装置、计算机设备及存储介质 | |
CN109634653A (zh) | 一种基于组件化架构的资源配置方法及装置 | |
CN111274051B (zh) | 数据的处理方法、装置、电子设备及计算机可读存储介质 | |
CN109377177B (zh) | 流程处理方法、装置、设备和计算机可读存储介质 | |
CN114900734B (zh) | 车型对比视频生成方法、装置、存储介质及计算机设备 | |
CN115118711A (zh) | 一种文件传输的方法及装置 | |
CN115392485A (zh) | 一种用于深度学习框架的数据处理方法及系统 | |
CN117475030A (zh) | 数字藏品的生成方法、装置、设备、介质及程序产品 | |
CN114547412A (zh) | 一种爬虫代码的生成方法、装置、存储介质和电子设备 | |
CN115756500A (zh) | 一种服务部署系统和服务调用方法 | |
CN117112167A (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 |