CN112652025A - 图像渲染方法、装置、计算机设备及可读存储介质 - Google Patents
图像渲染方法、装置、计算机设备及可读存储介质 Download PDFInfo
- Publication number
- CN112652025A CN112652025A CN202011508323.3A CN202011508323A CN112652025A CN 112652025 A CN112652025 A CN 112652025A CN 202011508323 A CN202011508323 A CN 202011508323A CN 112652025 A CN112652025 A CN 112652025A
- Authority
- CN
- China
- Prior art keywords
- rendering
- target scene
- channel
- data
- sub
- 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
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
本申请公开了图像渲染方法、装置、计算机设备及可读存储介质,涉及图像处理技术领域,将通过记录得到的渲染命令指令集,以及预设得到的目标场景渲染通道数据和目标场景帧缓存数据发送至图形处理器;图形处理器根据所述目标场景渲染通道数据和目标场景帧缓存数据,通过依次调用所述渲染命令指令集中的多个渲染命令,得到目标场景渲染数据;将所述目标场景渲染数据发送至内存或显存。本申请能够有效降低CPU与GPU的交互工作量,从而实现渲染功耗的有效降低。
Description
技术领域
本申请涉及图像处理技术领域,特别是涉及图像渲染方法、装置、计算机设备及可读存储介质。
背景技术
在现有主流的使用安卓平台的移动设备上设计多重采样抗锯齿渲染流程的方案主要包括两种,现有技术方案一,在安卓平台上,使用OpenGLES来实现渲染流程,通过调用OpenGLES提供的函数接口,来实现三维场景的渲染。其中,若要在渲染流程中添加多重采样抗锯齿,则需要使用OpenGLES的扩展功能glFramebufferTexture2DMultisampleEXT或glFramebufferTexture2DMultisampleIMG来实现;现有技术方案二,在安卓平台上,使用Vulkan来实现场景的渲染,在使用多重采样抗锯齿进行渲染时包括三步,首先对三维场景的不透明物体进行渲染,然后对深度进行多采样混合得到单采样深度图,最后对透明物体进行渲染,其中每步都需要单独对渲染命令进行记录和提交。
在现有相关技术中,申请人发现至少存在以下问题:针对使用OpenGLES进行渲染的现有技术方案一,OpenGLES相较于Vulkan,其渲染性能及缓存能力较弱,且在多重采样抗锯齿技术的实现上难度较大;针对分成三步对场景进行渲染的现有技术方案二,其每一步CPU都要记录渲染命令并提交给GPU,导致CPU与GPU交互较多,渲染功耗较大,且对移动平台的GPU片上缓存的利用率较低。
发明内容
有鉴于此,本申请提供了图像渲染方法、装置、计算机设备及可读存储介质,主要目的在于解决现有利用OpenGLES进行场景渲染的渲染性能及缓存能力较弱,尤其是在多重采样抗锯齿技术的实现上难度较大,以及现有利用Vulkan进行场景渲染的CPU与GPU交互较多,渲染功耗较大的技术问题。
依据本申请的一个方面,提供了一种图像渲染方法,包括:
将通过记录得到的渲染命令指令集,以及预设得到的目标场景渲染通道数据和目标场景帧缓存数据发送至图形处理器;
图形处理器根据所述目标场景渲染通道数据和目标场景帧缓存数据,通过依次调用所述渲染命令指令集中的多个渲染命令,得到目标场景渲染数据;
将所述目标场景渲染数据发送至内存或显存。
依据本申请的另一方面,提供了一种图像渲染装置,包括:
第一发送模块,用于将通过记录得到的渲染命令指令集,以及预设得到的目标场景渲染通道数据和目标场景帧缓存数据发送至图形处理器;
渲染模块,用于图形处理器根据所述目标场景渲染通道数据和目标场景帧缓存数据,通过依次调用所述渲染命令指令集中的多个渲染命令,得到目标场景渲染数据;
第二发送模块,用于将所述目标场景渲染数据发送至内存或显存。
依据本申请又一个方面,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述图像渲染方法的步骤。
依据本申请再一方面,提供了一种可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述图像渲染方法的步骤。
借由上述技术方案,本申请提供的图像渲染方法、装置、计算机设备及可读存储介质,本申请将通过记录得到的渲染命令指令集,以及预设得到的目标场景渲染通道数据和目标场景帧缓存数据发送至图形处理器;图形处理器根据所述目标场景渲染通道数据和目标场景帧缓存数据,通过依次调用所述渲染命令指令集中的多个渲染命令,得到目标场景渲染数据;将所述目标场景渲染数据发送至内存或显存。与现有利用OpenGLES,或者Vulkan进行场景渲染的方式相比,本申请对现有CPU将每一步渲染记录的渲染命令分别提交给GPU的方式进行改进,CPU通过记录得到渲染命令指令集的方式,将用于目标场景渲染的多个渲染命令,以及目标场景渲染通道数据和目标场景帧缓存数据一次性发送给GPU,以便GPU能够根据渲染命令指令集中的多个渲染命令,以及CPU的目标场景渲染通道数据和目标场景帧缓存数据进行目标场景渲染,得到目标场景渲染数据,并将该目标场景渲染数据发送给内存或显存,在避免基于OpenGLES的场景渲染的渲染性能及缓存能力较弱的情况下,通过对渲染引擎架构的优化,有效降低CPU与GPU的交互工作量,从而实现渲染功耗的有效降低。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本申请实施例提供的图像渲染方法的流程示意图;
图2示出了本申请实施例提供的另一种图像渲染方法的流程示意图;
图3示出了本申请实施例提供的一种图像渲染装置的结构示意图;
图4示出了本申请实施例提供的另一种图像渲染装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
针对现有利用OpenGLES进行场景渲染的渲染性能及缓存能力较弱,以及现有利用Vulkan进行场景渲染的CPU与GPU交互较多,渲染功耗较大的技术问题。本实施例提供了一种图像渲染方法,能够在安卓平台上,通过优化渲染引擎架构的方式,有效降低CPU与GPU的交互工作量,达到有效降低渲染功耗的目的。如图1所示,该方法包括:
101、将通过记录得到的渲染命令指令集,以及预设得到的目标场景渲染通道数据和目标场景帧缓存数据发送至图形处理器。
在本实施例中,图像渲染主要用于渲染一帧图像中的目标场景,CPU通过创建场景渲染使用的Vulkan渲染通道VkRenderPass,以及创建渲染三维场景使用的Vulkan帧缓存VkFramebuffer,设定相应的渲染通道属性信息和帧缓存属性信息,这里的VkRenderPass和VkFramebuffer是Vulkan的类型,其中,VkFramebuffer是以帧缓存机制的名字创建的一个Vulkan的类型,以方便CPU用抽象的逻辑进行管理,进而发送给GPU,以实现相应的渲染效果。
此外,CPU将用于一个目标场景渲染的多个渲染命令记录在一个Command Buffer中,以便将该Command Buffer中的多个渲染命令打包发送给GPU,有别于现有技术中,在进行目标场景渲染时,CPU将记录得到的用于目标场景渲染的多个渲染命令分别存入不同的Command Buffer中,以便在渲染过程中将相应的Command Buffer中的渲染命令依次发送给GPU,以实现每一次渲染步骤的执行,导致CPU与GPU信息交互的工作量较大,而通过多个渲染命令打包的方式,能够有效降低CPU与GPU信息交互的工作量,在优化的渲染引擎架构下,简化CPU工作职能,同时提升渲染效率。
102、图形处理器根据所述目标场景渲染通道数据和目标场景帧缓存数据,通过依次调用所述渲染命令指令集中的多个渲染命令,得到目标场景渲染数据。
在本实施例中,渲染命令指令集包括用于目标场景渲染的多个渲染命令,GPU根据一次性接收到的用于目标场景渲染的渲染命令指令集,并在利用目标场景渲染通道数据和目标场景帧缓存数据对目标场景进行渲染的过程中,通过依次调用该渲染命令指令集中的相应渲染命令,得到目标场景渲染数据。
根据实际应用场景的需求,CPU通过调用用于触发Vulkan渲染流程开始的vkCmdBeginRenderPass命令,利用目标场景渲染通道sceneRenderPass和目标场景帧缓存sceneFrameBuffer,对目标场景渲染流程中用到的Vulkan渲染通道VkRenderPass和Vulkan帧缓存VkFramebuffer进行设置,以便将设置得到的目标场景渲染通道数据和目标场景帧缓存数据,与渲染命令指令集一并发送给GPU,以实现对目标场景的渲染;GPU利用Vulkan多渲染通道MultiRenderPass机制,根据目标场景渲染的所有渲染命令,依次执行用于渲染不透明物体的第一渲染流程,得到第一渲染结果(包括多采样深度渲染结果和抗锯齿处理后的颜色信息),用于对第一渲染结果中多采样深度渲染结果进行多采样信息融合处理的第二渲染流程,得到第二渲染结果(包括抗锯齿处理后的深度信息,即单采样深度渲染结果),以及用于对第二渲染结果进行透明物体渲染的第三渲染流程,得到第三渲染结果,并作为目标场景渲染数据。
103、将所述目标场景渲染数据发送给内存或显存。
在本实施例中,目标场景渲染数据包括目标场景的颜色渲染信息和深度渲染信息,在基于多重采样抗锯齿技术,完成目标场景渲染后,将相应的目标场景渲染数据写入内存或显存,即在内存或显存的非多采样的颜色渲染目标资源ColorTarget中保存目标场景的颜色渲染信息,以及非多采样的深度渲染目标资源DepthTarget中保存目标场景的深度渲染信息。
通过应用本实施例的技术方案,将通过记录得到的渲染命令指令集,以及预设得到的目标场景渲染通道数据和目标场景帧缓存数据发送至图形处理器;图形处理器根据所述目标场景渲染通道数据和目标场景帧缓存数据,通过依次调用所述渲染命令指令集中的多个渲染命令,得到目标场景渲染数据;将所述目标场景渲染数据发送至内存或显存。与现有利用OpenGLES,或者Vulkan进行场景渲染的方式相比,本实施例在基于多重采样抗锯齿技术的场景渲染的基础上,CPU通过记录得到渲染命令指令集的方式,将用于目标场景渲染的多个渲染命令一次性发送给GPU,以便GPU能够根据渲染命令指令集中的多个渲染命令,以及CPU的目标场景渲染通道数据和目标场景帧缓存数据进行目标场景渲染,得到目标场景渲染数据,并将该目标场景渲染数据发送给显存,在避免基于OpenGLES的场景渲染的渲染性能及缓存能力较弱,且多重采样抗锯齿技术实现难度较大的情况下,通过对渲染引擎架构的优化,在基于Vulkan的场景渲染的多重采样抗锯齿技术实现的基础上,有效降低CPU与GPU的交互工作量,从而实现渲染功耗的有效降低。
基于上述原理内容,进一步的,作为上述如图1所示实施例的具体实施方式的细化和扩展,本实施例还提供了另一种图像渲染方法,如图2所示,该方法包括:
201、在图形处理器片上缓存中创建用于存储在渲染过程中产生的渲染结果的缓存资源,所述渲染结果包括用于渲染不透明物体的第一子渲染通道输出的第一渲染结果,用于对第一渲染结果中多采样深度渲染结果进行多采样信息融合处理的第二子渲染通道输出的第二渲染结果,以及用于渲染透明物体的第三子渲染通道输出的第三渲染结果。
具体实施中,GPU片上缓存是指GPU自带的缓存,通过将整个目标场景渲染过程中产生的渲染结果缓存到所创建的缓存资源中,以达到过滤对存储器控制器的请求,减少对显存的访问,以及降低显存带宽消耗的目的。
202、中央处理器创建用于设置目标场景渲染通道数据和目标场景帧缓存数据的Vulkan渲染通道和Vulkan帧缓存,具体包括:中央处理器根据预设的附件描述数组,创建Vulkan渲染通道;根据所述Vulkan渲染通道及其附件描述数组,创建Vulkan帧缓存;其中,所述附件描述数组与所述Vulkan帧缓存格式一一对应。
进一步,作为一种可选方式,具体包括:所述目标场景渲染通道数据包括利用多渲染流程机制,对Vulkan渲染通道进行属性设置的属性信息,所述Vulkan渲染通道包括用于渲染不透明物体的第一子渲染通道、用于对第一子渲染通道输出的第一渲染结果中的多采样深度渲染结果进行多采样信息融合处理的第二子渲染通道、用于渲染透明物体的第三子渲染通道。
进一步,作为一种可选方式,具体包括:所述目标场景渲染通道数据包括在中央处理器中创建的Vulkan渲染通道的附件描述数组,以及根据所述附件描述数组中的元素索引信息,建立与所述第一子渲染通道、所述第二子渲染通道、所述第三子渲染通道之间的索引关系。
具体实施中,CPU利用多渲染流程机制,利用Vulkan函数创建用于目标场景渲染的Vulkan渲染通道VkRenderPass。其中,索引关系包括附件元素及其布局属性的索引关系,具体地,根据附件描述数组,利用Vulkan函数创建用于渲染目标场景的渲染通道,并作为目标场景渲染通道。渲染通道数据的具体设置包括,在CPU中创建Vulkan渲染通道的附件描述VkAttachmentDescription数组,记为vkAttachments,包含4个元素,其元素索引分别是0,1,2,3。其中,vkAttachments中元素索引信息的设置具体包括:
设置附件元素的索引关系,以便在后创建的子渲染通道能够基于附件元素的索引属性值调用相应的数据信息。具体地,4个元素的成员loadOp和成员stencilLoadOp属性都设为VK_ATTACHMENT_LOAD_OP_DONT_CARE,以设定渲染前数据和模板数据在对应附件的操作行为,即存在的内容未定义,允许驱动程序在不保存内容的情况下进行丢弃或删除,成员stencilStoreOp属性都设为VK_ATTACHMENT_STORE_OP_DONT_CARE,以设定渲染后模板数据在对应附件的操作行为,即存在的内容未定义,允许驱动程序在不保存内容的情况下进行丢弃或删除。进一步地,索引0和索引1元素的成员StoreOp属性设为VK_ATTACHMENT_STORE_OP_LOAD,以设定保存已经存在于当前附件的内容,samples属性值是指采样点个数为1。索引2和索引3元素的成员StoreOp属性设为VK_ATTACHMENT_STORE_OP_DONT_CARE,以设定渲染后数据在对应附件的操作行为,即存在的内容未定义,允许驱动程序在不保存内容的情况下进行丢弃或删除,samples属性值为采样点个数n,n可取值2或者4。
设置布局属性的索引关系,以便在后创建的子渲染通道能够基于布局属性的索引属性值调用相应的数据信息。具体地,索引0和索引2元素的初始布局initialLayout属性都设为VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,格式format属性都设为VK_FORMAT_R8B8G8A8_UNORM。索引1和索引3元素的初始布局initialLayout属性都设为VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,格式format属性都设为VK_FORMAT_D32_FLOAT。索引0和1元素的最终布局finalLayout属性设为VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,索引2元素的最终布局finalLayout属性设为VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,索引3元素的最终布局finalLayout属性设为VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL。
进一步地,创建目标场景渲染需要用到的三个子渲染通道SubRenderPass的描述信息。具体为,创建Vulkan子渲染通道描述VkSubpassDescription数组,记为vkSubpassDescs,包含3个元素,每个元素用于描述一个子渲染通道。其中,针对每个子渲染通道描述信息的设置具体包括:
vkSubpassDescs[0]为用于描述渲染场景不透明物体的Subpass数组,即第一子渲染通道。具体地,设置vkSubpassDescs[0]的颜色附件colorAttachmentCount属性设为1,其pColorAttachments属性包含1个VkAttachmentReference元素,此元素的attachment属性值为2,以指向指定索引位置(vkAttachments中的元素索引2)的附件,并设置layout属性为VK_IMAGE_COLOR_ATTACHMENT_OPTIMA;设置vkSubpassDescs[0]用于颜色附件的多重采样抗锯齿处理的pResolveAttachments包含一个VkAttachmentReference元素,此元素的附件attachment属性值为0,以指向指定索引位置(vkAttachments中的元素索引0)的附件,并设置layout属性为VK_IMAGE_COLOR_ATTACHMENT_OPTIMAL;设置vkSubpassDescs[0]用于深度和模板数据的附件pDepthStencilAttachment包含一个VkAttachmentReference元素,此元素的attachment属性值为3,以指向指定索引位置的附件,并设置layout属性为VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL。
vkSubpassDescs[1]为用于描述对多采样深度渲染结果(对应第一子渲染通道输出的第一渲染结果)进行混合得到单采样深度结果的SubRenderPass数组,即第二子渲染通道,通过将多采样深度渲染结果融合成单采样深度渲染结果,以得到第二渲染结果。具体地,设置vkSubpassDescs[1]的输入附件inputAttachmentCount属性值为1,以从着色器中读取多采样深度渲染结果pInputAttachments属性包含一个VkAttachmentReference元素,此元素的attachment属性值为3,以指向指定索引位置的附件,此处设置layout属性为VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;设置vkSubpassDescs[1]用于深度和模板数据的附件pDepthStencilAttachment包含一个VkAttachmentReference元素,此元素的attachment属性值为1,以指向指定索引位置(vkAttachments中的元素索引1)的附件,并设置layout属性为VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL。
vkSubpassDescs[2]为用于描述渲染场景透明物体的Subpass数组,即第三子渲染通道。具体地,设置vkSubpassDescs[2]指定的颜色附件colorAttachmentCount属性设为1,其pColorAttachments属性包含1个VkAttachmentReference元素,此元素的attachment属性值为0,以指向指定索引位置(vkAttachments中的元素索引0)的附件,并设置layout属性为VK_IMAGE_COLOR_ATTACHMENT_OPTIMAL,以期望附件起到颜色缓冲区的作用;设置vkSubpassDescs[2]用于深度和模板数据的附件pDepthStencilAttachment包含一个VkAttachmentReference元素,此元素的attachment属性值为1,以指向指定索引位置(vkAttachments中的元素索引1)的附件,并设置layout属性为VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL。
进一步,作为一种可选方式,具体还包括:通过在中央处理器中创建子渲染通道依赖数组,建立所述第一子渲染通道、所述第二子渲染通道、所述第三子渲染通道之间的渲染顺序。
具体实施中,子渲染通道之间的资源依赖关系可以通过VkSubpassDependency结构体进行指定,本实施例指定第一子渲染通道、第二子渲染通道、第三子渲染通道之间的渲染顺序为依次渲染,即第一子渲染通道对应的第一渲染流程执行完成之后,执行第二子渲染通道对应的第二渲染流程,并在第二渲染流程执行完成之后,执行第三子渲染通道对应的第三渲染流程。具体地,创建子渲染通道依赖VkSubpassDependency数组,记为vkSubDependencies,包含2个元素。
针对VkSubpassDependency数组的设置具体包括:srcStageMask和dstStageMask用于指定哪些管线阶段产生数据和使用数据,设置2个元素的srcStageMask属性为VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,指定此依赖的源管线阶段为颜色附件输出阶段;设置dstStageMask属性为VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,指定此依赖的目标管线阶段为Fragment Shader,即Fragment Shader阶段必须等待在前子渲染通道执行完颜色附件输出阶段后,才能继续执行。srcAccessMask和dstAccessMask用于指定每个源和目标子渲染通道如何访问数据,设置2个元素的srcAccessMask属性为VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,dstAccessMask属性为VK_ACCESS_SHADER_READ_BIT,即颜色附件写入操作完成后执行着色器读取操作。
进一步地,设置依赖标志dependencyFlags属性为VK_DEPENDENCY_BY_REGION_BIT,指定此依赖发生在帧缓存framebuffer空间中。其中,srcSubpass和dstSubpass为对组成的渲染通道的子渲染通道数组的索引,即设置vkSubDependencies[0]的srcSubpass属性为0,dstSubpass属性为1,以转换输入附件从颜色附件到着色器读入;设置vkSubDependencies[1]的srcSubpass属性为1,dstSubpass属性为2。
进一步地,根据附件描述数组,创建用于渲染目标场景的渲染通道,并作为目标场景渲染通道。具体为,设置VkRenderPassCreateInfo元素的值,记此元素为vkRpInfo,其sType属性值为VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,pNext属性值为nullptr,attachmentCount属性值为4,pAttachments属性值为vkAttachments,subpassCount属性值为3,pSubpasses属性值为vkSubpassDescs,dependencyCount属性值为2,pDependencies属性值为vkSubDependencies。基于vkRpInfo中设置的属性信息创建用于场景渲染的渲染通道VkRenderPass,记该渲染通道VkRenderPass为目标场景渲染通道sceneRenderPass。
具体实施中,创建用于目标场景渲染的Vulkan帧缓存VkFramebuffer。具体为,创建用于渲染三维场景的VkFramebuffer,即与渲染通道RenderPass兼容的帧缓存VkFramebuffer,其附件的数量和类型相同,并记录待渲染的目标场景的尺寸大小(一般为移动设备的屏幕分辨率大小)的宽和高分别为OriginW和OriginH。具体地,以OriginW为宽,OriginH为高,创建多重采样的渲染目标资源,包括颜色多重采样渲染目标资源MSColorTarget和深度多重采样渲染目标资源MSDepthTarget,以便将颜色多重采样渲染结果存储到创建的MSColorTarget中,以及深度多重采样渲染结果存储到创建的MSDepthTarget中。由于多重采样资源是渲染过程中产生的中间数据,因此将MSColorTarget以及MSDepthTarget对应的MTLStorageMode参数设置为memoryless,以及设置采样点个数为n,n可取值2或者4。
进一步地,以OriginW为宽,OriginH为高,创建非多采样的渲染目标资源,包括非多采样的颜色渲染目标资源ColorTarget和非多采样的深度渲染目标资源DepthTarget,以便将多重采样抗锯齿处理后的非多采样的颜色渲染结果和非多采样的深度渲染结果依次存储到非多采样的颜色渲染目标资源ColorTarget和非多采样的深度渲染目标资源DepthTarget。
进一步地,创建VkImageView数组,记为attachments,包含4个元素,其中,attachments[0]为非多采样的颜色渲染目标资源ColorTarget的VkImageView,attachments[1]为非多采样的深度渲染目标资源DepthTarget的VkImageView,attachments[2]为多重采样的颜色渲染目标资源MSColorTarget的VkImageView,attachments[3]为多重采样的深度渲染目标资源MSDepthTarget的VkImageView。
进一步地,根据附件描述数组创建用于目标场景渲染的Vulkan帧缓存VkFramebuffer,并作为目标场景帧缓存。其中,附件描述数组与帧缓存格式一一对应。具体地,设置VkFramebufferCreateInfo类型的变量,记此变量为frameBufferInfo,其sType属性值为VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,sNext属性值为nullptr,renderPass属性值为sceneRenderPass,pAttachments属性值为attachments,attachmentCount属性值为4,layers属性值为1,width属性值为OriginW,height属性值设为OriginH,即子渲染通道索引不同的附件描述数组的索引关系为创建帧缓存Framebuffer时数组的索引关系。因此,基于frameBufferInfo中设置的信息创建VkFrameBuffer,记该帧缓存VkFrameBuffer为目标场景帧缓存sceneFrameBuffer。
203、将通过记录得到的渲染命令指令集,以及预设得到的目标场景渲染通道数据和目标场景帧缓存数据发送至图形处理器。
在上述实施例中,作为一种可选方式,所述渲染命令指令集包括用于渲染目标场景的多个渲染命令,以及用于表征每个所述渲染命令调用顺序的调用顺序标识;其中,所述多个渲染命令包括对应第一子渲染通道的用于渲染不透明物体的第一渲染命令和第一vkCmdNextSubpass命令,对应第二子渲染通道的用于对多采样深度渲染结果进行多采样信息融合处理的第二渲染命令和第二vkCmdNextSubpass命令,以及对应第三子渲染通道的用于渲染透明物体的第三渲染命令和vkCmdEndRenderPass命令。
具体实施中,CPU调用vkCmdBeginRenderPass命令,并利用得到的目标场景渲染通道sceneRenderPass和目标场景帧缓存sceneFrameBuffer,对渲染流程中的VkRenderPass和VkFrameBuffer进行相应设置,以完成目标场景渲染的准备工作。目标场景渲染命令的记录过程具体包括:
执行第一个子渲染流程,记录渲染不透明物体的渲染命令,并在第一个子渲染流程执行完毕后,记录vkCmdNextSubpass命令;执行第二个子渲染流程,第二个子渲染流程将多采样深度渲染结果进行混合得到单采样深度结果,在着色语言实现中,调用subpassLoad函数,并将多重采样的深度渲染目标资源MSDepthTarget的索引为0的采样点值设置为混合后的深度值,并在第二个子渲染流程执行完毕后,记录vkCmdNextSubpass命令;执行第三个子渲染流程,记录渲染透明物体的渲染命令,并在第三个子渲染流程执行完毕后,记录vkCmdEndRenderPass命令。
204、图形处理器根据所述第一渲染命令,利用第一子渲染通道对目标场景进行不透明物体渲染,得到第一渲染结果。
205、根据所述第二渲染命令和获取到的所述缓存资源中第一渲染结果中的多采样深度渲染结果,利用第二子渲染通道对目标场景进行多采样信息融合处理,得到第二渲染结果。
206、根据所述第三渲染命令和获取到的所述缓存资源中的第二渲染结果,利用第三子渲染通道对目标场景进行透明物体渲染,得到的第三渲染结果并作为目标场景渲染数据。
207、图形处理器将所述第三渲染结果作为目标场景渲染数据发送至内存或显存。
具体实施中,当GPU完成目标场景渲染后,将经过多重采样抗锯齿处理的目标场景的颜色渲染数据保存在非多采样的颜色渲染目标资源ColorTarget中,目标场景的深度渲染数据保存在非多采样的深度渲染目标资源DepthTarget中。
根据实际应用场景的需求,非多采样的颜色渲染目标资源ColorTarget和非多采样的深度渲染目标资源DepthTarget中的目标场景的颜色渲染数据和深度渲染数据,还能够作为后续渲染流程的渲染目标,继续进行渲染流程;也可以将非多采样的颜色渲染目标资源ColorTarget和非多采样的深度渲染目标资源DepthTarget中的经过多重采样抗锯齿处理的目标场景的颜色渲染数据和深度渲染数据,作为纹理资源供后续渲染流程进行读取使用,并在所有的渲染操作完成后,输出ColorTarget中保存的渲染图像,例如,在移动设备的屏幕上显示渲染图像。
可见,利用Vulkan的多渲染流程MultiRenderPass机制,能够通过依次调用渲染命令指令集中用于渲染目标场景的相应渲染命令,以及相应子渲染通道,并结合读取到的GPU片上缓存中缓存的在渲染过程中产生的渲染结果,实现对目标场景的渲染。在充分利用移动平台的GPU片上缓存特性的同时,减少CPU与GPU的数据交互,以及对显存的访问,达到提升渲染效率,降低带宽资源开销的目的。
通过应用本实施例的技术方案,将通过记录得到的渲染命令指令集,并利用来自CPU的目标场景渲染通道数据和目标场景帧缓存数据进行目标场景渲染,得到目标场景渲染数据并发送给内存或显存,与现有利用OpenGLES,或者Vulkan进行场景渲染的方式相比,本实施例在基于多重采样抗锯齿技术的场景渲染的基础上,CPU通过记录得到渲染命令指令集的方式,将目标场景渲染的多个渲染命令一次性发送给GPU,以便GPU能够根据渲染命令指令集中的多个渲染命令,以及CPU的目标场景渲染通道数据和目标场景帧缓存数据进行目标场景渲染,得到目标场景渲染数据,并将该目标场景渲染数据发送给内存或显存,在避免基于OpenGLES的场景渲染的渲染性能及缓存能力较弱,且多重采样抗锯齿技术实现难度较大(即函数功能较弱)的情况下,通过对渲染引擎架构的优化,在基于Vulkan的场景渲染的多重采样抗锯齿技术实现的基础上,有效降低CPU与GPU的交互工作量,从而实现渲染功耗的有效降低。
进一步的,作为图1所示方法的具体实现,本实施例提供了一种图像渲染装置,如图3所示,该装置包括:第一发送模块33、渲染模块34、第二发送模块35。
第一发送模块33,可以用于将通过记录得到的渲染命令指令集,以及预设得到的目标场景渲染通道数据和目标场景帧缓存数据发送至图形处理器。
渲染模块34,可以用于图形处理器根据所述目标场景渲染通道数据和目标场景帧缓存数据,通过依次调用所述渲染命令指令集中的多个渲染命令,得到目标场景渲染数据。
第二发送模块35,用于将所述目标场景渲染数据发送至内存或显存。
在具体的应用场景中,如图4所示,本装置还可包括:缓存模块31、创建模块32。
在具体的应用场景中,所述目标场景渲染通道数据包括利用多渲染流程机制,对Vulkan渲染通道进行属性设置的属性信息,所述Vulkan渲染通道包括用于渲染不透明物体的第一子渲染通道、用于对多采样深度渲染结果进行多采样信息融合处理的第二子渲染通道、用于渲染透明物体的第三子渲染通道。
在具体的应用场景中,所述缓存模块31,可以用于在图形处理器片上缓存中创建用于存储在渲染过程中产生的渲染结果的缓存资源,所述渲染结果包括用于渲染不透明物体的第一子渲染通道输出的第一渲染结果,用于对第一渲染结果中多采样深度渲染结果进行多采样信息融合处理的第二子渲染通道输出的第二渲染结果,以及用于渲染透明物体的第三子渲染通道输出的第三渲染结果。
所述第二发送模块35,具体用于图形处理器将所述第三渲染结果作为目标场景渲染数据发送至内存或显存。
在具体的应用场景中,所述渲染命令指令集包括用于渲染目标场景的多个渲染命令,以及用于表征每个所述渲染命令调用顺序的调用顺序标识;其中,所述多个渲染命令包括对应第一子渲染通道的用于渲染不透明物体的第一渲染命令和第一vkCmdNextSubpass命令,对应第二子渲染通道的用于对多采样深度渲染结果进行多采样信息融合处理的第二渲染命令和第二vkCmdNextSubpass命令,以及对应第三子渲染通道的用于渲染透明物体的第三渲染命令和vkCmdEndRenderPass命令。
在具体的应用场景中,所述渲染模块34,包括:第一渲染单元341、第二渲染单元342、第三渲染单元343。
第一渲染单元341,可以用于图形处理器根据所述第一渲染命令,利用第一子渲染通道对目标场景进行不透明物体渲染,得到第一渲染结果。
第二渲染单元342,可以用于根据所述第二渲染命令和获取到的所述缓存资源中第一渲染结果中的多采样深度渲染结果,利用第二子渲染通道对目标场景进行多采样信息融合处理,得到第二渲染结果。
第三渲染单元343,可以用于根据所述第三渲染命令和获取到的所述缓存资源中的第二渲染结果,利用第三子渲染通道对目标场景进行透明物体渲染,得到的第三渲染结果并作为目标场景渲染数据。
在具体的应用场景中,所述创建模块32,可以用于中央处理器创建用于设置目标场景渲染通道数据和目标场景帧缓存数据的Vulkan渲染通道和Vulkan帧缓存。
在具体的应用场景中,所述创建模块32,包括:第一创建单元321、第二创建单元322。
第一创建单元321,可以用于中央处理器根据预设的附件描述数组,创建Vulkan渲染通道。
第二创建单元322,可以用于根据所述Vulkan渲染通道及其附件描述数组,创建Vulkan帧缓存;其中,所述附件描述数组与所述Vulkan帧缓存格式一一对应。
在具体的应用场景中,所述目标场景渲染通道数据包括在中央处理器中创建的Vulkan渲染通道的附件描述数组,以及根据所述附件描述数组中的元素索引信息,建立与所述第一子渲染通道、所述第二子渲染通道、所述第三子渲染通道之间的索引关系。
在具体的应用场景中,通过在中央处理器中创建子渲染通道依赖数组,建立所述第一子渲染通道、所述第二子渲染通道、所述第三子渲染通道之间的渲染顺序。
需要说明的是,本申请实施例提供的一种图像渲染装置所涉及各功能单元的其他相应描述,可以参考图1和图2中的对应描述,在此不再赘述。
基于上述如图1和图2所示方法,相应的,本申请实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述如图1和图2所示的图像渲染方法。
基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
基于上述如图1、图2所示的方法,以及图3所示的虚拟装置实施例,为了实现上述目的,本申请实施例还提供了一种计算机设备,具体可以为个人计算机、服务器、网络设备等,该实体设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1和图2所示的图像渲染方法。
可选的,该计算机设备还可以包括用户接口、网络接口、摄像头、射频(RadioFrequency,RF)电路,传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如蓝牙接口、WI-FI接口)等。
本领域技术人员可以理解,本实施例提供的一种计算机设备结构并不构成对该实体设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储介质中还可以包括操作***、网络通信模块。操作***是管理计算机设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与该实体设备中其它硬件和软件之间通信。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现。通过应用本申请的技术方案,与现有利用OpenGLES,或者Vulkan进行场景渲染的方式相比,本实施例在基于多重采样抗锯齿技术的场景渲染的基础上,CPU通过记录得到渲染命令指令集的方式,将场景渲染的多个渲染命令一次性发送给GPU,以便GPU能够根据渲染命令指令集中的多个渲染命令,以及CPU的目标场景渲染通道数据和目标场景帧缓存数据对目标场景进行渲染,得到目标场景渲染数据,并将该目标场景渲染数据发送给内存或显存,在避免基于OpenGLES的场景渲染的渲染性能及缓存能力较弱,且多重采样抗锯齿技术实现难度较大的情况下,通过对渲染引擎架构的优化,在基于Vulkan的场景渲染的多重采样抗锯齿技术实现的基础上,有效降低CPU与GPU的交互工作量,从而实现渲染功耗的有效降低。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (11)
1.一种图像渲染方法,其特征在于,包括:
将通过记录得到的渲染命令指令集,以及预设得到的目标场景渲染通道数据和目标场景帧缓存数据发送至图形处理器;
图形处理器根据所述目标场景渲染通道数据和目标场景帧缓存数据,通过依次调用所述渲染命令指令集中的多个渲染命令,得到目标场景渲染数据;
将所述目标场景渲染数据发送至内存或显存。
2.根据权利要求1所述的方法,其特征在于,所述目标场景渲染通道数据包括利用多渲染流程机制,对Vulkan渲染通道进行属性设置的属性信息,所述Vulkan渲染通道包括用于渲染不透明物体的第一子渲染通道、用于对多采样深度渲染结果进行多采样信息融合处理的第二子渲染通道、用于渲染透明物体的第三子渲染通道。
3.根据权利要求1或2所述的方法,其特征在于,在图形处理器片上缓存中创建用于存储在渲染过程中产生的渲染结果的缓存资源,所述渲染结果包括用于渲染不透明物体的第一子渲染通道输出的第一渲染结果,用于对第一渲染结果中多采样深度渲染结果进行多采样信息融合处理的第二子渲染通道输出的第二渲染结果,以及用于渲染透明物体的第三子渲染通道输出的第三渲染结果;
还包括:图形处理器将所述第三渲染结果作为目标场景渲染数据发送至内存或显存。
4.根据权利要求3所述的方法,其特征在于,所述渲染命令指令集包括用于渲染目标场景的多个渲染命令,以及用于表征每个所述渲染命令调用顺序的调用顺序标识;
其中,所述多个渲染命令包括对应第一子渲染通道的用于渲染不透明物体的第一渲染命令和第一vkCmdNextSubpass命令,对应第二子渲染通道的用于对多采样深度渲染结果进行多采样信息融合处理的第二渲染命令和第二vkCmdNextSubpass命令,以及对应第三子渲染通道的用于渲染透明物体的第三渲染命令和vkCmdEndRenderPass命令。
5.根据权利要求4所述的方法,其特征在于,图形处理器根据所述目标场景渲染通道数据和目标场景帧缓存数据,通过依次调用所述渲染命令指令集中的多个渲染命令,得到目标场景渲染数据,包括:
图形处理器根据所述第一渲染命令,利用第一子渲染通道对目标场景进行不透明物体渲染,得到第一渲染结果;
根据所述第二渲染命令和获取到的所述缓存资源中第一渲染结果中的多采样深度渲染结果,利用第二子渲染通道对目标场景进行多采样信息融合处理,得到第二渲染结果;
根据所述第三渲染命令和获取到的所述缓存资源中的第二渲染结果,利用第三子渲染通道对目标场景进行透明物体渲染,得到的第三渲染结果并作为目标场景渲染数据。
6.根据权利要求2所述的方法,其特征在于,还包括:中央处理器创建用于设置目标场景渲染通道数据和目标场景帧缓存数据的Vulkan渲染通道和Vulkan帧缓存,具体包括:
中央处理器根据预设的附件描述数组,创建Vulkan渲染通道;
根据所述Vulkan渲染通道及其附件描述数组,创建Vulkan帧缓存;
其中,所述附件描述数组与所述Vulkan帧缓存格式一一对应。
7.根据权利要求2或6所述的方法,其特征在于,所述目标场景渲染通道数据包括在中央处理器中创建的Vulkan渲染通道的附件描述数组,以及根据所述附件描述数组中的元素索引信息,建立与所述第一子渲染通道、所述第二子渲染通道、所述第三子渲染通道之间的索引关系。
8.根据权利要求2或6所述的方法,其特征在于,通过在中央处理器中创建子渲染通道依赖数组,建立所述第一子渲染通道、所述第二子渲染通道、所述第三子渲染通道之间的渲染顺序。
9.一种图像渲染装置,其特征在于,包括:
第一发送模块,用于将通过记录得到的渲染命令指令集,以及预设得到的目标场景渲染通道数据和目标场景帧缓存数据发送至图形处理器;
渲染模块,用于图形处理器根据所述目标场景渲染通道数据和目标场景帧缓存数据,通过依次调用所述渲染命令指令集中的多个渲染命令,得到目标场景渲染数据;
第二发送模块,用于将所述目标场景渲染数据发送至内存或显存。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述图像渲染方法的步骤。
11.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的图像渲染方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011508323.3A CN112652025B (zh) | 2020-12-18 | 2020-12-18 | 图像渲染方法、装置、计算机设备及可读存储介质 |
CN202210187253.9A CN114612579A (zh) | 2020-12-18 | 2020-12-18 | 图像渲染方法、装置、计算机设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011508323.3A CN112652025B (zh) | 2020-12-18 | 2020-12-18 | 图像渲染方法、装置、计算机设备及可读存储介质 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210187253.9A Division CN114612579A (zh) | 2020-12-18 | 2020-12-18 | 图像渲染方法、装置、计算机设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112652025A true CN112652025A (zh) | 2021-04-13 |
CN112652025B CN112652025B (zh) | 2022-03-22 |
Family
ID=75355349
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210187253.9A Pending CN114612579A (zh) | 2020-12-18 | 2020-12-18 | 图像渲染方法、装置、计算机设备及可读存储介质 |
CN202011508323.3A Active CN112652025B (zh) | 2020-12-18 | 2020-12-18 | 图像渲染方法、装置、计算机设备及可读存储介质 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210187253.9A Pending CN114612579A (zh) | 2020-12-18 | 2020-12-18 | 图像渲染方法、装置、计算机设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN114612579A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113835890A (zh) * | 2021-09-24 | 2021-12-24 | 厦门雅基软件有限公司 | 一种渲染数据处理方法、装置、设备和存储介质 |
CN113934491A (zh) * | 2021-09-30 | 2022-01-14 | 阿里云计算有限公司 | 一种大数据处理方法及装置 |
CN114760526A (zh) * | 2022-03-31 | 2022-07-15 | 北京百度网讯科技有限公司 | 一种视频渲染方法、装置、电子设备及存储介质 |
CN115908678A (zh) * | 2023-02-25 | 2023-04-04 | 深圳市益玩网络科技有限公司 | 骨骼模型渲染方法、装置、电子设备及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116185640B (zh) * | 2023-04-20 | 2023-08-08 | 上海励驰半导体有限公司 | 基于多gpu的图像命令处理方法、装置、存储介质及芯片 |
Citations (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101295408A (zh) * | 2007-04-27 | 2008-10-29 | 新奥特硅谷视频技术有限责任公司 | 一种3d图文渲染方法和渲染*** |
CN101639929A (zh) * | 2008-06-05 | 2010-02-03 | Arm有限公司 | 图形处理*** |
US20100118039A1 (en) * | 2008-11-07 | 2010-05-13 | Google Inc. | Command buffers for web-based graphics rendering |
CN102163337A (zh) * | 2010-02-18 | 2011-08-24 | 辉达公司 | 用于使用至少一个半透明表面渲染像素的***和方法 |
US20120069036A1 (en) * | 2010-09-18 | 2012-03-22 | Makarand Dharmapurikar | Method and mechanism for delivering applications over a wan |
CN102722861A (zh) * | 2011-05-06 | 2012-10-10 | 新奥特(北京)视频技术有限公司 | 一种基于cpu的图形渲染引擎及实现方法 |
CN102810199A (zh) * | 2012-06-15 | 2012-12-05 | 成都平行视野科技有限公司 | 一种基于gpu的图像处理方法 |
CN103106680A (zh) * | 2013-02-16 | 2013-05-15 | 赞奇科技发展有限公司 | 基于云计算架构的三维图形渲染的实现方法及云服务*** |
US20130135322A1 (en) * | 2011-11-30 | 2013-05-30 | Qualcomm Incorporated | Switching between direct rendering and binning in graphics processing using an overdraw tracker |
US8537166B1 (en) * | 2007-12-06 | 2013-09-17 | Nvidia Corporation | System and method for rendering and displaying high-resolution images |
CN104823215A (zh) * | 2012-12-28 | 2015-08-05 | 苹果公司 | 子画面图形渲染*** |
CN105023234A (zh) * | 2015-06-29 | 2015-11-04 | 嘉兴慧康智能科技有限公司 | 基于嵌入式***存储优化的图形加速方法 |
CN105279253A (zh) * | 2015-10-13 | 2016-01-27 | 上海联彤网络通讯技术有限公司 | 提升网页画布渲染速度的***及方法 |
CN108140234A (zh) * | 2015-10-23 | 2018-06-08 | 高通股份有限公司 | 基于命令流标记的gpu操作算法选择 |
CN108711182A (zh) * | 2018-05-03 | 2018-10-26 | 广州爱九游信息技术有限公司 | 渲染处理方法、装置及移动终端设备 |
US20180373556A1 (en) * | 2015-12-21 | 2018-12-27 | Intel Corporation | Apparatus and method for pattern-driven page table shadowing for graphics virtualization |
CA3013624A1 (en) * | 2017-08-09 | 2019-02-09 | Daniel Herring | Systems and methods for using egl with an opengl api and a vulkan graphics driver |
CN109669739A (zh) * | 2017-10-16 | 2019-04-23 | 阿里巴巴集团控股有限公司 | 一种界面渲染方法、装置、终端设备和存储介质 |
CN109891388A (zh) * | 2017-10-13 | 2019-06-14 | 华为技术有限公司 | 一种图像处理方法及装置 |
CN110163943A (zh) * | 2018-11-21 | 2019-08-23 | 深圳市腾讯信息技术有限公司 | 图像的渲染方法和装置、存储介质、电子装置 |
CN110471701A (zh) * | 2019-08-12 | 2019-11-19 | Oppo广东移动通信有限公司 | 图像渲染的方法、装置、存储介质及电子设备 |
CN110992462A (zh) * | 2019-12-25 | 2020-04-10 | 重庆文理学院 | 一种基于边缘计算3d模拟场景图像的批处理绘制方法 |
CN111400024A (zh) * | 2019-01-03 | 2020-07-10 | 百度在线网络技术(北京)有限公司 | 渲染过程中的资源调用方法、装置和渲染引擎 |
CN111508055A (zh) * | 2019-01-30 | 2020-08-07 | 华为技术有限公司 | 渲染方法及装置 |
CN111798365A (zh) * | 2020-06-12 | 2020-10-20 | 完美世界(北京)软件科技发展有限公司 | 深度抗锯齿数据读取方法、装置、设备和存储介质 |
CN111798372A (zh) * | 2020-06-10 | 2020-10-20 | 完美世界(北京)软件科技发展有限公司 | 图像渲染方法、装置、设备和可读介质 |
-
2020
- 2020-12-18 CN CN202210187253.9A patent/CN114612579A/zh active Pending
- 2020-12-18 CN CN202011508323.3A patent/CN112652025B/zh active Active
Patent Citations (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101295408A (zh) * | 2007-04-27 | 2008-10-29 | 新奥特硅谷视频技术有限责任公司 | 一种3d图文渲染方法和渲染*** |
US8537166B1 (en) * | 2007-12-06 | 2013-09-17 | Nvidia Corporation | System and method for rendering and displaying high-resolution images |
CN101639929A (zh) * | 2008-06-05 | 2010-02-03 | Arm有限公司 | 图形处理*** |
US20100118039A1 (en) * | 2008-11-07 | 2010-05-13 | Google Inc. | Command buffers for web-based graphics rendering |
CN102163337A (zh) * | 2010-02-18 | 2011-08-24 | 辉达公司 | 用于使用至少一个半透明表面渲染像素的***和方法 |
US20120069036A1 (en) * | 2010-09-18 | 2012-03-22 | Makarand Dharmapurikar | Method and mechanism for delivering applications over a wan |
CN102722861A (zh) * | 2011-05-06 | 2012-10-10 | 新奥特(北京)视频技术有限公司 | 一种基于cpu的图形渲染引擎及实现方法 |
US20130135322A1 (en) * | 2011-11-30 | 2013-05-30 | Qualcomm Incorporated | Switching between direct rendering and binning in graphics processing using an overdraw tracker |
CN102810199A (zh) * | 2012-06-15 | 2012-12-05 | 成都平行视野科技有限公司 | 一种基于gpu的图像处理方法 |
CN104823215A (zh) * | 2012-12-28 | 2015-08-05 | 苹果公司 | 子画面图形渲染*** |
CN103106680A (zh) * | 2013-02-16 | 2013-05-15 | 赞奇科技发展有限公司 | 基于云计算架构的三维图形渲染的实现方法及云服务*** |
CN105023234A (zh) * | 2015-06-29 | 2015-11-04 | 嘉兴慧康智能科技有限公司 | 基于嵌入式***存储优化的图形加速方法 |
CN105279253A (zh) * | 2015-10-13 | 2016-01-27 | 上海联彤网络通讯技术有限公司 | 提升网页画布渲染速度的***及方法 |
CN108140234A (zh) * | 2015-10-23 | 2018-06-08 | 高通股份有限公司 | 基于命令流标记的gpu操作算法选择 |
US20180373556A1 (en) * | 2015-12-21 | 2018-12-27 | Intel Corporation | Apparatus and method for pattern-driven page table shadowing for graphics virtualization |
CA3013624A1 (en) * | 2017-08-09 | 2019-02-09 | Daniel Herring | Systems and methods for using egl with an opengl api and a vulkan graphics driver |
CN109891388A (zh) * | 2017-10-13 | 2019-06-14 | 华为技术有限公司 | 一种图像处理方法及装置 |
CN109669739A (zh) * | 2017-10-16 | 2019-04-23 | 阿里巴巴集团控股有限公司 | 一种界面渲染方法、装置、终端设备和存储介质 |
CN108711182A (zh) * | 2018-05-03 | 2018-10-26 | 广州爱九游信息技术有限公司 | 渲染处理方法、装置及移动终端设备 |
CN110163943A (zh) * | 2018-11-21 | 2019-08-23 | 深圳市腾讯信息技术有限公司 | 图像的渲染方法和装置、存储介质、电子装置 |
CN111400024A (zh) * | 2019-01-03 | 2020-07-10 | 百度在线网络技术(北京)有限公司 | 渲染过程中的资源调用方法、装置和渲染引擎 |
CN111508055A (zh) * | 2019-01-30 | 2020-08-07 | 华为技术有限公司 | 渲染方法及装置 |
CN110471701A (zh) * | 2019-08-12 | 2019-11-19 | Oppo广东移动通信有限公司 | 图像渲染的方法、装置、存储介质及电子设备 |
CN110992462A (zh) * | 2019-12-25 | 2020-04-10 | 重庆文理学院 | 一种基于边缘计算3d模拟场景图像的批处理绘制方法 |
CN111798372A (zh) * | 2020-06-10 | 2020-10-20 | 完美世界(北京)软件科技发展有限公司 | 图像渲染方法、装置、设备和可读介质 |
CN111798365A (zh) * | 2020-06-12 | 2020-10-20 | 完美世界(北京)软件科技发展有限公司 | 深度抗锯齿数据读取方法、装置、设备和存储介质 |
Non-Patent Citations (4)
Title |
---|
SIMON_MIAOV: "Vulkan多线程渲染", 《HTTPS://WWW.JIANSHU.COM/P/70731B49BEAB》 * |
柳杨光: "增强现实中三维人脸模型的相片级真实感实时渲染", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
沉默的舞台剧: "Vulkan填坑学习Day12—渲染通道", 《HTTPS://BLOG.CSDN.NET/QQ_35312463/ARTICLE/DETAILS/103981577》 * |
韩改宁 等: "对空中飞行目标的动态仿真及飞行图像的处理", 《电脑开发与应用》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113835890A (zh) * | 2021-09-24 | 2021-12-24 | 厦门雅基软件有限公司 | 一种渲染数据处理方法、装置、设备和存储介质 |
CN113934491A (zh) * | 2021-09-30 | 2022-01-14 | 阿里云计算有限公司 | 一种大数据处理方法及装置 |
CN113934491B (zh) * | 2021-09-30 | 2023-08-22 | 阿里云计算有限公司 | 一种大数据处理方法及装置 |
CN114760526A (zh) * | 2022-03-31 | 2022-07-15 | 北京百度网讯科技有限公司 | 一种视频渲染方法、装置、电子设备及存储介质 |
CN115908678A (zh) * | 2023-02-25 | 2023-04-04 | 深圳市益玩网络科技有限公司 | 骨骼模型渲染方法、装置、电子设备及存储介质 |
CN115908678B (zh) * | 2023-02-25 | 2023-05-30 | 深圳市益玩网络科技有限公司 | 骨骼模型渲染方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114612579A (zh) | 2022-06-10 |
CN112652025B (zh) | 2022-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112652025B (zh) | 图像渲染方法、装置、计算机设备及可读存储介质 | |
US8149242B2 (en) | Graphics processing apparatus, graphics library module and graphics processing method | |
US20080278509A1 (en) | Graphics Processing Apparatus | |
JP6073533B1 (ja) | タイルベースのアーキテクチャ上での最適化されたマルチパスレンダリング | |
JP5963940B2 (ja) | 描画の方法、装置、および端末 | |
WO2021248705A1 (zh) | 图像渲染方法、装置、计算机程序和可读介质 | |
JP5242789B2 (ja) | パフォーマンス解析におけるグラフィックス命令の関連するグラフィックス・データへのマッピング | |
CN112801855B (zh) | 基于图元的渲染任务调度的方法、装置及存储介质 | |
CN110750664B (zh) | 图片的显示方法及装置 | |
US20210343072A1 (en) | Shader binding management in ray tracing | |
CN111080761B (zh) | 一种渲染任务的调度方法、装置及计算机存储介质 | |
WO2023197762A1 (zh) | 图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品 | |
CN111145074B (zh) | 全液晶仪表图像渲染方法 | |
CN114461406A (zh) | DMA OpenGL优化方法 | |
CN106504305A (zh) | 一种动画处理方法及装置 | |
CN113835890A (zh) | 一种渲染数据处理方法、装置、设备和存储介质 | |
JP5242788B2 (ja) | グラフィックス・イメージングのためのパーティション・ベースのパフォーマンス解析 | |
CN110647377A (zh) | 人机交互界面的图片处理***、设备及介质 | |
KR102645239B1 (ko) | Gpu 캐시를 활용한 다운스케일링을 위한 simo 접근 방식으로의 gpu 커널 최적화 | |
CN115501588A (zh) | 图像渲染方法、装置、存储介质及电子设备 | |
CN114331808A (zh) | 一种动作姿态存储方法、装置、介质及电子设备 | |
US8988444B2 (en) | System and method for configuring graphics register data and recording medium | |
CN112348934B (zh) | 基于大链表的游戏贴图展示方法、装置及介质 | |
CN117369820B (zh) | 渲染流程图的生成方法、装置及设备 | |
US20240233263A1 (en) | Primitive rendering method and apparatus, computer device and storage medium |
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 |
Application publication date: 20210413 Assignee: Beijing Xuanguang Technology Co.,Ltd. Assignor: Perfect world (Beijing) software technology development Co.,Ltd. Contract record no.: X2022990000254 Denomination of invention: Image rendering method, device, computer device and readable storage medium Granted publication date: 20220322 License type: Exclusive License Record date: 20220610 |
|
EE01 | Entry into force of recordation of patent licensing contract |