CN114972604A - 图像渲染方法、装置、设备及存储介质 - Google Patents
图像渲染方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114972604A CN114972604A CN202210691350.1A CN202210691350A CN114972604A CN 114972604 A CN114972604 A CN 114972604A CN 202210691350 A CN202210691350 A CN 202210691350A CN 114972604 A CN114972604 A CN 114972604A
- Authority
- CN
- China
- Prior art keywords
- rendering
- target
- post
- processing
- image
- 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/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- 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
Abstract
本申请实施例公开了一种图像渲染方法、装置、设备及存储介质,属于图像渲染技术领域。该方法包括:对目标应用中的3D场景进行3D场景渲染,得到3D场景纹理;基于目标调控策略,对3D场景纹理进行后处理渲染,得到后处理纹理,目标调控策略用于调控后处理渲染过程的渲染负载;对3D场景纹理和后处理纹理进行合成渲染,得到合成图像;在合成图像的上层叠加UI图像,得到图像帧,UI图像通过UI渲染得到。由于用户通常对画面最上层的UI图像最为敏感,因此通过对后处理渲染过程进行调控,并保证UI图像的正常UI渲染,能够降低图像渲染过程的整体负载,并避免负载调控过程对UI画质的影响,有助于提升负载调控下用户的应用使用体验。
Description
技术领域
本申请实施例涉及图像渲染技术领域,特别涉及一种图像渲染方法、装置、设备及存储介质。
背景技术
随着计算机设备的图像渲染能力的不断提升,越来越多支持三维(3-Dimension,3D)场景显示的应用程序应运而生。比如3D游戏应用、增强现实(Augmented Reality,AR)应用、虚拟现实(Virtual Reality,VR)应用等等。
在运行支持3D场景显示的应用程序时,图形处理器(Graphics Processing Unit,GPU)的负载通常较大。相关技术中,通常采用降低整体应用画质的方式来降低GPU的负载。
发明内容
本申请实施例提供了一种图像渲染方法、装置、设备及存储介质。所述技术方案如下:
一方面,本申请实施例提供了一种图像渲染方法,所述方法包括:
对目标应用中的3D场景进行3D场景渲染,得到3D场景纹理;
基于目标调控策略,对所述3D场景纹理进行后处理渲染,得到后处理纹理,所述目标调控策略用于调控后处理渲染过程的渲染负载;
对所述3D场景纹理和所述后处理纹理进行合成渲染,得到合成图像;
在所述合成图像的上层叠加用户界面(User Interface,UI)图像,得到图像帧,所述UI图像通过UI渲染得到。
另一方面,本申请实施例提供了一种图像渲染装置,所述装置包括:
3D渲染模块,用于对目标应用中的3D场景进行3D场景渲染,得到3D场景纹理;
后处理渲染模块,用于基于目标调控策略,对所述3D场景纹理进行后处理渲染,得到后处理纹理,所述目标调控策略用于调控后处理渲染过程的渲染负载;
合成渲染模块,用于对所述3D场景纹理和所述后处理纹理进行合成渲染,得到合成图像;
叠加模块,用于在所述合成图像的上层叠加UI图像,得到图像帧,所述UI图像通过UI渲染得到。
另一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器;所述存储器存储有至少一段程序,所述至少一段程序用于被所述处理器执行以实现如上述方面所述的图像渲染方法。
另一方面,本申请实施例提供了一种计算机可读存储介质,所述存储介质存储有至少一段程序,所述至少一段程序用于被处理器执行以实现如上述方面所述的图像渲染方法。
另一方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面提供的图像渲染方法。
本申请实施例中,完成对3D场景的3D场景渲染,得到3D场景纹理后,基于目标调控策略对后处理渲染过程的渲染负载进行调控,得到后处理纹理,并对后处理纹理以及3D场景纹理进行合成渲染,得到合成图像,从而将UI渲染得到的UI图像叠加在合成图像上层,得到包含3D场景以及UI的图像帧;由于用户通常对画面最上层的UI图像最为敏感,因此通过对后处理渲染过程进行调控,并保证UI图像的正常UI渲染,不仅能够降低图像渲染过程的整体负载,还能够避免负载调控过程对UI画质的影响,有助于提升负载调控下用户的应用使用体验。
附图说明
图1是相关技术中图像渲染流程的流程示意图;
图2示出了本申请一个示例性实施例提供的图像渲染方法的流程图;
图3是本申请一个示例性实施例示出的图像渲染过程的实施示意图;
图4是本申请一个示例性实施例示出的图像渲染流程的流程示意图;
图5示出了本申请另一个示例性实施例提供的图像渲染方法的流程图;
图6是本申请一个示例性实施例示出的离屏窗口切换过程的流程图;
图7是本申请一个示例性实施例示出的应用程序、捕获层与图形接口间层级关系的示意图;
图8是本申请另一个示例性实施例示出的图像渲染过程的实施示意图;
图9示出了本申请一个实施例提供的图像渲染装置的结构框图;
图10示出了本申请一个示例性实施例提供的计算机设备的结构方框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
为了方便理解,下面首先对本申请实施例中涉及的名词进行解释说明。
后处理渲染(Post-Processrender):指完成3D渲染后执行的渲染操作,通常用于解决长时间渲染中的错误(比如调色、裁剪和矫正等等)以及实现3D渲染过程中无法达到的效果(比如特效处理、模糊处理等等)。后处理渲染通常在独立的窗口中完成,与3D渲染结果进行合成。
UI图像:本申请实施例中的UI图像指位于图像帧最上层(即在图层叠加过程中最后叠加)的图像,由于UI图像位于图像帧的最上层,因此从用户观感上来说,用户对UI图像的画质作为敏感。
UI图像中通常包含交互控件、文字、图标等等。以游戏应用为例,该UI图像包括控制虚拟角色运动的方向控件、控制虚拟角色释放技能的技能控件、虚拟角色对应的角色状态指示控件以及指示虚拟角色所需执行任务的任务列表控件。当然,针对不同类型的应用,该UI图像中包含的对象可能不同,本申请实施例并不对此进行限定。
离屏窗口(off-screenwindow):在屏窗口(on-screen window)以外额外创建的窗口,不同于在屏窗口中渲染的内容直接显示在屏幕中(即渲染得到的内容存储在帧缓冲区),离屏窗口中渲染的内容并不会直接显示在屏幕中(渲染得到的内容首先存储在离屏缓冲区,后续完成合并等操作后移至帧缓冲区),在离屏窗口中进行渲染的过程被称为离屏渲染。离屏渲染虽然能够处理一些特殊效果,但是由于需要额外开辟离屏缓冲区,且离屏缓冲区中的数据转存在帧缓冲区需要耗费一定时间,因此离屏渲染也会造成一定的性能问题。
相关技术中,支持3D场景的应用的运行过程中,一帧图像帧的渲染流程如图1所示。图形接口(Graphics API)接收到来自应用的渲染指令后,首先进行3D渲染(3Drender),得到3D场景纹理,然后对3D场景纹理进行后处理渲染,得到后处理纹理。进一步的,对3D场景纹理和后处理进行合并渲染(compositerender),得到合成图像。完成合成渲染后,图形接口进行UI渲染,并将UI渲染得到的UI图像叠加在合成图像的上层,得到图像帧。
计算机设备通过下调对整体画面画质来降低渲染负载时(即对各个渲染环节采用统一策略),会导致UI画面中的文字或者图像变化尖锐的区域出现锯齿化或者模糊。由于UI画面位于图像帧的最上层,因此用户对UI画面最为敏感,影响用户的应用使用体验。此外,在其他可能的降低渲染负载的方案中,需要重新启动应用才能使方案生效,影响用户的使用体验。
为了在实现渲染负载调控的同时,降低负载调控过程对用户观感的影响,提升应用使用体验,本申请实施例提供的图像渲染方案中,针对不同的渲染过程,计算机设备采用针对性的策略。计算机设备基于目标调控策略对后处理渲染过程的渲染负载进行调控,以此降低后处理渲染过程的负载;同时,后续UI渲染过程保持不变,保证图像帧中最上层UI图像的画质保持不变。下面采用示例性的实施例对图像渲染过程进行说明。
请参考图2,其示出了本申请一个示例性实施例提供的图像渲染方法的流程图。该方法可以包括如下步骤。
步骤201,对目标应用中的3D场景进行3D场景渲染,得到3D场景纹理。
在一种可能的实施方式中,当存在图像渲染需求时,目标应用向图形接口发送渲染指令时,图形接口接收到渲染指令后,首先基于渲染指令进行3D场景渲染,得到3D场景纹理(texture)。
其中,3D场景渲染即将3D计算机图形转化为2D图像的过程,可以采用3D渲染引擎(采用光线追踪或光栅化技术)进行3D场景渲染。本申请实施例并不对3D场景渲染所采用的具体渲染工具或技术进行限定。
可选的,该图形接口包括OpenGL、OpenGL ES、Vulkan、DirectX、Metal等等,本申请实施例对此不作限定。
步骤202,基于目标调控策略,对3D场景纹理进行后处理渲染,得到后处理纹理,目标调控策略用于调控后处理渲染过程的渲染负载。
在一种可能的实施方式中,目标应用运行过程中,计算机设备实时确定渲染负载,并在渲染负载较重时,基于目标调控策略对3D场景纹理的后处理渲染过程进行负载调控,以此降低图像渲染过程中的整体负载。
可选的,该目标调控策略可以为固定调控策略,即不同程度的渲染负载下,计算机设备均采用统一的调控策略;或者,该目标调控策略可以为动态调控策略,即不同程度的渲染负载下,计算机设备采用不同的调控策略,以此提高不同场景下的目标应用的画面显示质量。
在一些实施例中,该目标调控策略中包含调控参数,计算机设备即根据该调控参数对后处理渲染过程进行调控。其中,该调控参数可以包括分辨率、细节等级(Level ofDetail,LOD)等等。当然,除了上述调控参数外,其他能够对后处理渲染过程负载产生影响的参数均可以被视为调控参数,本实施例对此不作限定。
当然,目标调控策略除了降低后处理渲染过程的渲染负载外,还可以在渲染负载缓解(比如由重度渲染场景切换至轻度渲染场景)的情况下,提高后处理渲染的渲染负载,以此提高画面质量。
步骤203,对3D场景纹理和后处理纹理进行合成渲染,得到合成图像。
完成3D场景渲染和后处理渲染后,计算机设备进一步对3D场景纹理和后处理纹理进行合成渲染,得到合成图像。
在一些实施例中,3D场景渲染和后处理渲染均在离屏窗口中进行,而合成渲染则在在屏窗口中进行,即合成渲染得到的合成图像直接显示在屏幕中。
关于合成渲染的方式,在一种可能的实施方式中,计算机设备获取3D场景纹理和后处理纹理各自对应的合成权重,从而基于合成权重对两张纹理进行合成渲染,得到合成图像。
步骤204,在合成图像的上层叠加UI图像,得到图像帧,UI图像通过UI渲染得到。
完成合成渲染后,计算机设备继续进行UI渲染得到UI图像,并基于UI图像与合成图像之间的层级关系,将UI图像叠加在合成图像的上层,得到图像帧。其中,图层叠加在帧缓冲区中执行,即叠加得到的图像帧存储在帧缓冲区中,以供后续上屏显示。
在一个示意性的例子中,如图3所示,图像渲染过程中,计算机设备首先对3D场景31进行3D场景渲染,得到3D场景纹理32,然后基于目标调控策略33对3D场景纹理32进行后处理渲染,得到后处理纹理34,并进一步对3D场景纹理32和后处理纹理34经过合成渲染,得到合成图像35。完成合成渲染后,计算机设备进行UI渲染,并对渲染得到的UI图像36和合成图像35进行叠加,得到图像帧37。
综上所述,本申请实施例中,完成对3D场景的3D场景渲染,得到3D场景纹理后,基于目标调控策略对后处理渲染过程的渲染负载进行调控,得到后处理纹理,并对后处理纹理以及3D场景纹理进行合成渲染,得到合成图像,从而将UI渲染得到的UI图像叠加在合成图像上层,得到包含3D场景以及UI的图像帧;由于用户通常对画面最上层的UI图像最为敏感,因此通过对后处理渲染过程进行调控,并保证UI图像的正常UI渲染,不仅能够降低图像渲染过程的整体负载,还能够避免负载调控过程对UI画质的影响,有助于提升负载调控下用户的应用使用体验。
关于对后处理渲染过程进行负载调控的具体方式,在一种可能的实施方式中,目标调控策略中可以包括目标分辨率,该目标分辨率低于3D场景纹理的分辨率,即计算机设备采用降低分辨率的方式对3D场景纹理进行后处理渲染,以降低后处理渲染过程的渲染负载。
如图4所示,完成3D渲染后,计算机设备跳过原始后处理渲染流程,并执行新后处理渲染流程,新后处理渲染流程所采用的目标分辨率低于原始后处理渲染流程所采用的分辨率。完成后处理渲染后,计算机设备进一步对3D场景纹理和低分辨率的后处理纹理进行合成渲染,得到合成图像,进而将合成图像与UI渲染得到的UI图像进行叠加,得到图像帧。下面采用示例性的实施例对降分辨率后处理渲染的详细流程进行说明。
请参考图5,其示出了本申请另一个示例性实施例提供的图像渲染方法的流程图。该方法可以包括如下步骤。
步骤501,获取实时渲染负载。
在一种可能的实施方式中,在目标应用启动的情况下,计算机设备获取实时渲染负载,以便后续基于实时渲染负载动态确定对后处理渲染流程的目标调控策略。
可选的,该实时渲染负载可以包括GPU负载,且该GPU负载可以为GPU占用率,且GPU占用率越高,表明实时渲染负载越大。
步骤502,基于实时渲染负载确定目标调控策略,目标调控策略所指示的调控幅度与实时渲染负载呈现正相关关系。
由于不同渲染负载场景下所需降低的渲染负载的程度不同,因此为了最大化保证不同场景下的应用的画面质量,本实施例中,计算机设备基于实时渲染负载动态确定目标调控策略,其中,实时渲染负载越大,目标调控策略所指示的调控幅度越大,实时渲染负载越小,目标调控策略所指示的调控幅度越小。
在一些实施例中,在采用降低后处理渲染分辨率的方式来降低后处理渲染负载的情况下,确定出的目标调控策略中包含目标分辨率,该目标分辨率为后处理渲染过程所采用的分辨率,且该目标分辨率与实时渲染负载呈负相关关系,即实时渲染负载越大,目标分辨率越小。当然,在其他实施例中,在降低后处理渲染分辨率的基础上,计算机设备还可以进一步通过降低LOD来降低后处理渲染负载,本实施例对此不作限定。
关于确定目标渲染策略的具体方式,在一种可能的实施方式中,计算机设备中设置有目标映射表,该目标映射表中包含渲染负载与调控策略之间的映射关系。计算机设备获取到的实时渲染负载后,即可根据该实时渲染负载,从目标映射关系中查找对应的目标调控策略。其中,该目标映射表由开发人员预先设置,且不同应用(或不同类型应用)可以对应不同的目标映射表。
在一些实施例中,在渲染负载为GPU负载,且调控策略中包含分辨率的情况下,GPU负载与分辨率之间的映射关系可以如表一所示。
表一
比如,当GPU负载为75%时,计算机设备确定后处理渲染过程中采用的目标分辨率为640×360(原始进行后处理渲染的分辨率为1280×720)。
步骤503,对目标应用中的3D场景进行3D场景渲染,得到3D场景纹理。
本步骤的实施方式可以参考上述步骤201,本实施例在此不作赘述。
步骤504,基于目标调控策略中包含的目标分辨率,设置目标离屏窗口,目标离屏窗口采用目标分辨率。
由于后处理渲染需要在离屏窗口中进行,而原始后处理渲染过程中所使用的离屏窗口的分辨率与3D场景纹理一致,因此为了实现降分辨率后处理渲染,计算机设备需要基于目标调控策略中的目标分辨率,重新设置一个采用目标分辨率的目标离屏窗口(不同于原始后处理渲染过程使用的默认离屏窗口),以便后续在该目标离屏窗口中进行后处理渲染。
可选的,由于离屏窗口对应离屏缓冲区,因此计算机设备需要根据目标分辨率申请离屏窗口对应的离屏缓冲区。
步骤505,在目标离屏窗口中对3D场景纹理进行后处理渲染,得到后处理纹理。
在后处理渲染过程中,计算机设备需要将后处理渲染由默认离屏窗口切换至目标离屏窗口,保证在低分辨率下进行后处理渲染。关于切换至目标离屏窗口进行后处理渲染的方式,在一种可能的实施方式中,如图6所示,本步骤可以包括如下子步骤:
步骤505A,识别后处理渲染过程对应的目标渲染指令。
由于仅需要对后处理渲染流程进行调控,因此计算机设备需要从应用程序与图形接口之间的渲染指令中,识别出后处理渲染过程对应的目标渲染指令,以便后续对目标渲染指令进行处理,实现离屏窗口切换。
关于获取渲染指令的方式,在一种可能的实施方式中,如图7所示,应用程序71与图形接口72之间设置有捕获层73(hooklayer),应用程序71向图形接口72发送的渲染指令首先会经过捕获层73,并由捕获层73进一步转发至图形接口72。
在一种可能的实施方式中,在目标应用启动的情况下,计算机设备启动捕获层,从而通过捕获层捕获目标应用向图形接口发送的渲染指令,进而从捕获的指令中进一步识别出目标渲染指令。
可选的,该捕获层在目标应用退出或者切换至后台状态的情况下关闭。
可选的,该捕获层可以位于Android gles层(驱动层与应用层之间插入的中间层),本申请实施例并不对捕获层的具体位置或实现方式进行限定。
关于识别目标渲染指令的方式,在一些实施例中,可以采用如下方式:
1、获取目标应用中后处理渲染过程对应的第一标签以及合成渲染过程对应的第二标签,第一标签和所述第二标签通过对目标应用进行离线分析得到。
可选的,开发人员预先对需要进行渲染负载调控的应用进行离线分析,得到应用运行过程中后处理渲染过程以及合成渲染过程对应的标签(label),并将获取到的标签部署在计算机设备的捕获层。由于不同应用对应的后处理渲染过程以及合成渲染过程可能采用不同标签,因此捕获层需要对应用与对应的标签进行关联存储。
目标应用启动后,捕获层即基于目标应用的应用标识,获取目标应用对应的第一标签以及第二标签。
在一些实施例中,第一标签为后处理渲染过程的开始标签,第二标签为合成渲染过程的开始标签,第一标签与第二标签即为后处理渲染流程。
2、基于第一标签和第二标签识别后处理渲染过程对应的目标渲染指令。
进一步的,捕获层基于第一标签和第二标识对捕获到的渲染指令进行识别,识别出后处理渲染过程对应的目标渲染指令。在一种可能的实施方式中,捕获层识别包含第一标签的第一渲染指令以及包含第二标签的第二渲染指令,并将第一渲染指令和第二渲染指令之间的渲染指令确定为目标渲染指令。
需要说明的是,本实施例进一通过捕获层捕获并识别目标渲染指令为例进行说明,本领域技术人员也可以采用其他可行的方式进行渲染指令识别,本实施例对此并不构成限定。
步骤505B,将目标渲染指令中默认离屏窗口的窗口标识修改为目标离屏窗口的窗口标识,得到更新后的目标渲染指令,默认离屏窗口的分辨率与3D场景纹理的分辨率相同。
识别出的目标渲染指令中包含原始后处理渲染所使用的默认离屏窗口的窗口标识,图形结构接收到该目标渲染指令后,即根据该窗口标识,在默认离屏窗口中进行后处理渲染。为了将后处理渲染切换至目标离屏窗口,计算机设备识别出目标渲染指令后,并不会直接将目标渲染指令传递至图形接口,而是将目标渲染指令中默认离屏窗口的窗口标识修改为目标离屏窗口的窗口标识,得到指示在目标离屏窗口中进行后处理渲染的目标渲染指令。
可选的,修改窗口标识可以由捕获层执行。
步骤505C,基于更新后的目标渲染指令切换至目标离屏窗口,并在目标离屏窗口中对3D场景纹理进行后处理渲染,得到后处理纹理。
进一步的,捕获层将更新后的目标渲染指令传递至图形接口。图形接口根据目标渲染指令中的窗口标识,在目标离屏窗口中进行后处理渲染,实现跳过原始后处理渲染流程,并切换至新后处理渲染流程。
需要说明的是,在目标应用设置视口(viweport)时,若当前已经切换至目标离屏窗口,计算机设备则需要基于目标分辨率重新设置视口的分辨率。
步骤506,对3D场景纹理和后处理纹理进行合成渲染,得到合成图像。
由于3D场景纹理和后处理纹理对应的分辨率不同,因此在一种可能的实施方式中,在合成渲染过程中,计算机设备需要对后处理纹理进行纹理映射,使映射后的后处理纹理与3D场景纹理的分辨率一致,从而对分辨率一致的3D场景纹理和后处理纹理进行合成渲染,得到合成图像。
步骤507,在合成图像的上层叠加UI图像,得到图像帧,UI图像通过UI渲染得到。
本步骤的实施方式可以参考上述步骤204,本实施例在此不作赘述。
本实施例中,计算机设备基于实时渲染负载,动态确定符合当前负载场景的目标调控策略,保证不同负载场景下负载调控后的画面质量。
此外,本实施例中,通过应用程序与图形接口直接的捕获层进行目标渲染指令识别,并对目标渲染指令中的窗口标识进行修改,使后处理渲染流程由默认离屏窗口切换至创建的低分辨率目标离屏窗口,实现了低分辨率后处理渲染,在降低渲染负载的情况下,保证后处理渲染流程的精准控制,避免对其他渲染流程造成影响。
同时,采用本申请实施例提供的方案能够在应用开发者无介入的情况下实现负载调控,简化了应用开发者的应用开发难度,并有助于提高对不同应用的适配性。
在一些渲染负载过大的场景下,仅仅通过目标调控策略降低后处理渲染流程的负载可能效果不佳,因此在一种可能的实施方式中,在实时渲染负载小于负载阈值的情况下,计算机设备基于实时渲染负载从目标映射表中确定所述目标调控策略。
而在在实时渲染负载大于负载阈值的情况下,如图8所示,计算机设备取消后处理渲染过程,并对3D场景纹理进行合成渲染(无需后处理纹理),得到合成图像。
在一个示意性的例子中,在GPU负载小于95%的情况下,计算机设备基于GPU负载确定目标调控策略,在GPU负载大于95%的情况下,计算机设备则跳过后处理渲染流程。
关于取消后处理渲染过程的方式,在一种可能的实施方式中,计算机设备通过捕获层捕获并识别出后处理渲染过程对应的目标渲染指令后,丢弃该目标渲染指令,即不会向图形接口传输目标渲染指令,从而取消后处理渲染流程。
由于进行合成渲染时仅使用到3D场景纹理,因此在进行合成渲染时,计算机设备需要调整3D场景纹理的合成权重,从而基于调整后的合成权重进行合成渲染。比如,将3D场景纹理的合成权重设置为1,将后处理纹理的合成权重设置为0。
从上述实施例中可以看出,由于在识别后处理渲染过程对应的目标渲染指令时,需要基于预先离线分析得到的渲染环节的标签,而不同应用中为渲染环节设置的标签可能不同,因此在应用本申请实施例提供的方案前,计算机设备需要获取目标应用的目标应用标识,并检测目标应用标识是否属于目标标识集合。
其中,该目标标识集合中包含支持后处理渲染调控的应用的应用标识,即开发人员预先对目标标识结合中的应用进行过离线分析,提取到其后处理渲染以及合成渲染环节的标签。可选的,该目标标识集合支持动态更新。
在目标应用标识属于目标标识集合的情况下,计算机设备基于目标调控策略,对3D场景纹理进行后处理渲染,得到后处理纹理;在目标应用标识属于目标标识集合的情况下,计算机设备则无需对后处理渲染过程进行负载调控。
本实施例中,计算机设备基于目标应用的应用标识,确定目标应用是否支持后处理渲染调控,并在支持的情况下基于目标调控策略,对3D场景纹理进行后处理渲染;在不支持的情况下,保持原始后处理渲染,避免无效的后处理渲染调控。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图9,其示出了本申请一个实施例提供的图像渲染装置的结构框图。该装置可以包括:
3D渲染模块901,用于对目标应用中的3D场景进行3D场景渲染,得到3D场景纹理;
后处理渲染模块902,用于基于目标调控策略,对所述3D场景纹理进行后处理渲染,得到后处理纹理,所述目标调控策略用于调控后处理渲染过程的渲染负载;
合成渲染模块903,用于对所述3D场景纹理和所述后处理纹理进行合成渲染,得到合成图像;
叠加模块904,用于在所述合成图像的上层叠加UI图像,得到图像帧,所述UI图像通过UI渲染得到。
可选的,所述后处理渲染模块902,用于:
基于所述目标调控策略中包含的目标分辨率,对所述3D场景纹理进行后处理渲染,得到所述后处理纹理,所述目标分辨率低于所述3D场景纹理的分辨率。
可选的,所述后处理渲染模块902,用于:
基于所述目标调控策略中包含的所述目标分辨率,设置目标离屏窗口,所述目标离屏窗口采用所述目标分辨率;
在所述目标离屏窗口中对所述3D场景纹理进行后处理渲染,得到所述后处理纹理。
可选的,在所述目标离屏窗口中对所述3D场景纹理进行后处理渲染,得到所述后处理纹理的过程中,所述后处理渲染模块902,用于:
识别后处理渲染过程对应的目标渲染指令;
将所述目标渲染指令中默认离屏窗口的窗口标识修改为所述目标离屏窗口的窗口标识,得到更新后的所述目标渲染指令,所述默认离屏窗口的分辨率与所述3D场景纹理的分辨率相同;
基于更新后的所述目标渲染指令切换至所述目标离屏窗口,并在所述目标离屏窗口中对所述3D场景纹理进行后处理渲染,得到所述后处理纹理。
可选的,识别后处理渲染过程对应的目标渲染指令的过程中,所述后处理渲染模块902,用于:
获取所述目标应用中后处理渲染过程对应的第一标签以及合成渲染过程对应的第二标签,所述第一标签和所述第二标签通过对所述目标应用进行离线分析得到;
基于所述第一标签和所述第二标签识别后处理渲染过程对应的所述目标渲染指令。
可选的,所述装置还包括:
捕获模块,用于在所述目标应用启动的情况下,启动捕获层,所述捕获层位于所述目标应用与图形接口之间;通过所述捕获层捕获所述目标应用向所述图形接口发送的渲染指令。
可选的,所述装置还包括:
策略确定模块,用于获取实时渲染负载;基于所述实时渲染负载确定所述目标调控策略,所述目标调控策略所指示的调控幅度与所述实时渲染负载呈现正相关关系。
可选的,所述目标调控策略中包含目标分辨率,所述目标分辨率为后处理渲染过程所采用的分辨率;
所述目标分辨率与所述实时渲染负载呈负相关关系。
可选的,所述策略确定模块,用于:
在所述实时渲染负载小于负载阈值的情况下,基于所述实时渲染负载从目标映射表中确定所述目标调控策略,所述目标映射表中包含渲染负载与调控策略之间的映射关系。
可选的,所述后处理渲染模块902,还用于在所述实时渲染负载大于所述负载阈值的情况下,取消后处理渲染过程;
所述合成渲染模块903,还用于对所述3D场景纹理进行合成渲染,得到所述合成图像。
可选的,所述装置还包括:
所述后处理渲染模块902,还用于获取所述目标应用的目标应用标识;在所述目标应用标识属于目标标识集合的情况下,基于目标调控策略,对所述3D场景纹理进行后处理渲染,得到后处理纹理的,所述目标标识集合中包含支持后处理渲染调控的应用的应用标识。
综上所述,本申请实施例中,完成对3D场景的3D场景渲染,得到3D场景纹理后,基于目标调控策略对后处理渲染过程的渲染负载进行调控,得到后处理纹理,并对后处理纹理以及3D场景纹理进行合成渲染,得到合成图像,从而将UI渲染得到的UI图像叠加在合成图像上层,得到包含3D场景以及UI的图像帧;由于用户通常对画面最上层的UI图像最为敏感,因此通过对后处理渲染过程进行调控,并保证UI图像的正常UI渲染,不仅能够降低图像渲染过程的整体负载,还能够避免负载调控过程对UI画质的影响,有助于提升负载调控下用户的应用使用体验。
本实施例中,计算机设备基于实时渲染负载,动态确定符合当前负载场景的目标调控策略,保证不同负载场景下负载调控后的画面质量。
此外,本实施例中,通过应用程序与图形接口直接的捕获层进行目标渲染指令识别,并对目标渲染指令中的窗口标识进行修改,使后处理渲染流程由默认离屏窗口切换至创建的低分辨率目标离屏窗口,实现了低分辨率后处理渲染,在降低渲染负载的情况下,保证后处理渲染流程的精准控制,避免对其他渲染流程造成影响。
同时,采用本申请实施例提供的方案能够在应用开发者无介入的情况下实现负载调控,简化了应用开发者的应用开发难度,并有助于提高对不同应用的适配性。
本实施例中,计算机设备基于目标应用的应用标识,确定目标应用是否支持后处理渲染调控,并在支持的情况下基于目标调控策略,对3D场景纹理进行后处理渲染;在不支持的情况下,保持原始后处理渲染,避免无效或错误的后处理渲染调控。
请参考图10,其示出了本申请一个示例性实施例提供的计算机设备的结构方框图。计算机设备1000可以包括一个或多个如下部件:处理器1010、存储器1020和显示屏1030。
处理器1010可以包括一个或者多个处理核心。处理器1010利用各种接口和线路连接整个计算机设备1000内的各个部分,通过运行或执行存储在存储器1020内的指令、程序、代码集或指令集,以及调用存储在存储器1020内的数据,执行计算机设备1000的各种功能和处理数据。可选地,处理器1010可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1010可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)、神经网络处理器(Neural-network Processing Unit,NPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责触摸显示屏所需要显示的内容的渲染和绘制;NPU用于实现人工智能(Artificial Intelligence,AI)功能;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1010中,单独通过一块芯片进行实现。
存储器1020可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。可选地,该存储器1020包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1020可用于存储指令、程序、代码、代码集或指令集。存储器1020可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等;存储数据区可存储根据计算机设备1000的使用所创建的数据(比如音频数据、电话本)等。
显示屏1030是用于进行图像显示的组件。显示屏1030可以是计算机设备的内置屏幕,比如智能手机的屏幕,也可以是计算机设备的外接屏幕,比如个人计算器的外接显示器。
在一些实施例中,显示屏1030除了图像显示功能外,还具有触控功能,即通过触摸点击显示屏1030可以实现对显示内容的控制。
除此之外,本领域技术人员可以理解,上述附图所示出的计算机设备1000的结构并不构成对计算机设备的限定,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,计算机设备1000中还包括摄像组件、扬声器、射频电路、输入单元、传感器(比如加速度传感器、角速度传感器、光线传感器等等)、音频电路、WiFi模块、电源、蓝牙模块等部件,在此不再赘述。
本申请实施例还提供了一种计算机可读存储介质,该存储介质存储有至少一段程序,至少一段程序用于被处理器执行以实现如上述实施例所述的图像渲染方法。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例提供的图像渲染方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种图像渲染方法,其特征在于,所述方法包括:
对目标应用中的3D场景进行3D场景渲染,得到3D场景纹理;
基于目标调控策略,对所述3D场景纹理进行后处理渲染,得到后处理纹理,所述目标调控策略用于调控后处理渲染过程的渲染负载;
对所述3D场景纹理和所述后处理纹理进行合成渲染,得到合成图像;
在所述合成图像的上层叠加UI图像,得到图像帧,所述UI图像通过UI渲染得到。
2.根据权利要求1所述的方法,其特征在于,所述基于目标调控策略,对所述3D场景纹理进行后处理渲染,得到后处理纹理,包括:
基于所述目标调控策略中包含的目标分辨率,对所述3D场景纹理进行后处理渲染,得到所述后处理纹理,所述目标分辨率低于所述3D场景纹理的分辨率。
3.根据权利要求2所述的方法,其特征在于,所述基于所述目标调控策略中包含的目标分辨率,对所述3D场景纹理进行后处理渲染,得到所述后处理纹理,包括:
基于所述目标调控策略中包含的所述目标分辨率,设置目标离屏窗口,所述目标离屏窗口采用所述目标分辨率;
在所述目标离屏窗口中对所述3D场景纹理进行后处理渲染,得到所述后处理纹理。
4.根据权利要求3所述的方法,其特征在于,所述在所述目标离屏窗口中对所述3D场景纹理进行后处理渲染,得到所述后处理纹理,包括:
识别后处理渲染过程对应的目标渲染指令;
将所述目标渲染指令中默认离屏窗口的窗口标识修改为所述目标离屏窗口的窗口标识,得到更新后的所述目标渲染指令,所述默认离屏窗口的分辨率与所述3D场景纹理的分辨率相同;
基于更新后的所述目标渲染指令切换至所述目标离屏窗口,并在所述目标离屏窗口中对所述3D场景纹理进行后处理渲染,得到所述后处理纹理。
5.根据权利要求4所述的方法,其特征在于,所述识别后处理渲染过程对应的目标渲染指令,包括:
获取所述目标应用中后处理渲染过程对应的第一标签以及合成渲染过程对应的第二标签,所述第一标签和所述第二标签通过对所述目标应用进行离线分析得到;
基于所述第一标签和所述第二标签识别后处理渲染过程对应的所述目标渲染指令。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在所述目标应用启动的情况下,启动捕获层,所述捕获层位于所述目标应用与图形接口之间;
通过所述捕获层捕获所述目标应用向所述图形接口发送的渲染指令。
7.根据权利要求1至6任一所述的方法,其特征在于,所述方法还包括:
获取实时渲染负载;
基于所述实时渲染负载确定所述目标调控策略,所述目标调控策略所指示的调控幅度与所述实时渲染负载呈现正相关关系。
8.根据权利要求7所述的方法,其特征在于,所述目标调控策略中包含目标分辨率,所述目标分辨率为后处理渲染过程所采用的分辨率;
所述目标分辨率与所述实时渲染负载呈负相关关系。
9.根据权利要求7所述的方法,其特征在于,所述基于所述实时渲染负载确定所述目标调控策略,包括:
在所述实时渲染负载小于负载阈值的情况下,基于所述实时渲染负载从目标映射表中确定所述目标调控策略,所述目标映射表中包含渲染负载与调控策略之间的映射关系。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
在所述实时渲染负载大于所述负载阈值的情况下,取消后处理渲染过程;
对所述3D场景纹理进行合成渲染,得到所述合成图像。
11.根据权利要求1至6任一所述的方法,其特征在于,所述方法还包括:
获取所述目标应用的目标应用标识;
在所述目标应用标识属于目标标识集合的情况下,执行所述基于目标调控策略,对所述3D场景纹理进行后处理渲染,得到后处理纹理的步骤,所述目标标识集合中包含支持后处理渲染调控的应用的应用标识。
12.一种图像渲染装置,其特征在于,所述装置包括:
3D渲染模块,用于对目标应用中的3D场景进行3D场景渲染,得到3D场景纹理;
后处理渲染模块,用于基于目标调控策略,对所述3D场景纹理进行后处理渲染,得到后处理纹理,所述目标调控策略用于调控后处理渲染过程的渲染负载;
合成渲染模块,用于对所述3D场景纹理和所述后处理纹理进行合成渲染,得到合成图像;
叠加模块,用于在所述合成图像的上层叠加UI图像,得到图像帧,所述UI图像通过UI渲染得到。
13.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器;所述存储器存储有至少一段程序,所述至少一段程序用于被所述处理器执行以实现如权利要求1至11任一所述的图像渲染方法。
14.一种计算机可读存储介质,其特征在于,所述存储介质存储有至少一段程序,所述至少一段程序用于被处理器执行以实现如权利要求1至11任一所述的图像渲染方法。
15.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中;计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备实现如权利要求1至11任一所述的图像渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210691350.1A CN114972604A (zh) | 2022-06-17 | 2022-06-17 | 图像渲染方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210691350.1A CN114972604A (zh) | 2022-06-17 | 2022-06-17 | 图像渲染方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114972604A true CN114972604A (zh) | 2022-08-30 |
Family
ID=82963060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210691350.1A Pending CN114972604A (zh) | 2022-06-17 | 2022-06-17 | 图像渲染方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114972604A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116012474A (zh) * | 2022-12-13 | 2023-04-25 | 昆易电子科技(上海)有限公司 | 仿真测试图像生成、回注方法及系统、工控机、装置 |
-
2022
- 2022-06-17 CN CN202210691350.1A patent/CN114972604A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116012474A (zh) * | 2022-12-13 | 2023-04-25 | 昆易电子科技(上海)有限公司 | 仿真测试图像生成、回注方法及系统、工控机、装置 |
CN116012474B (zh) * | 2022-12-13 | 2024-01-30 | 昆易电子科技(上海)有限公司 | 仿真测试图像生成、回注方法及系统、工控机、装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10712817B1 (en) | Image re-projection for foveated rendering | |
CN110456907A (zh) | 虚拟画面的控制方法、装置、终端设备及存储介质 | |
CN111369644A (zh) | 人脸图像的试妆处理方法、装置、计算机设备和存储介质 | |
JP6931290B2 (ja) | 画像生成装置およびその制御方法 | |
JP2020533710A (ja) | 画像ステッチング方法および装置、記憶媒体 | |
WO2016069814A1 (en) | Modifying video call data | |
CN108965471B (zh) | 一种智能电视上浏览器内存改善方法 | |
US10885882B2 (en) | Reducing aliasing artifacts in foveated rendering using cross-resolution modulation | |
CN111127486A (zh) | 图像分割方法、装置、终端及存储介质 | |
CN114268741B (zh) | 转场动效生成方法、电子设备和存储介质 | |
CN114972604A (zh) | 图像渲染方法、装置、设备及存储介质 | |
CN107564085B (zh) | 图像扭曲处理方法、装置、计算设备及计算机存储介质 | |
CN113891167A (zh) | 投屏方法和电子设备 | |
CN113469883B (zh) | 动态分辨率的渲染方法、装置、电子设备及可读存储介质 | |
JP4323910B2 (ja) | 画像合成装置及び方法 | |
CN115761091A (zh) | 游戏画面渲染方法、装置、电子设备和存储介质 | |
CN114757861A (zh) | 纹理图像融合方法、装置、计算机设备以及可读介质 | |
CN112905280B (zh) | 页面显示方法、装置、设备及存储介质 | |
JP2020514937A (ja) | ベクタを用いた拡張現実画像の実現方法 | |
JP2018028572A (ja) | 画像処理装置、画像処理方法 | |
CN113419797A (zh) | 一种组件显示方法、装置、电子设备及存储介质 | |
CN112370786A (zh) | 游戏中的妆容绘制方法、装置和电子设备 | |
CN110264393B (zh) | 一种信息处理方法、终端和存储介质 | |
JP2005260630A (ja) | 画像を重ね合わせて合成画像を生成する画像合成 | |
CN114866641B (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 |