CN112288841A - 一种渲染框架图的创建方法和装置 - Google Patents
一种渲染框架图的创建方法和装置 Download PDFInfo
- Publication number
- CN112288841A CN112288841A CN202011508082.2A CN202011508082A CN112288841A CN 112288841 A CN112288841 A CN 112288841A CN 202011508082 A CN202011508082 A CN 202011508082A CN 112288841 A CN112288841 A CN 112288841A
- Authority
- CN
- China
- Prior art keywords
- rendering
- target
- resource
- sub
- stage
- 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.)
- Granted
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/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
本申请涉及一种渲染框架图的创建方法和装置,其中,该方法包括:将虚拟场景的渲染流程划分为渲染阶段和渲染子阶段,得到渲染流程信息;配置每个渲染子阶段所包括的渲染资源,并将渲染资源的资源状态配置为目标资源状态,得到渲染资源信息,其中,目标资源状态用于指示允许每个渲染子阶段使用图形处理器的片上分片缓存所对应的渲染资源的资源状态;使用渲染流程信息和渲染资源信息创建目标渲染框架图,其中,目标渲染框架图用于对虚拟场景进行渲染。本申请解决了虚拟场景的渲染效率较低的技术问题。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种渲染框架图的创建方法和装置。
背景技术
目前渲染虚拟场景的过程通常是先抽象出引擎的渲染器接口,然后根据不同类型的渲染接口实现渲染器。这种实现是把特殊转换至通用化,使用一套通用的代码去实现通用的渲染流程,由于这种实现方式需要兼容渲染接口比较低的版本,而支持比较低版本的渲染接口会造成系统运行的累赘,无法针对硬件的特点发挥系统硬件的最大性能,导致虚拟场景的渲染效率较低。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请提供了一种渲染框架图的创建方法和装置,以至少解决相关技术中虚拟场景的渲染效率较低的技术问题。
根据本申请实施例的一个方面,提供了一种渲染框架图的创建方法,包括:
将虚拟场景的渲染流程划分为渲染阶段和渲染子阶段,得到渲染流程信息;
配置每个渲染子阶段所包括的渲染资源,并将渲染资源的资源状态配置为目标资源状态,得到渲染资源信息,其中,所述目标资源状态用于指示允许每个渲染子阶段使用图形处理器的片上分片缓存所对应的渲染资源的资源状态;
使用所述渲染流程信息和所述渲染资源信息创建目标渲染框架图,其中,所述目标渲染框架图用于对所述虚拟场景进行渲染。
可选地,将虚拟场景的渲染流程划分为渲染阶段和渲染子阶段包括:
将所述虚拟场景的渲染流程中包括的原渲染阶段中满足使用图形处理器的片上分片缓存的要求的原渲染阶段配置为渲染子阶段;
将所配置的渲染子阶段合并为目标渲染阶段。
可选地,配置每个渲染子阶段所包括的渲染资源,并将渲染资源的资源状态配置为目标资源状态,得到渲染资源信息包括:
配置每个渲染子阶段所包括的渲染目标;
将所述渲染目标的资源状态配置为所述目标资源状态,其中,所述渲染目标的资源状态包括渲染目标尺寸,渲染目标格式,加载状态,存储状态和临时使用状态,所述临时使用状态用于指示允许所述每个渲染子阶段使用图形处理器的片上分片缓存。
可选地,将所述渲染目标的资源状态配置为所述目标资源状态包括:
将所述渲染目标的渲染目标尺寸和渲染目标格式配置为允许使用所述图形处理器的片上分片缓存的渲染目标尺寸和渲染目标格式;
将所述渲染目标的加载状态和存储状态配置为满足所述虚拟场景要求的加载状态和存储状态;
将所述渲染目标的图形处理器的片上存储状态标记为分片缓存。
可选地,将虚拟场景的渲染流程划分为渲染阶段和渲染子阶段包括:
将所述虚拟场景的原渲染流程中的几何渲染阶段配置为几何渲染子阶段,将光照渲染阶段配置为光照渲染子阶段;
将所述几何渲染子阶段和所述光照渲染子阶段合并为目标渲染阶段。
可选地,配置每个渲染子阶段所包括的渲染资源,并将渲染资源的资源状态配置为目标资源状态包括:
配置所述几何渲染子阶段的渲染目标包括位置渲染目标,法线渲染目标,反射率渲染目标和深度渲染目标,所述光照渲染子阶段的渲染目标包括光照渲染目标;
将所述位置渲染目标,所述法线渲染目标,所述反射率渲染目标,所述深度渲染目标和所述光照渲染目标的渲染目标尺寸标记为预设尺寸,渲染目标格式标记为预设格式;
将所述位置渲染目标,法线渲染目标,反射率渲染目标和深度渲染目标的加载状态标记为清除上一次内容,存储状态标记为不关心之后内容,并将所述光照渲染目标的加载状态标记为不关心之后内容,存储状态标记为存储内容;
将所述位置渲染目标,所述法线渲染目标,所述反射率渲染目标,所述深度渲染目标和所述光照渲染目标的图形处理器的片上存储状态标记为分片缓存。
可选地,在使用所述渲染流程信息和所述渲染资源信息创建目标渲染框架图之后,所述方法还包括:
按照所述目标渲染框架图创建所述虚拟场景对应的目标渲染流程,其中,所述目标渲染流程中所使用的目标渲染资源满足所述目标资源状态所指示的资源状态;
按照所述目标渲染流程渲染所述虚拟场景。
可选地,按照所述目标渲染框架图创建所述虚拟场景对应的目标渲染流程包括:
按照所述渲染资源信息为每个渲染子阶段创建满足所述资源状态的所述目标渲染资源;
按照所述渲染流程信息创建所述目标渲染资源之间的所述目标渲染流程。
可选地,按照所述渲染资源信息为每个渲染子阶段创建满足所述资源状态的所述目标渲染资源包括:
构建满足所述渲染资源信息所指示的渲染目标尺寸和渲染目标格式的第一渲染目标;
将所述第一渲染目标的加载状态和存储状态配置为所述渲染资源信息所指示的目标加载状态和目标存储状态,得到第二渲染目标;
将所述第二渲染目标的图形处理器存储状态标记为所述渲染资源信息所指示的分片缓存状态,得到所述目标渲染资源。
可选地,在将虚拟场景的渲染流程划分为渲染阶段和渲染子阶段之前,所述方法还包括:获取所述虚拟场景的场景信息;构建所述场景信息所对应的目标场景条件;构建满足所述目标场景条件的渲染流程作为所述虚拟场景的渲染流程;
在使用所述渲染流程信息和所述渲染资源信息创建目标渲染框架图之后,所述方法还包括:在具有对应关系的场景条件和渲染框架图中存储具有对应关系的所述目标场景条件和所述目标渲染框架图。
根据本申请实施例的另一方面,还提供了一种渲染框架图的创建装置,包括:
划分模块,用于将虚拟场景的渲染流程划分为渲染阶段和渲染子阶段,得到渲染流程信息;
配置模块,用于配置每个渲染子阶段所包括的渲染资源,并将渲染资源的资源状态配置为目标资源状态,得到渲染资源信息,其中,所述目标资源状态用于指示允许每个渲染子阶段使用图形处理器的片上分片缓存所对应的渲染资源的资源状态;
第一创建模块,用于使用所述渲染流程信息和所述渲染资源信息创建目标渲染框架图,其中,所述目标渲染框架图用于对所述虚拟场景进行渲染。
可选地,所述划分模块包括:
第一配置单元,用于将所述虚拟场景的渲染流程中包括的原渲染阶段中满足使用图形处理器的片上分片缓存的要求的原渲染阶段配置为渲染子阶段;
第一合并单元,用于将所配置的渲染子阶段合并为目标渲染阶段。
可选地,所述配置模块包括:
第二配置单元,用于配置每个渲染子阶段所包括的渲染目标;
第三配置单元,用于将所述渲染目标的资源状态配置为所述目标资源状态,其中,所述渲染目标的资源状态包括渲染目标尺寸,渲染目标格式,加载状态,存储状态和临时使用状态,所述临时使用状态用于指示允许所述每个渲染子阶段使用图形处理器的片上分片缓存。
可选地,所述第三配置单元用于:
将所述渲染目标的渲染目标尺寸和渲染目标格式配置为允许使用所述图形处理器的片上分片缓存的渲染目标尺寸和渲染目标格式;
将所述渲染目标的加载状态和存储状态配置为满足所述虚拟场景要求的加载状态和存储状态;
将所述渲染目标的图形处理器的片上存储状态标记为分片缓存。
可选地,所述划分模块包括:
第四配置单元,用于将所述虚拟场景的原渲染流程中的几何渲染阶段配置为几何渲染子阶段,将光照渲染阶段配置为光照渲染子阶段;
第二合并单元,用于将所述几何渲染子阶段和所述光照渲染子阶段合并为目标渲染阶段。
可选地,所述第四配置单元用于:
配置所述几何渲染子阶段的渲染目标包括位置渲染目标,法线渲染目标,反射率渲染目标和深度渲染目标,所述光照渲染子阶段的渲染目标包括光照渲染目标;
将所述位置渲染目标,所述法线渲染目标,所述反射率渲染目标,所述深度渲染目标和所述光照渲染目标的渲染目标尺寸标记为预设尺寸,渲染目标格式标记为预设格式;
将所述位置渲染目标,法线渲染目标,反射率渲染目标和深度渲染目标的加载状态标记为清除上一次内容,存储状态标记为不关心之后内容,并将所述光照渲染目标的加载状态标记为不关心之后内容,存储状态标记为存储内容;
将所述位置渲染目标,所述法线渲染目标,所述反射率渲染目标,所述深度渲染目标和所述光照渲染目标的图形处理器的片上存储状态标记为分片缓存。
可选地,所述装置还包括:
第二创建模块,用于在使用所述渲染流程信息和所述渲染资源信息创建目标渲染框架图之后,按照所述目标渲染框架图创建所述虚拟场景对应的目标渲染流程,其中,所述目标渲染流程中所使用的目标渲染资源满足所述目标资源状态所指示的资源状态;
渲染模块,用于按照所述目标渲染流程渲染所述虚拟场景。
可选地,所述第二创建模块包括:
第一创建单元,用于按照所述渲染资源信息为每个渲染子阶段创建满足所述资源状态的所述目标渲染资源;
第二创建单元,用于按照所述渲染流程信息创建所述目标渲染资源之间的所述目标渲染流程。
可选地,所述第一创建单元用于:
构建满足所述渲染资源信息所指示的渲染目标尺寸和渲染目标格式的第一渲染目标;
将所述第一渲染目标的加载状态和存储状态配置为所述渲染资源信息所指示的目标加载状态和目标存储状态,得到第二渲染目标;
将所述第二渲染目标的图形处理器存储状态标记为所述渲染资源信息所指示的分片缓存状态,得到所述目标渲染资源。
可选地,所述装置还包括:
构建模块,用于在将虚拟场景的渲染流程划分为渲染阶段和渲染子阶段之前,获取所述虚拟场景的场景信息;构建所述场景信息所对应的目标场景条件;构建满足所述目标场景条件的渲染流程作为所述虚拟场景的渲染流程;
存储模块,用于在使用所述渲染流程信息和所述渲染资源信息创建目标渲染框架图之后,在具有对应关系的场景条件和渲染框架图中存储具有对应关系的所述目标场景条件和所述目标渲染框架图。
根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。
根据本申请实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。
在本申请实施例中,采用将虚拟场景的渲染流程划分为渲染阶段和渲染子阶段,得到渲染流程信息;配置每个渲染子阶段所包括的渲染资源,并将渲染资源的资源状态配置为目标资源状态,得到渲染资源信息,其中,目标资源状态用于指示允许每个渲染子阶段使用图形处理器的片上分片缓存所对应的渲染资源的资源状态;使用渲染流程信息和渲染资源信息创建目标渲染框架图,其中,目标渲染框架图用于对虚拟场景进行渲染的方式,将虚拟场景的渲染流程划分为渲染阶段和渲染子阶段作为渲染流程信息,在为每个渲染子阶段配置渲染资源并为渲染资源配置资源状态时将渲染资源的资源状态配置为用于指示允许每个渲染子阶段使用图形处理器的片上分片缓存所对应的渲染资源的资源状态的目标资源状态,从而得到渲染资源信息,使得在使用由上述渲染流程信息和渲染资源信息创建的目标渲染框架图能够在渲染虚拟场景的过程中充分发挥硬件的最优性能,达到了提高虚拟场景的渲染效率的技术效果,进而解决了虚拟场景的渲染效率较低的技术问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例的渲染框架图的创建方法的硬件环境的示意图;
图2是根据本申请实施例的一种可选的渲染框架图的创建方法的流程图;
图3是根据本申请可选实施例的一种基于Vulkan构建渲染框架图的过程的示意图;
图4是根据本申请可选的实施方式的一种虚拟场景的渲染过程的示意图;
图5是根据本申请实施例的一种构建渲染框架图的示意图;
图6是根据本申请实施例的另一种构建渲染框架图的示意图;
图7是根据本申请实施例的一种可选的渲染框架图的创建装置的示意图;
图8是根据本申请实施例的一种电子装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请实施例的一方面,提供了一种渲染框架图的创建的方法实施例。
可选地,在本实施例中,上述渲染框架图的创建方法可以应用于如图1所示的由终端101和服务器103所构成的硬件环境中。如图1所示,服务器103通过网络与终端101进行连接,可用于为终端或终端上安装的客户端提供服务(如游戏服务、应用服务等),可在服务器上或独立于服务器设置数据库,用于为服务器103提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,终端101并不限定于PC、手机、平板电脑等。本申请实施例的渲染框架图的创建方法可以由服务器103来执行,也可以由终端101来执行,还可以是由服务器103和终端101共同执行。其中,终端101执行本申请实施例的渲染框架图的创建方法也可以是由安装在其上的客户端来执行。
图2是根据本申请实施例的一种可选的渲染框架图的创建方法的流程图,如图2所示,该方法可以包括以下步骤:
步骤S202,将虚拟场景的渲染流程划分为渲染阶段和渲染子阶段,得到渲染流程信息;
步骤S204,配置每个渲染子阶段所包括的渲染资源,并将渲染资源的资源状态配置为目标资源状态,得到渲染资源信息,其中,所述目标资源状态用于指示允许每个渲染子阶段使用图形处理器的片上分片缓存所对应的渲染资源的资源状态;
步骤S206,使用所述渲染流程信息和所述渲染资源信息创建目标渲染框架图,其中,所述目标渲染框架图用于对所述虚拟场景进行渲染。
通过上述步骤S202至步骤S206,将虚拟场景的渲染流程划分为渲染阶段和渲染子阶段作为渲染流程信息,在为每个渲染子阶段配置渲染资源并为渲染资源配置资源状态时将渲染资源的资源状态配置为用于指示允许每个渲染子阶段使用图形处理器的片上分片缓存所对应的渲染资源的资源状态的目标资源状态,从而得到渲染资源信息,使得在使用由上述渲染流程信息和渲染资源信息创建的目标渲染框架图能够在渲染虚拟场景的过程中充分发挥硬件的最优性能,达到了提高虚拟场景的渲染效率的技术效果,进而解决了虚拟场景的渲染效率较低的技术问题。
在步骤S202提供的技术方案中,上述虚拟场景可以但不限于包括:游戏场景,虚拟现实(VR)场景,动画场景,模拟器场景等等。比如:在手机安卓(Android)系统中渲染游戏场景,在PC计算机的安卓(Android)系统中渲染动画场景等等。
可选地,在本实施例中,得到的渲染流程信息指示了渲染虚拟场景所划分的渲染阶段和每个渲染阶段所划分的渲染子阶段,每个渲染子阶段(sub render pass)在传统的划分方式中可能是一个渲染阶段(render pass),比如:一个传统的渲染流程可能包括两个render pass:Geometry render pass和Lighting render pass,在上述渲染流程信息中,则将这两个render pass记为两个sub render pass:Geometry sub render pass和Lighting sub render pass,这两个sub render pass组成渲染流程信息中的一个renderpass。
在步骤S204提供的技术方案中,允许使用图形处理器的片上分片缓存所对应的渲染资源的资源状态可以但不限于包括:渲染目标尺寸,渲染目标格式,加载状态(loadaction),存储状态(store action)和临时使用状态等等。加载状态(load action)可以但不限于包括:load(加载),clear(清除上一次内容)和don’t care(不关心之前内容)等等。存储状态(store action)可以但不限于包括store(存储内容),clear(清除上一次内容)和don’t care(不关心之前内容)等等。临时使用状态可以但不限于包括分片缓存(tilebuffer)。
在步骤S206提供的技术方案中,创建的渲染框架图(frame graph)中记录了虚拟场景对应的渲染流程信息和渲染资源信息,渲染流程信息用于指示渲染虚拟场景所划分的渲染阶段(render pass)和每个渲染阶段所划分的渲染子阶段(sub render pass),渲染资源信息用于指示允许每个渲染子阶段使用图形处理器(Graphics Processing Unit,GPU)的片上分片缓存(Tile Buffer)所对应的渲染资源的资源状态。在渲染资源信息中标记了使用GPU的片上分片缓存所需要的渲染资源的资源状态,从而使得创建的渲染流程能够调用GPU的片上分片缓存,充分发挥GPU的渲染性能,提高渲染效率。
作为一种可选的实施例,将虚拟场景的渲染流程划分为渲染阶段和渲染子阶段包括:
S11,将所述虚拟场景的渲染流程中包括的原渲染阶段中满足使用图形处理器的片上分片缓存的要求的原渲染阶段配置为渲染子阶段;
S12,将所配置的渲染子阶段合并为目标渲染阶段。
可选地,在本实施例中,渲染流程信息中所包括的渲染虚拟场景所划分的渲染阶段和每个渲染阶段所划分的渲染子阶段可以但不限于是根据允许每个渲染子阶段使用图形处理器的片上分片缓存所对应的渲染资源的资源状态所划分的,可以将原有渲染过程中满足使用图形处理器的片上分片缓存所对应的渲染资源的资源状态要求的原渲染阶段作为渲染子阶段合并为新的目标渲染阶段。根据能够达到最优硬件环境的需求将原渲染流程中的渲染阶段配置为渲染子阶段,再将配置的渲染子阶段组成渲染阶段。从而使得后续的渲染场景的过程能够调用GPU的片上分片缓存,充分发挥GPU的渲染性能,提高渲染效率。
比如:由于上述Geometry render pass和Lighting render pass能够满足使用图形处理器的片上分片缓存所对应的渲染资源的资源状态要求,因此可以将上述Geometryrender pass和Lighting render pass分别作为Geometry sub render pass和Lightingsub render pass合并为一个render pass。
作为一种可选的实施例,配置每个渲染子阶段所包括的渲染资源,并将渲染资源的资源状态配置为目标资源状态,得到渲染资源信息包括:
S21,配置每个渲染子阶段所包括的渲染目标;
S22,将所述渲染目标的资源状态配置为所述目标资源状态,其中,所述渲染目标的资源状态包括渲染目标尺寸,渲染目标格式,加载状态,存储状态和临时使用状态,所述临时使用状态用于指示允许所述每个渲染子阶段使用图形处理器的片上分片缓存。
可选地,在本实施例中,在渲染虚拟场景之前,可以但不限于先根据项目需求创建能够发挥硬件最优性能的渲染框架图。
可选地,在本实施例中,渲染目标即Render Target,渲染资源需要配置到的目标资源状态包括:能够达到最优硬件环境所需要的渲染目标的渲染目标尺寸,渲染目标格式和临时使用状态,其中,该临时使用状态用于指示允许每个渲染子阶段使用图形处理器的片上分片缓存,以及根据项目需求配置的渲染目标的加载状态和存储状态。
作为一种可选的实施例,将所述渲染目标的资源状态配置为所述目标资源状态包括:
S31,将所述渲染目标的渲染目标尺寸和渲染目标格式配置为允许使用所述图形处理器的片上分片缓存的渲染目标尺寸和渲染目标格式;
S32,将所述渲染目标的加载状态和存储状态配置为满足所述虚拟场景要求的加载状态和存储状态;
S33,将所述渲染目标的图形处理器的片上存储状态标记为分片缓存。
可选地,在本实施例中,渲染目标尺寸和渲染目标格式配置为允许使用图形处理器的片上分片缓存的渲染目标尺寸和渲染目标格式。也就是说,使用图形处理器的片上分片缓存需要渲染目标满足一定的尺寸和格式要求,将渲染目标尺寸和渲染目标格式配置为该尺寸和格式要求范围内的尺寸和格式,确保渲染过程中允许使用图形处理器的片上分片缓存。
可选地,在本实施例中,渲染目标的加载状态和存储状态可以但不限于由虚拟场景要求来确定。
可选地,在本实施例中,将渲染目标的图形处理器的片上存储状态标记为分片缓存的方式可以但不限于包括在为VulkanMobileRenderTarget分配显存时,指定分配显存方式加上VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT这一位,如此便能使用Android片上缓存,达到降低带宽的效果。
作为一种可选的实施例,将所述虚拟场景的渲染流程划分为渲染阶段和渲染子阶段包括:
S41,将所述虚拟场景的渲染流程中的几何渲染阶段配置为几何渲染子阶段,将光照渲染阶段配置为光照渲染子阶段;
S42,将所述几何渲染子阶段和所述光照渲染子阶段合并为目标渲染阶段。
可选地,在本实施例中,首先原渲染流程中能够配置为渲染子阶段的渲染阶段配置为渲染子阶段,再将配置的渲染子阶段合并为目标渲染阶段。
比如:将几何渲染阶段(Geometry Pass)配置为几何渲染子阶段(GeometrySubPass),将光照渲染阶段(Lighting Pass)配置为光照渲染子阶段(Lighting SubPass),再将几何渲染子阶段(Geometry SubPass)和光照渲染子阶段(Lighting SubPass)合并为渲染阶段。
作为一种可选的实施例,配置每个渲染子阶段所包括的渲染资源,并将渲染资源的资源状态配置为目标资源状态包括:
S51,配置所述几何渲染子阶段的渲染目标包括位置渲染目标,法线渲染目标,反射率渲染目标和深度渲染目标,所述光照渲染子阶段的渲染目标包括光照渲染目标;
S52,将所述位置渲染目标,所述法线渲染目标,所述反射率渲染目标,所述深度渲染目标和所述光照渲染目标的渲染目标尺寸标记为预设尺寸,渲染目标格式标记为预设格式;
S53,将所述位置渲染目标,法线渲染目标,反射率渲染目标和深度渲染目标的加载状态标记为清除上一次内容,存储状态标记为不关心之后内容,并将所述光照渲染目标的加载状态标记为不关心之后内容,存储状态标记为存储内容;
S54,将所述位置渲染目标,所述法线渲染目标,所述反射率渲染目标,所述深度渲染目标和所述光照渲染目标的图形处理器的片上存储状态标记为分片缓存。
可选地,在本实施例中,几何渲染子阶段的渲染目标包括位置渲染目标(position),法线渲染目标(normal),反射率渲染目标(albedo)和深度渲染目标(depth),光照渲染子阶段的渲染目标包括光照渲染目标(Lighting)。
可选地,在本实施例中,上述预设尺寸和预设格式是使用GPU片上分片缓存所要求的渲染目标的尺寸和渲染目标的格式。
可选地,在本实施例中,加载状态和存储状态可以根据虚拟场景的需求进行配置,比如:将位置渲染目标(position),法线渲染目标(normal),反射率渲染目标(albedo)和深度渲染目标(depth)的加载状态(load action)标记为清除上一次内容(clear),存储状态(store action)标记为不关心之后内容(don’t care),并将光照渲染目标(Lighting)的加载状态(load action)标记为不关心之后内容(don’t care),存储状态(store action)标记为存储内容(store)。
可选地,在本实施例中,渲染目标的图形处理器的片上存储状态标记为分片缓存能够使得渲染过程充分使用到GPU的分片缓存。比如:将位置渲染目标(position),法线渲染目标(normal),反射率渲染目标(albedo),深度渲染目标(depth)和光照渲染目标(Lighting)的图形处理器的片上存储状态(GPU 存储状态)标记为分片缓存(tilebuffer)。
本申请还提供了一种可选实施例,该可选实施例提供了一种使用Vulkan构建渲染框架图的过程。图3是根据本申请可选实施例的一种基于Vulkan构建渲染框架图的过程的示意图,如图3所示,在本可选实施例中,构建的渲染框架图为能够渲染出延迟光照(deferred lighting)效果的渲染框架图,首先原渲染流程构建的原渲染框架图中Geometry RenderPass分别渲染场景到position, normal,albedo,depth的Render Target上,再经过Lighting RenderPass进行光照计算到lighting的Render Target上。其配置了两个Render Pass(Geometry,Lighting),使用了五个GPU Render Target。
在本可选实施例中,将Geometry与Lighting合为一个Render Pass,其分别成为Sub Render Pass(即Geometry Sub Pass和Lighting Sub Pass),并且对上述五个rendertarget的状态进行设置使得渲染过程能够高效地使用GPU的Tile Buffer。将position、normal、albedo、depth的加载状态(load action)配置为clear(清除上一次内容)、存储状态(store action)配置为don’t care(不关心之后内容),将Lighting的加载状态(loadaction)配置为don’t care(不关心之前内容),存储状态(store action)配置为store(存储内容)。并且将position、normal、albedo、depth和Lighting的GPU 存储状态标记为tilebuffer,这样便能充分发挥GPU的硬件性能,从而得到目标渲染框架图。
作为一种可选的实施例,在使用所述渲染流程信息和所述渲染资源信息创建目标渲染框架图之后,还包括:
S61,按照所述目标渲染框架图创建所述虚拟场景对应的目标渲染流程,其中,所述目标渲染流程中所使用的目标渲染资源满足所述目标资源状态所指示的资源状态;
S62,按照所述目标渲染流程渲染所述虚拟场景。
可选地,在本实施例中,按照渲染框架图所创建的该虚拟场景对应的目标渲染流程中所使用的目标渲染资源满足渲染资源信息所指示的资源状态,从而使得目标渲染流程能够充分发挥硬件所具有的性能优势,提高渲染速度和渲染效率。
可选地,在本实施例中,按照目标渲染流程渲染虚拟场景即按照划分的渲染阶段和渲染子阶段使用创建好的渲染资源渲染虚拟场景,在渲染过程中,能够使用到GPU的分片缓存,从而提高渲染效率。
作为一种可选的实施例,按照所述目标渲染框架图创建所述虚拟场景对应的目标渲染流程包括:
S71,按照所述渲染资源信息为每个渲染子阶段创建满足所述资源状态的所述目标渲染资源;
S72,按照所述渲染流程信息创建所述目标渲染资源之间的所述目标渲染流程。
可选地,在本实施例中,首先创建每个渲染子阶段的目标渲染资源,再将各个渲染子阶段的目标渲染资源之间连接起来得到目标渲染流程。
可选地,在本实施例中,为每个渲染子阶段创建的目标渲染资源需要满足渲染资源信息所指示的资源状态才能够保证其在执行渲染流程的过程中使用到GPU的分片缓存。
在一个可选的实施方式中,提供了一个针对手机Vulkan渲染器系统使用GPU的Tile Buffer渲染虚拟场景的过程。图4是根据本申请可选的实施方式的一种虚拟场景的渲染过程的示意图,如图4所示,首先根据项目需求配置不同渲染系统的渲染框架图(FrameGraph),比如:项目是在手机Vulkan渲染器系统下的手机游戏,则配置在手机Vulkan渲染器系统下使用手机GPU片上分片缓存的渲染框架图。然后根据配置的渲染框架图创建图形处理器(GPU)资源及配置资源状态使得创建的资源能够满足使用手机GPU片上分片缓存的要求,再根据配置的渲染框架图创建一帧的渲染流程,根据创建的渲染流程渲染虚拟场景,从而实现游戏画面的呈现。
作为一种可选的实施例,按照所述渲染资源信息为每个渲染子阶段创建满足所述资源状态的所述目标渲染资源包括:
S81,构建满足所述渲染资源信息所指示的渲染目标尺寸和渲染目标格式的第一渲染目标;
S82,将所述第一渲染目标的加载状态和存储状态配置为所述渲染资源信息所指示的目标加载状态和目标存储状态,得到第二渲染目标;
S83,将所述第二渲染目标的图形处理器存储状态标记为所述渲染资源信息所指示的分片缓存状态,得到所述目标渲染资源。
可选地,在本实施例中,构建的渲染资源可以但不限于包括满足要求的渲染目标(Render Target),渲染目标需满足的要求可以但不限于包括渲染目标尺寸,渲染目标格式和图形处理器存储状态的要求,即如果需要使用GPU的分片缓存,首先需要把渲染流程划分为渲染子阶段,其次需要配置Render Target的尺寸,格式和GPU存储状态满足调用GPU的分片缓存的要求。渲染目标的加载状态和存储状态可以根据渲染过程中的实际需求来配置。
可选地,在本实施例中,通过上述过程创建的渲染资源能够使得渲染流程的硬件环境达到最优,即硬件会尽最大可能使用片上(On-Chip)缓存(Tile Buffer),即最小化Tile Buffer至内存(显存),内存(显存)至Tile Buffer的读写操作。因为硬件Tile Buffer与内存(显存)之间操作是有延时的。尽最大可能使用片上缓存能够降低这种延时,提高渲染效率。
作为一种可选的实施例,在将虚拟场景的渲染流程划分为渲染阶段和渲染子阶段之前,还包括:
S91,获取所述虚拟场景的场景信息;
S92,构建所述场景信息所对应的目标场景条件;
S93,构建满足所述目标场景条件的渲染流程作为所述虚拟场景的渲染流程;
在使用所述渲染流程信息和所述渲染资源信息创建目标渲染框架图之后,还包括:
S94,在具有对应关系的场景条件和渲染框架图中存储具有对应关系的所述目标场景条件和所述目标渲染框架图。
可选地,在本实施例中,可以为不同类型的场景创建不同的渲染框架图,在进行场景渲染时,将当前的虚拟场景所满足的场景条件对应的渲染框架图作为渲染当前场景的渲染框架图。
可选地,在本实施例中,根据获取到的虚拟场景的场景信息能够构建出渲染该虚拟场景所需要满足的目标场景条件,再构建出满足该目标场景条件的渲染流程作为该虚拟场景的渲染流程,并使用构建出的该虚拟场景的渲染流程创建该虚拟场景对应的目标渲染框架图。
可选地,在本实施例中,创建目标渲染框架图之后,可以将目标渲染框架图和目标场景条件之间的对应关系存储起来,这样再对相同场景条件的虚拟场景进行渲染时就不必再次创建渲染框架图了,可以直接从具有对应关系的场景条件和渲染框架图中提取已经创建好的渲染框架图直接使用,从而更加提高了渲染效率。
比如:不同的场景信息所对应的场景条件可能是不同的,构建出的满足场景条件的渲染流程也可能不同,比如:可能创建出如图5所示的Frame Graph 1的形式的渲染框架图,其包括三个渲染目标(Render Target 11,Render Target 12和Render Target 13),从Render Target 11到Render Target 12被划分为一个渲染子阶段Sub render pass 11,从Render Target 12到Render Target 13被划分为另一个渲染子阶段Sub render pass 12。也可能创建出如图6所示的Frame Graph 2的形式的渲染框架图,其包括五个渲染目标(Render Target 21,Render Target 22,Render Target 23,Render Target 24和RenderTarget 25),从Render Target 21分别到Render Target 22,Render Target 23和RenderTarget 24被划分为一个渲染子阶段Sub render pass 21,分别从Render Target 22,Render Target 23和Render Target 24到Render Target 25被划分为另一个渲染子阶段Sub render pass 22。每一个渲染框架图对应了一种场景条件,符合该场景条件的虚拟场景可以使用对应的渲染框架图进行渲染。比如:Frame Graph 1对应的场景条件为不需要渲染光照效果,Frame Graph 2对应的场景条件为需要渲染光照效果,那么如果待渲染的虚拟场景需要渲染光照效果则可以使用Frame Graph 2进行渲染,如果待渲染的虚拟场景不需要渲染光照效果则可以使用Frame Graph 1进行渲染。将场景条件和渲染框架图按照对应关系存储起来,渲染虚拟场景时可以根据虚拟场景的场景信息所对应的场景条件从中选出对应的渲染框架图直接使用,更加提高了渲染虚拟场景的效率。
在一个可选的实施方式中,提供了一种渲染框架图的创建和使用的代码实现过程,该过程可以但不限于划分为三个阶段:渲染框架图的构建阶段(setup阶段,可以作为上述步骤S202和步骤S204的实现过程),渲染框架图的编译阶段(compile阶段,可以作为上述步骤S206的实现过程)和渲染框架图的执行阶段(execute阶段,可以作为上述步骤S61和步骤S62的实现过程)。
在setup阶段中可以构建出渲染框架图的数据结构(使用渲染资源和渲染阶段作为结点,读写操作作为边构建有向无环图作为渲染框架图,即将虚拟场景的渲染流程划分为渲染阶段和渲染子阶段,配置每个渲染子阶段所包括的渲染资源),并通过资源管理器对渲染资源进行管理(比如:给渲染资源附加语义(渲染资源的类型,使用方式,是否外部导入等),管理各种信息(渲染资源状态追踪与转换,资源池,描述符池等),即将渲染资源的资源状态配置为目标资源状态)。
在compile阶段中可以通过编译器根据渲染框架图的数据结构和资源管理器管理的资源获取渲染资源的信息(比如:渲染阶段的拓扑排序,渲染资源的生命期等)编译渲染框架图(即使用渲染流程信息和渲染资源信息创建目标渲染框架图)。在execute阶段可以通过执行器给渲染阶段附加回调函数,执行渲染框架图(使用资源管理器来构造,析构,获取渲染阶段所需资源,按序执行渲染阶段回调函数等)。
可选地,在本可选的实施方式中,在setup阶段中可以构建出渲染框架图的数据结构,该数据结构可以支持导出图片进行可视化展示,展示出的渲染框架图可以但不限于是一种有向无环图,图中包括结点和边,结点表示了渲染资源和渲染阶段,结点类型可以但不限于包括:资源结点(ResourceNode)和阶段结点(PassNode)。边表示了结点间的操作,其中操作类型包括读操作(ResourceNode→PassNode)和写操作(PassNode→ResourceNode)。基于此可以通过代码实现渲染框架图的纯数据,无逻辑的数据表示。该数据表示可以但不限于通过可视化图形软件(比如:Graphviz等)将其可视化,得到导出图,能够直观的表现出虚拟场景的渲染流程。
可选地,在本可选的实施方式中,可以但不限于通过资源管理器来管理各个渲染资源的资源状态,在setup阶段中可以将渲染资源需要满足的目标资源状态向资源管理器进行声明,由资源管理器对目标资源状态进行管理,确保编译过程中得到的渲染资源满足目标资源状态的要求。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
根据本申请实施例的另一个方面,还提供了一种用于实施上述渲染框架图的创建方法的渲染框架图的创建装置。图7是根据本申请实施例的一种可选的渲染框架图的创建装置的示意图,如图7所示,该装置可以包括:
划分模块72,用于将虚拟场景的渲染流程划分为渲染阶段和渲染子阶段,得到渲染流程信息;
配置模块74,用于配置每个渲染子阶段所包括的渲染资源,并将渲染资源的资源状态配置为目标资源状态,得到渲染资源信息,其中,所述目标资源状态用于指示允许每个渲染子阶段使用图形处理器的片上分片缓存所对应的渲染资源的资源状态;
第一创建模块76,用于使用所述渲染流程信息和所述渲染资源信息创建目标渲染框架图,其中,所述目标渲染框架图用于对所述虚拟场景进行渲染。
需要说明的是,该实施例中的划分模块72可以用于执行本申请实施例中的步骤S202,该实施例中的配置模块74可以用于执行本申请实施例中的步骤S204,该实施例中的第一创建模块76可以用于执行本申请实施例中的步骤S206。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
通过上述模块,将虚拟场景的渲染流程划分为渲染阶段和渲染子阶段作为渲染流程信息,在为每个渲染子阶段配置渲染资源并为渲染资源配置资源状态时将渲染资源的资源状态配置为用于指示允许每个渲染子阶段使用图形处理器的片上分片缓存所对应的渲染资源的资源状态的目标资源状态,从而得到渲染资源信息,使得在使用由上述渲染流程信息和渲染资源信息创建的目标渲染框架图能够在渲染虚拟场景的过程中充分发挥硬件的最优性能,达到了提高虚拟场景的渲染效率的技术效果,进而解决了虚拟场景的渲染效率较低的技术问题。
作为一种可选的实施例,所述划分模块包括:
第一配置单元,用于将所述虚拟场景的渲染流程中包括的原渲染阶段中满足使用图形处理器的片上分片缓存的要求的原渲染阶段配置为渲染子阶段;
第一合并单元,用于将所配置的渲染子阶段合并为目标渲染阶段。
作为一种可选的实施例,所述配置模块包括:
第二配置单元,用于配置每个渲染子阶段所包括的渲染目标;
第三配置单元,用于将所述渲染目标的资源状态配置为所述目标资源状态,其中,所述渲染目标的资源状态包括渲染目标尺寸,渲染目标格式,加载状态,存储状态和临时使用状态,所述临时使用状态用于指示允许所述每个渲染子阶段使用图形处理器的片上分片缓存。
作为一种可选的实施例,所述第三配置单元用于:
将所述渲染目标的渲染目标尺寸和渲染目标格式配置为允许使用所述图形处理器的片上分片缓存的渲染目标尺寸和渲染目标格式;
将所述渲染目标的加载状态和存储状态配置为满足所述虚拟场景要求的加载状态和存储状态;
将所述渲染目标的图形处理器的片上存储状态标记为分片缓存。
作为一种可选的实施例,所述划分模块包括:
第四配置单元,用于将所述虚拟场景的原渲染流程中的几何渲染阶段配置为几何渲染子阶段,将光照渲染阶段配置为光照渲染子阶段;
第二合并单元,用于将所述几何渲染子阶段和所述光照渲染子阶段合并为目标渲染阶段。
作为一种可选的实施例,所述第四配置单元用于:
配置所述几何渲染子阶段的渲染目标包括位置渲染目标,法线渲染目标,反射率渲染目标和深度渲染目标,所述光照渲染子阶段的渲染目标包括光照渲染目标;
将所述位置渲染目标,所述法线渲染目标,所述反射率渲染目标,所述深度渲染目标和所述光照渲染目标的渲染目标尺寸标记为预设尺寸,渲染目标格式标记为预设格式;
将所述位置渲染目标,法线渲染目标,反射率渲染目标和深度渲染目标的加载状态标记为清除上一次内容,存储状态标记为不关心之后内容,并将所述光照渲染目标的加载状态标记为不关心之后内容,存储状态标记为存储内容;
将所述位置渲染目标,所述法线渲染目标,所述反射率渲染目标,所述深度渲染目标和所述光照渲染目标的图形处理器的片上存储状态标记为分片缓存。
作为一种可选的实施例,所述装置还包括:
第二创建模块,用于在使用所述渲染流程信息和所述渲染资源信息创建目标渲染框架图之后,按照所述目标渲染框架图创建所述虚拟场景对应的目标渲染流程,其中,所述目标渲染流程中所使用的目标渲染资源满足所述目标资源状态所指示的资源状态;
渲染模块,用于按照所述目标渲染流程渲染所述虚拟场景。
作为一种可选的实施例,所述第二创建模块包括:
第一创建单元,用于按照所述渲染资源信息为每个渲染子阶段创建满足所述资源状态的所述目标渲染资源;
第二创建单元,用于按照所述渲染流程信息创建所述目标渲染资源之间的所述目标渲染流程。
作为一种可选的实施例,所述第一创建单元用于:
构建满足所述渲染资源信息所指示的渲染目标尺寸和渲染目标格式的第一渲染目标;
将所述第一渲染目标的加载状态和存储状态配置为所述渲染资源信息所指示的目标加载状态和目标存储状态,得到第二渲染目标;
将所述第二渲染目标的图形处理器存储状态标记为所述渲染资源信息所指示的分片缓存状态,得到所述目标渲染资源。
作为一种可选的实施例,所述装置还包括:
构建模块,用于在将虚拟场景的渲染流程划分为渲染阶段和渲染子阶段之前,获取所述虚拟场景的场景信息;构建所述场景信息所对应的目标场景条件;构建满足所述目标场景条件的渲染流程作为所述虚拟场景的渲染流程;
存储模块,用于在使用所述渲染流程信息和所述渲染资源信息创建目标渲染框架图之后,在具有对应关系的场景条件和渲染框架图中存储具有对应关系的所述目标场景条件和所述目标渲染框架图。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本申请实施例的另一个方面,还提供了一种用于实施上述渲染框架图的创建方法的电子装置。
图8是根据本申请实施例的一种电子装置的结构框图,如图8所示,该电子装置可以包括:一个或多个(图中仅示出一个)处理器801、存储器803、以及传输装置805,如图8所示,该电子装置还可以包括输入输出设备807。
其中,存储器803可用于存储软件程序以及模块,如本申请实施例中的渲染框架图的创建方法和装置对应的程序指令/模块,处理器801通过运行存储在存储器803内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的渲染框架图的创建方法。存储器803可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器803可进一步包括相对于处理器801远程设置的存储器,这些远程存储器可以通过网络连接至电子装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置805用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置805包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置805为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器803用于存储应用程序。
处理器801可以通过传输装置805调用存储器803存储的应用程序,以执行下述步骤:
将虚拟场景的渲染流程划分为渲染阶段和渲染子阶段,得到渲染流程信息;
配置每个渲染子阶段所包括的渲染资源,并将渲染资源的资源状态配置为目标资源状态,得到渲染资源信息,其中,所述目标资源状态用于指示允许每个渲染子阶段使用图形处理器的片上分片缓存所对应的渲染资源的资源状态;
使用所述渲染流程信息和所述渲染资源信息创建目标渲染框架图,其中,所述目标渲染框架图用于对所述虚拟场景进行渲染。
采用本申请实施例,提供了一种渲染框架图的创建的方案。将虚拟场景的渲染流程划分为渲染阶段和渲染子阶段作为渲染流程信息,在为每个渲染子阶段配置渲染资源并为渲染资源配置资源状态时将渲染资源的资源状态配置为用于指示允许每个渲染子阶段使用图形处理器的片上分片缓存所对应的渲染资源的资源状态的目标资源状态,从而得到渲染资源信息,使得在使用由上述渲染流程信息和渲染资源信息创建的目标渲染框架图能够在渲染虚拟场景的过程中充分发挥硬件的最优性能,达到了提高虚拟场景的渲染效率的技术效果,进而解决了虚拟场景的渲染效率较低的技术问题。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图8所示的结构仅为示意,电子装置可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等设备。图8其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图8中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图8所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令电子装置相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行渲染框架图的创建方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
将虚拟场景的渲染流程划分为渲染阶段和渲染子阶段,得到渲染流程信息;
配置每个渲染子阶段所包括的渲染资源,并将渲染资源的资源状态配置为目标资源状态,得到渲染资源信息,其中,所述目标资源状态用于指示允许每个渲染子阶段使用图形处理器的片上分片缓存所对应的渲染资源的资源状态;
使用所述渲染流程信息和所述渲染资源信息创建目标渲染框架图,其中,所述目标渲染框架图用于对所述虚拟场景进行渲染。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (13)
1.一种渲染框架图的创建方法,其特征在于,包括:
将虚拟场景的渲染流程划分为渲染阶段和渲染子阶段,得到渲染流程信息;
配置每个渲染子阶段所包括的渲染资源,并将渲染资源的资源状态配置为目标资源状态,得到渲染资源信息,其中,所述目标资源状态用于指示允许每个渲染子阶段使用图形处理器的片上分片缓存所对应的渲染资源的资源状态;
使用所述渲染流程信息和所述渲染资源信息创建目标渲染框架图,其中,所述目标渲染框架图用于对所述虚拟场景进行渲染。
2.根据权利要求1所述的方法,其特征在于,将虚拟场景的渲染流程划分为渲染阶段和渲染子阶段包括:
将所述虚拟场景的渲染流程中包括的原渲染阶段中满足使用图形处理器的片上分片缓存的要求的原渲染阶段配置为渲染子阶段;
将所配置的渲染子阶段合并为目标渲染阶段。
3.根据权利要求1所述的方法,其特征在于,配置每个渲染子阶段所包括的渲染资源,并将渲染资源的资源状态配置为目标资源状态,得到渲染资源信息包括:
配置每个渲染子阶段所包括的渲染目标;
将所述渲染目标的资源状态配置为所述目标资源状态,其中,所述渲染目标的资源状态包括渲染目标尺寸,渲染目标格式,加载状态,存储状态和临时使用状态,所述临时使用状态用于指示允许所述每个渲染子阶段使用图形处理器的片上分片缓存。
4.根据权利要求3所述的方法,其特征在于,将所述渲染目标的资源状态配置为所述目标资源状态包括:
将所述渲染目标的渲染目标尺寸和渲染目标格式配置为允许使用所述图形处理器的片上分片缓存的渲染目标尺寸和渲染目标格式;
将所述渲染目标的加载状态和存储状态配置为满足所述虚拟场景要求的加载状态和存储状态;
将所述渲染目标的图形处理器的片上存储状态标记为分片缓存。
5.根据权利要求1所述的方法,其特征在于,将虚拟场景的渲染流程划分为渲染阶段和渲染子阶段包括:
将所述虚拟场景的原渲染流程中的几何渲染阶段配置为几何渲染子阶段,将光照渲染阶段配置为光照渲染子阶段;
将所述几何渲染子阶段和所述光照渲染子阶段合并为目标渲染阶段。
6.根据权利要求5所述的方法,其特征在于,配置每个渲染子阶段所包括的渲染资源,并将渲染资源的资源状态配置为目标资源状态包括:
配置所述几何渲染子阶段的渲染目标包括位置渲染目标,法线渲染目标,反射率渲染目标和深度渲染目标,所述光照渲染子阶段的渲染目标包括光照渲染目标;
将所述位置渲染目标,所述法线渲染目标,所述反射率渲染目标,所述深度渲染目标和所述光照渲染目标的渲染目标尺寸标记为预设尺寸,渲染目标格式标记为预设格式;
将所述位置渲染目标,法线渲染目标,反射率渲染目标和深度渲染目标的加载状态标记为清除上一次内容,存储状态标记为不关心之后内容,并将所述光照渲染目标的加载状态标记为不关心之后内容,存储状态标记为存储内容;
将所述位置渲染目标,所述法线渲染目标,所述反射率渲染目标,所述深度渲染目标和所述光照渲染目标的图形处理器的片上存储状态标记为分片缓存。
7.根据权利要求1所述的方法,其特征在于,在使用所述渲染流程信息和所述渲染资源信息创建目标渲染框架图之后,所述方法还包括:
按照所述目标渲染框架图创建所述虚拟场景对应的目标渲染流程,其中,所述目标渲染流程中所使用的目标渲染资源满足所述目标资源状态所指示的资源状态;
按照所述目标渲染流程渲染所述虚拟场景。
8.根据权利要求7所述的方法,其特征在于,按照所述目标渲染框架图创建所述虚拟场景对应的目标渲染流程包括:
按照所述渲染资源信息为每个渲染子阶段创建满足所述资源状态的所述目标渲染资源;
按照所述渲染流程信息创建所述目标渲染资源之间的所述目标渲染流程。
9.根据权利要求8所述的方法,其特征在于,按照所述渲染资源信息为每个渲染子阶段创建满足所述资源状态的所述目标渲染资源包括:
构建满足所述渲染资源信息所指示的渲染目标尺寸和渲染目标格式的第一渲染目标;
将所述第一渲染目标的加载状态和存储状态配置为所述渲染资源信息所指示的目标加载状态和目标存储状态,得到第二渲染目标;
将所述第二渲染目标的图形处理器存储状态标记为所述渲染资源信息所指示的分片缓存状态,得到所述目标渲染资源。
10.根据权利要求1所述的方法,其特征在于,
在将虚拟场景的渲染流程划分为渲染阶段和渲染子阶段之前,所述方法还包括:获取所述虚拟场景的场景信息;构建所述场景信息所对应的目标场景条件;构建满足所述目标场景条件的渲染流程作为所述虚拟场景的渲染流程;
在使用所述渲染流程信息和所述渲染资源信息创建目标渲染框架图之后,所述方法还包括:在具有对应关系的场景条件和渲染框架图中存储具有对应关系的所述目标场景条件和所述目标渲染框架图。
11.一种渲染框架图的创建装置,其特征在于,包括:
划分模块,用于将虚拟场景的渲染流程划分为渲染阶段和渲染子阶段,得到渲染流程信息;
配置模块,用于配置每个渲染子阶段所包括的渲染资源,并将渲染资源的资源状态配置为目标资源状态,得到渲染资源信息,其中,所述目标资源状态用于指示允许每个渲染子阶段使用图形处理器的片上分片缓存所对应的渲染资源的资源状态;
第一创建模块,用于使用所述渲染流程信息和所述渲染资源信息创建目标渲染框架图,其中,所述目标渲染框架图用于对所述虚拟场景进行渲染。
12.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至10中任一项所述的方法。
13.一种电子装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器通过所述计算机程序执行上述权利要求1至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011508082.2A CN112288841B (zh) | 2020-12-18 | 2020-12-18 | 一种渲染框架图的创建方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011508082.2A CN112288841B (zh) | 2020-12-18 | 2020-12-18 | 一种渲染框架图的创建方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112288841A true CN112288841A (zh) | 2021-01-29 |
CN112288841B CN112288841B (zh) | 2021-04-02 |
Family
ID=74426938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011508082.2A Active CN112288841B (zh) | 2020-12-18 | 2020-12-18 | 一种渲染框架图的创建方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112288841B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117215592A (zh) * | 2023-11-07 | 2023-12-12 | 芯瞳半导体技术(山东)有限公司 | 渲染程序生成方法、装置、电子设备和存储介质 |
WO2023241210A1 (zh) * | 2022-06-17 | 2023-12-21 | 腾讯科技(深圳)有限公司 | 虚拟场景的渲染方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104392479A (zh) * | 2014-10-24 | 2015-03-04 | 无锡梵天信息技术股份有限公司 | 一种利用灯光索引号对像素进行光照着色的方法 |
CN108932742A (zh) * | 2018-07-10 | 2018-12-04 | 北京航空航天大学 | 一种基于遥感图像分类的大规模红外地形场景实时渲染方法 |
US10580106B2 (en) * | 2018-02-28 | 2020-03-03 | Basemark Oy | Graphics processing method utilizing predefined render chunks |
-
2020
- 2020-12-18 CN CN202011508082.2A patent/CN112288841B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104392479A (zh) * | 2014-10-24 | 2015-03-04 | 无锡梵天信息技术股份有限公司 | 一种利用灯光索引号对像素进行光照着色的方法 |
US10580106B2 (en) * | 2018-02-28 | 2020-03-03 | Basemark Oy | Graphics processing method utilizing predefined render chunks |
CN108932742A (zh) * | 2018-07-10 | 2018-12-04 | 北京航空航天大学 | 一种基于遥感图像分类的大规模红外地形场景实时渲染方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023241210A1 (zh) * | 2022-06-17 | 2023-12-21 | 腾讯科技(深圳)有限公司 | 虚拟场景的渲染方法、装置、设备及存储介质 |
CN117215592A (zh) * | 2023-11-07 | 2023-12-12 | 芯瞳半导体技术(山东)有限公司 | 渲染程序生成方法、装置、电子设备和存储介质 |
CN117215592B (zh) * | 2023-11-07 | 2024-02-20 | 芯瞳半导体技术(山东)有限公司 | 渲染程序生成方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112288841B (zh) | 2021-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112233217B (zh) | 一种虚拟场景的渲染方法和装置 | |
US11979433B2 (en) | Highly scalable four-dimensional web-rendering geospatial data system for simulated worlds | |
CN105094983B (zh) | 计算机,控制设备和数据处理方法 | |
CN112288841B (zh) | 一种渲染框架图的创建方法和装置 | |
JP6882992B2 (ja) | 動画像をプレビューする方法及びデバイス、並びに表現パッケージを表示する方法及びデバイス | |
JP7345652B2 (ja) | 点群コーディングのための幾何学的占有情報へのハッシュベースのアクセス | |
CN110908697A (zh) | 一种资源打包方法、装置、服务器及存储介质 | |
US10516729B2 (en) | Dynamic graph adaptation for stream processing over hybrid, physically disparate analytics platforms | |
US20200412837A1 (en) | Efficient and extensive function groups with multi-instance function support for cloud based processing | |
EP2842044A1 (en) | Platform runtime abstraction | |
CN112307403A (zh) | 页面渲染方法、装置、存储介质以及终端 | |
CN112423111A (zh) | 图形引擎和适用于播放器的图形处理方法 | |
CN116860391A (zh) | Gpu算力资源调度方法、装置、设备和介质 | |
US20160092206A1 (en) | Managing executable files | |
CN114503438A (zh) | 用于视频编解码的半解耦分区 | |
CN117389647A (zh) | 插件生成方法、应用程序开发方法、装置、设备及介质 | |
CN114096998A (zh) | 点云编解码中占用编码的上下文建模 | |
CN105727556A (zh) | 一种图像绘制的方法、相关设备及系统 | |
US10603583B1 (en) | Entity-component architecture with components having multiple configurations | |
CN113489701A (zh) | 防火墙配置方法、系统、设备 | |
CN111581932A (zh) | 一种数据驱动的大数据分析方法、系统、装置、存储介质及终端 | |
CN111009025A (zh) | 骨骼动画的隐藏方法、装置及设备 | |
RU2777042C1 (ru) | Способ передачи идентификатора субизображения | |
CN114007077B (zh) | 多媒体资源的处理方法、装置、电子设备和存储介质 | |
US12081594B2 (en) | Highly scalable four-dimensional geospatial data system for simulated worlds |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20210129 Assignee: Beijing Xuanguang Technology Co.,Ltd. Assignor: Perfect world (Beijing) software technology development Co.,Ltd. Contract record no.: X2022990000254 Denomination of invention: Method and device for creating rendering frame diagram Granted publication date: 20210402 License type: Exclusive License Record date: 20220610 |