CN112950757A - 图像渲染方法及装置 - Google Patents

图像渲染方法及装置 Download PDF

Info

Publication number
CN112950757A
CN112950757A CN202110339048.5A CN202110339048A CN112950757A CN 112950757 A CN112950757 A CN 112950757A CN 202110339048 A CN202110339048 A CN 202110339048A CN 112950757 A CN112950757 A CN 112950757A
Authority
CN
China
Prior art keywords
rendering
image
sub
subtask
area
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
Application number
CN202110339048.5A
Other languages
English (en)
Other versions
CN112950757B (zh
Inventor
方鹏程
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202110339048.5A priority Critical patent/CN112950757B/zh
Publication of CN112950757A publication Critical patent/CN112950757A/zh
Application granted granted Critical
Publication of CN112950757B publication Critical patent/CN112950757B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

本申请提供图像渲染方法及装置,其中所述图像渲染方法包括:接收图像渲染请求,其中,所述图像渲染请求包括图像渲染规则和至少一个渲染子任务;为每个所述渲染子任务申请分配对应的渲染区域;在每个所述渲染区域中生成每个所述渲染子任务对应的子视图;根据所述图像渲染规则合并每个所述渲染区域的子视图,生成合并图像;将所述合并图像渲染至预设画布,生成渲染图像,通过本申请提供的图像渲染方法实现了对多个子视图灵活合并渲染,根据需求将不同的子视图进行合并,简化了渲染方式,避免引入第三方资源,减少***资源包体积和***资源调用。

Description

图像渲染方法及装置
技术领域
本申请涉及计算机技术领域,特别涉及一种图像渲染方法。本申请同时涉及一种图像渲染装置,一种计算设备,以及一种计算机可读存储介质。
背景技术
随着技术的发展,手机操作***也越来越精美,在安卓***的渲染过程中,通常使用第三方图形库,用于丰富安卓***的画质。
由于需要引入第三方图形库,需要将第三方图形库的全部资源引入到***中,这种引入会增大安卓包的体积,同时由于第三方图形库对安卓***的入侵较大,通常无法直接与原有的界面设计(UI)兼容,需要增加大量的业务逻辑,增加安卓***的***复杂度,并且,应用于安卓***的第三方图形库通常无法渲染视频,只能渲染生成UI控件,而可以用于渲染视频的第三方图库通常又无法应用于安卓***中。
发明内容
有鉴于此,本申请实施例提供了一种图像渲染方法。本申请同时涉及一种图像渲染装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的安卓***在图像渲染过程中,需要第三方的环境依赖,导致的***安装包增大、业务逻辑复杂的问题。
根据本申请实施例的第一方面,提供了一种图像渲染方法,包括:
接收图像渲染请求,其中,所述图像渲染请求包括图像渲染规则和至少一个渲染子任务;
为每个所述渲染子任务申请分配对应的渲染区域;
在每个所述渲染区域中生成每个所述渲染子任务对应的子视图;
根据所述图像渲染规则合并每个所述渲染区域的子视图,生成合并图像;
将所述合并图像渲染至预设画布,生成渲染图像。
根据本申请实施例的第二方面,提供了一种图像渲染装置,包括:
接收模块,被配置为接收图像渲染请求,其中,所述图像渲染请求包括图像渲染规则和至少一个渲染子任务;
分配模块,被配置为每个所述渲染子任务申请分配对应的渲染区域;
生成模块,被配置为在每个所述渲染区域中生成每个所述渲染子任务对应的子视图;
合并模块,被配置为根据所述图像渲染规则合并每个所述渲染区域的子视图,生成合并图像;
渲染模块,被配置为将所述合并图像渲染至预设画布,生成渲染图像。
根据本申请实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述计算机指令时实现所述图像渲染方法的步骤。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现所述图像渲染方法的步骤。
本申请提供的图像渲染方法,包括接收图像渲染请求,其中,所述图像渲染请求包括图像渲染规则和至少一个渲染子任务;为每个所述渲染子任务申请分配对应的渲染区域;在每个所述渲染区域中生成每个所述渲染子任务对应的子视图;根据所述图像渲染规则合并每个所述渲染区域的子视图,生成合并图像;将所述合并图像渲染至预设画布,生成渲染图像。通过本申请一实施例实现了对多个子视图灵活合并渲染、可以根据需求将不同的子视图进行合并,既能渲染视图,又能渲染视频、控件等,简化了渲染方式,避免引入第三方资源,减少***资源包体积和***资源调用。
附图说明
图1是本申请一实施例提供的一种图像渲染方法的流程图;
图2是本申请一实施例提供的图像渲染方法的结构示意图;
图3是本申请一实施例提供的一种应用于渲染生成安卓视图的图像渲染方法的处理流程图;
图4是本申请一实施例提供的一种图像渲染装置的结构示意图;
图5是本申请一实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本申请一个或多个实施例涉及的名词术语进行解释。
绘图表面:Surface,安卓***的绘制表面。
绘图表面纹理:SurfaceTexture,安卓***的表面图像缓冲实体,用来创建Surface。
OpenGL:是OpenGL三维图形API的子集,针对手机、平板和游戏主机等嵌入式设备而设计。
OpenGLES:针对移动端优化后的OpenGL子集,以弹幕为例,在安卓端弹幕可以利用视图或OpenGLES显示。
FBO:FrameBuffer的简称,为图像缓存区。
UI控件:安卓***的视图组件。
Canvas:安卓***中控件的画布。
离屏渲染:不在屏幕上渲染。
在本申请中,提供了一种图像渲染方法,本申请同时涉及一种图像渲染装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本申请一实施例提供的一种图像渲染方法的流程图,具体包括以下步骤:
步骤102:接收图像渲染请求,其中,所述图像渲染请求包括图像渲染规则和至少一个渲染子任务。
本申请提供的图像渲染方法应用于安卓***的移动终端,图像渲染请求即根据需求渲染生成图像的需求,比如生成安卓***的控件视图、安卓***的控件视图组、视频播放器或一些OpenGLES渲染的内容,OpenGLES针对移动端优化后的OpenGL子集,OpenGL是OpenGL三维图形API的子集,针对手机、平板和游戏主机等嵌入式设备而设计。
在图像渲染请求中,包括有图像渲染规则和至少一个渲染子任务,图像渲染规则具体是指渲染子任务是否显示、渲染子任务的位置、渲染子任务的样式等等。
在本申请提供的一具体实施方式中,图像渲染请求为渲染安卓***的视图界面,在视图界面中包括5个图标控件,分别为F1、F2、F3、F4和F5,这5个图标控件就是5个渲染子任务,图像渲染规则可以为F1-F5均显示,且F1-F5按照顺序在视图界面上显示。
在本申请提供的另一具体实施方式中,以图像渲染请求为渲染生成视频为例,渲染子任务为渲染生成视频播放器、视频对应的弹幕控件和视频对应的字幕控件,渲染规则为在视频播放器的上部叠放弹幕控件,在视频播放器的下部叠放字幕控件。
步骤104:为每个所述渲染子任务申请分配对应的渲染区域。
渲染区域(LocalSurface)是用于渲染生成每个渲染子任务对应视图的区域,在实际应用中,LocalSurface封装了绘图表面纹理(SurfaceTexture)和绘图表面(Surface),Surface是安卓***的绘制表面,简单理解,Surface是一个用于存放视频、图像数据的内存区域,Surface有对应的长和宽。LocalSurface是一个可内部生成或外部注入的,用来直接绘制图像或创建绘制环境的区域。在实际应用中,每个渲染子任务对应一个LocalSurface。
具体的,为每个所述渲染子任务申请分配对应的渲染区域,包括:
响应于所述图像渲染请求启动渲染线程;
根据每个所述渲染子任务向所述渲染线程申请每个所述渲染子任务对应的渲染区域;
所述渲染线程为每个渲染子任务分配对应的渲染区域。
其中,渲染线程具体是指用于渲染生成图像的计算机线程,线程是操作***能够进行运算调度的最小单位,渲染线程用于生成图像渲染请求对应的渲染图像。
在确定每个渲染子任务后,根据每个渲染子任务向渲染线程申请每个渲染子任务对应的LocalSurface,由渲染线程根据申请向每个渲染子任务分配LocalSurface,即在内存中为每个渲染子任务分配对应的内存区域。
可选的,所述渲染线程为每个渲染子任务分配对应的渲染区域,包括:
为每个渲染子任务分配对应的绘图表面纹理;
在每个所述绘图表面纹理上创建每个渲染子任务对应的绘图表面;
为每个渲染子任务分配每个渲染子任务对应的绘图表面。
在实际应用中,当渲染线程接收到渲染区域的分配请求时,根据每个子任务的属性信息,如大小,在内存中分配一块相应的绘图表面纹理(SurfaceTexture),SurfaceTexture是安卓***的表面图像缓冲实体,可以用来创建绘图表面(Surface),Surface具体是指安卓***的绘制表面,在存在Surface的情况下必然会存在SurfaceTexture,绘制表面(Surface)和绘图表面纹理(SurfaceTexture)共同组成了渲染区域(LocalSurface)。
在本申请提供的一具体实施方式中,以渲染子任务为分别渲染F1、F2、F3、F4和F5五个图标控件为例,为每个渲染子任务分配对应的渲染区域Q1、Q2、Q3、Q4、Q5。
在本申请提供的另一具体实施方式中,以渲染生成视频为例,渲染子任务为渲染生成视频播放器、视频对应的弹幕控件和视频对应的字幕控件,为每个渲染子任务分别分配对应的渲染区域P1、P2和P3。
步骤106:在每个所述渲染区域中生成每个所述渲染子任务对应的子视图。
每个渲染区域(LocalSurface)用于生成每个对应的渲染子任务的子视图,例如,当渲染子任务为图标控件时,在对应的渲染区域中生成控件子视图;当渲染子任务为视频播放器时,在对应的渲染区域中生成视频播放器子视图等等。
可选的,所述渲染区域包括绘图表面;
在每个所述渲染区域中生成每个所述渲染子任务对应的子视图,包括:
在每个渲染区域的绘图表面生成每个所述渲染子任务对应的子视图。
每个渲染区域(LocalSurface)中包括有绘图表面(Surface),渲染子任务需要将自己的内容显示,因此在渲染子任务对应的Surface上绘制,生成子视图。
在本申请提供的一具体实施方式中,以渲染子任务为分别渲染F1、F2、F3、F4和F5五个图标控件为例,为每个渲染子任务分配对应的渲染区域Q1、Q2、Q3、Q4、Q5,在渲染区域Q1的Surface中生成F1对应的子视图1,在渲染区域Q2的Surface中生成F2对应的子视图2,在渲染区域Q3的Surface中生成F3对应的子视图3,在渲染区域Q4的Surface中生成F4对应的子视图4,在渲染区域Q5的Surface中生成F5对应的子视图5。
在本申请提供的另一具体实施方式中,以渲染生成视频为例,渲染子任务为渲染生成视频播放器、视频对应的弹幕控件和视频对应的字幕控件,每个渲染子任务分别分配对应的渲染区域P1、P2和P3,在渲染区域P1的Surface中生成视频播放器,在渲染区域P2的Surface中生成弹幕控件,在渲染区域P3的Surface中生成字幕控件。
步骤108:根据所述图像渲染规则合并每个所述渲染区域的子视图,生成合并图像。
图像渲染规则中包括有每个子视图是否显示、位置、样式等信息,根据图像渲染规则将每个子视图进行合并,合并完成的图像即为合并图像。
具体的,根据所述图像渲染规则合并每个所述渲染区域的子视图,生成合并图像,包括:
根据所述图像渲染规则确定子视图合并规则;
根据所述渲染线程和所述子视图合并规则合并每个所述渲染区域的子视图,生成合并图像。
在图像渲染规则的种类有很多,例如子视图合并规则、图像输出位置等,在合并生成合并图像的过程中,需要用到图像渲染规则中的子视图合并规则,因此,首先在图像渲染规则中确定子视图合并规则,通过渲染线程根据所述子视图合并规则合并每个渲染区域,在实际应用中,渲染线程用于将子视图进行合并渲染生成合并图像,在渲染线程中包括一个渲染循环,用于周期性合并每个LocalSurface,在每次渲染时,通过渲染循环遍历每个LocalSurface,将原有的安卓画布(canvas)替换为LocalSurface的canvas,渲染循环是不断进行的,比如每一秒执行全部的渲染循环并生成合并图像。
步骤110:将所述合并图像渲染至预设画布,生成渲染图像。
安卓画布(canvas)是安卓控件的画布,可以理解为安卓的绘制工具,我们通过各种的绘制方法将图形绘制在画布上,通过canvas提供的API可以在画布上绘制出期望的图形,在本申请提供的实施例中,合并图像是多个LocalSurface的子视图对应的合并图形,是内存中的一个合并存储区域,还需要将其渲染至canvas中,生成对应的渲染图像。
在本申请提供的一具体实施方式中,以渲染子任务为分别渲染F1、F2、F3、F4和F5五个图标控件为例,根据子视图合并规则将渲染区域Q1、Q2、Q3、Q4、Q5进行合并后,生成合并图像,同时安卓***的视图界面还可以作为一个渲染子任务向渲染线程申请一个渲染区域Q0,将渲染区域Q0***到渲染线程的链表最后,替换原有的画布,将合并图像绘制在渲染区域Q0对应的画布上,渲染生成最终的安卓***的视图界面,所述视图界面中包括F1、F2、F3、F4和F5五个图标控件。
在本申请提供的另一具体实施方式中,以渲染生成视频为例,根据子视图合并规则将渲染区域P1、P2、P3合并生成合并图像,并将合并图像渲染至预设的画布上,生成视频播放器,在渲染区域P1的Surface中生成视频,在渲染区域P2的Surface中生成弹幕,在渲染区域P3的Surface中生成字幕。
在本申请提供的又一具体实施方式中,所述图像渲染规则包括图像输出位置;在将所述合并图像渲染至预设画布,生成渲染图像之后,所述方法包括:
输出所述渲染图像至所述图像输出位置。
其中,输出所述渲染图像至所述图像输出位置,包括:
输出所述渲染图像至屏幕;或
输出所述渲染图像至预设的图像缓存区。
在实际应用中,根据实际渲染需求的不同,渲染图像要输出的位置也不同,比如用户希望生成录制视频,则可以将渲染图像作为视频流保存在设备本地;比如用户希望实时显示,还可以将渲染图像显示在终端屏幕上,因此在图像渲染规则中还包括有图像输出位置,在生成渲染图像之后,根据图像输出位置,将所述渲染图像输出至所述图像输出位置。
具体的,当所述图像输出位置为屏幕的情况下,则将所述渲染图像输出至屏幕,用户可以从屏幕中直观看到渲染图像;在所述图像输出位置为非屏幕的情况下,则将渲染图像输出至预设的图像缓存区(framebuffer,FBO),通过对FBO上缓存的渲染图像进行编码、保存、推流、投屏等操作处理,可以将渲染图像保存到终端的存储设备或将渲染图像通过其他终端显示。
本申请提供的图像渲染方法,包括接收图像渲染请求,其中,所述图像渲染请求包括图像渲染规则和至少一个渲染子任务;为每个所述渲染子任务申请分配对应的渲染区域;在每个所述渲染区域中生成每个所述渲染子任务对应的子视图;根据所述图像渲染规则合并每个所述渲染区域的子视图,生成合并图像;将所述合并图像渲染至预设画布,生成渲染图像。通过本申请一实施例实现了对多个子视图灵活合并渲染、可以根据需求将不同的子视图进行合并,既能渲染视图,又能渲染视频、控件等,简化了渲染方式,避免引入第三方资源,减少***资源包体积和***资源调用。
下面结合附图2,对本申请提供的图像渲染方法做进一步解释说明,图2示出了本申请提供的图像渲染方法的结构示意图。
如图2所示,本申请的图像渲染方法中,响应于图像渲染请求,启动有渲染线程,在渲染线程内有渲染循环,负责周期性合并每个渲染区域,最终输出到屏幕或指定的图像缓存区。
具体的,在每次渲染时,通过渲染循环遍历每个渲染区域,将原有的画布替换为渲染区域对应的画布,通过图像渲染规则,将渲染生成的渲染图像执行离屏或上屏的操作,可以通过图像渲染规则实现某些特定的渲染区域是否显示、样式、位置等信息,灵活控制、简化渲染方式。
本申请提供的图像渲染方法,可以渲染生成安卓***的视图、视图组,安卓视图想渲染线程申请渲染区域,即可以获取一块渲染区域,也可以根据安卓视图中不同的需求申请多个渲染区域,灵活多变,安卓视图申请的渲染区域的画布最终会替换安卓***本身的画布,将安卓视图通过渲染区域对应的画布展示。
本申请提供的图像渲染方法,还可以渲染视频播放器,视频播放器同样可以向渲染线程申请渲染区域,并通过渲染区域中的绘图表面进行视频渲染,生成最终的视频动画。
本申请提供的图像渲染方法,还适用于OpenGLES的渲染,OpenGLES渲染可以向渲染线程申请渲染区域,并将渲染生成的渲染图像注入到渲染线程中,通过循环渲染将其与其他渲染区域进行合并。
本申请提供的图像渲染方法,包括接收图像渲染请求,其中,所述图像渲染请求包括图像渲染规则和至少一个渲染子任务;为每个所述渲染子任务申请分配对应的渲染区域;在每个所述渲染区域中生成每个所述渲染子任务对应的子视图;根据所述图像渲染规则合并每个所述渲染区域的子视图,生成合并图像;将所述合并图像渲染至预设画布,生成渲染图像。通过本申请一实施例实现了对多个子视图灵活合并渲染、可以根据需求将不同的子视图进行合并,既能渲染视图,又能渲染视频、控件等,简化了渲染方式,避免引入第三方资源,减少***资源包体积和***资源调用。
下述结合附图3,以本申请提供的图像渲染方法在渲染生成安卓视图的应用为例,对所述图像渲染方法进行进一步说明。其中,图2示出了本申请一实施例提供的一种应用于渲染生成安卓视图的图像渲染方法的处理流程图,具体包括以下步骤:
步骤302:接收安卓视图渲染请求,其中,所述安卓视图渲染请求包括渲染规则和4个渲染子任务。
在本申请提供的实施例中,以渲染生成安卓视图为例进行解释说明,接收到安卓视图渲染请求,安卓视图渲染请求携带有渲染规则和4个渲染子任务,4个渲染子任务分别为安卓视图主界面、时钟控件、天气控件和日历控件。
步骤304:响应于所述安卓视图渲染请求启动渲染线程。
在本申请提供的实施例中,沿用上例,响应于安卓视图渲染请求启动渲染线程,在渲染线程中包括渲染循环。
步骤306:根据4个渲染子任务向所述渲染线程申请4个渲染区域。
在本申请提供的实施例中,沿用上例,根据4个渲染子任务向所述渲染线程申请4个渲染区域,分别为Q1、Q2、Q3和Q4,其中,渲染区域Q1与安卓视图主界面对应、渲染区域Q2与时钟控件对应,渲染区域Q3与天气控件对应,渲染区域Q4与日历控件对应。
步骤308:为4个渲染子任务分别分配对应的渲染区域。
在本申请提供的实施例中,沿用上例,渲染线程分别为4个渲染子任务分配对应的渲染区域,每个渲染区域的尺寸与渲染子任务相对应。
步骤310:在每个渲染区域中生成每个渲染子任务对应的子视图。
在本申请提供的实施例中,沿用上例,在渲染区域Q1中生成安卓***主界面对应的子视图1,在渲染区域Q2中生成时钟控件对应的子视图2,在渲染区域Q3中生成天气控件对应的子视图3,在渲染区域Q4中生成日历控件对应的子视图4。
步骤312:根据图像渲染规则合并每个渲染区域的子视图,生成合并图像。
在本申请提供的实施例中,沿用上例,图像渲染规则中包括子视图合并规则,即安卓主界面在底层,时钟控件、天气控件和日历控件在安卓主界面上层,并从上到下依次排列。根据子视图合并规则将子视图1、子视图2、子视图3和子视图4进行合并,生成合并图像。
步骤314:将所述合并图像渲染至预设画布,生成渲染图像。
在本申请提供的实施例中,沿用上例,将合并图像渲染至安卓主界面对应的画布上,生成安卓视图的渲染图像。
步骤316:将所述渲染图像输出到屏幕显示。
在本申请提供的实施例中,沿用上例,在图像渲染规则中还包括图像输出位置为屏幕,则将生成的安卓视图的渲染图像输出至屏幕进行展示。
本申请提供的图像渲染方法,包括接收图像渲染请求,其中,所述图像渲染请求包括图像渲染规则和至少一个渲染子任务;为每个所述渲染子任务申请分配对应的渲染区域;在每个所述渲染区域中生成每个所述渲染子任务对应的子视图;根据所述图像渲染规则合并每个所述渲染区域的子视图,生成合并图像;将所述合并图像渲染至预设画布,生成渲染图像。通过本申请一实施例实现了对多个子视图灵活合并渲染、可以根据需求将不同的子视图进行合并,既能渲染视图,又能渲染视频、控件等,简化了渲染方式,避免引入第三方资源,减少***资源包体积和***资源调用。
与上述图像渲染方法实施例相对应,本申请还提供了图像渲染装置实施例,图4示出了本申请一实施例提供的一种图像渲染装置的结构示意图。如图4所示,该装置包括:
接收模块402,被配置为接收图像渲染请求,其中,所述图像渲染请求包括图像渲染规则和至少一个渲染子任务;
分配模块404,被配置为每个所述渲染子任务申请分配对应的渲染区域;
生成模块406,被配置为在每个所述渲染区域中生成每个所述渲染子任务对应的子视图;
合并模块408,被配置为根据所述图像渲染规则合并每个所述渲染区域的子视图,生成合并图像;
渲染模块410,被配置为将所述合并图像渲染至预设画布,生成渲染图像。
可选的,所述分配模块404,进一步被配置为:
响应于所述图像渲染请求启动渲染线程;
根据每个所述渲染子任务向所述渲染线程申请每个所述渲染子任务对应的渲染区域;
所述渲染线程为每个渲染子任务分配对应的渲染区域。
可选的,所述分配模块404,进一步被配置为:
为每个渲染子任务分配对应的绘图表面纹理;
在每个所述绘图表面纹理上创建每个渲染子任务对应的绘图表面;
为每个渲染子任务分配每个渲染子任务对应的绘图表面。
可选的,所述渲染区域包括绘图表面;
所述生成模块406,进一步被配置为:
在每个渲染区域的绘图表面生成每个所述渲染子任务对应的子视图。
可选的,所述合并模块408,进一步被配置为:
根据所述图像渲染规则确定子视图合并规则;
根据所述渲染线程和所述子视图合并规则合并每个所述渲染区域的子视图,生成合并图像。
可选的,所述图像渲染规则包括图像输出位置;
所述装置还包括:
输出模块,被配置为输出所述渲染图像至所述图像输出位置。
可选的,所述输出模块,进一步被配置为:
输出所述渲染图像至屏幕;或
输出所述渲染图像至预设的图像缓存区。
本申请提供的图像渲染装置,包括接收图像渲染请求,其中,所述图像渲染请求包括图像渲染规则和至少一个渲染子任务;为每个所述渲染子任务申请分配对应的渲染区域;在每个所述渲染区域中生成每个所述渲染子任务对应的子视图;根据所述图像渲染规则合并每个所述渲染区域的子视图,生成合并图像;将所述合并图像渲染至预设画布,生成渲染图像。通过本申请一实施例实现了对多个子视图灵活合并渲染、可以根据需求将不同的子视图进行合并,既能渲染视图,又能渲染视频、控件等,简化了渲染方式,避免引入第三方资源,减少***资源包体积和***资源调用。
上述为本实施例的一种图像渲染装置的示意性方案。需要说明的是,该图像渲染装置的技术方案与上述的图像渲染方法的技术方案属于同一构思,图像渲染装置的技术方案未详细描述的细节内容,均可以参见上述图像渲染方法的技术方案的描述。
图5示出了根据本申请一实施例提供的一种计算设备500的结构框图。该计算设备500的部件包括但不限于存储器510和处理器520。处理器520与存储器510通过总线530相连接,数据库550用于保存数据。
计算设备500还包括接入设备540,接入设备540使得计算设备500能够经由一个或多个网络560通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备540可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本申请的一个实施例中,计算设备500的上述部件以及图5中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图5所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备500可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备500还可以是移动式或静止式的服务器。
其中,处理器520执行所述计算机指令时实现所述的图像渲染方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的图像渲染方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述图像渲染方法的技术方案的描述。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现如前所述图像渲染方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的图像渲染方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述图像渲染方法的技术方案的描述。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

Claims (10)

1.一种图像渲染方法,其特征在于,包括:
接收图像渲染请求,其中,所述图像渲染请求包括图像渲染规则和至少一个渲染子任务;
为每个所述渲染子任务申请分配对应的渲染区域;
在每个所述渲染区域中生成每个所述渲染子任务对应的子视图;
根据所述图像渲染规则合并每个所述渲染区域的子视图,生成合并图像;
将所述合并图像渲染至预设画布,生成渲染图像。
2.如权利要求1所述的图像渲染方法,其特征在于,为每个所述渲染子任务申请分配对应的渲染区域,包括:
响应于所述图像渲染请求启动渲染线程;
根据每个所述渲染子任务向所述渲染线程申请每个所述渲染子任务对应的渲染区域;
所述渲染线程为每个渲染子任务分配对应的渲染区域。
3.如权利要求2所述的图像渲染方法,其特征在于,所述渲染线程为每个渲染子任务分配对应的渲染区域,包括:
为每个渲染子任务分配对应的绘图表面纹理;
在每个所述绘图表面纹理上创建每个渲染子任务对应的绘图表面;
为每个渲染子任务分配每个渲染子任务对应的绘图表面。
4.如权利要求1所述的图像渲染方法,其特征在于,所述渲染区域包括绘图表面;
在每个所述渲染区域中生成每个所述渲染子任务对应的子视图,包括:
在每个渲染区域的绘图表面生成每个所述渲染子任务对应的子视图。
5.如权利要求2所述的图像渲染方法,其特征在于,根据所述图像渲染规则合并每个所述渲染区域的子视图,生成合并图像,包括:
根据所述图像渲染规则确定子视图合并规则;
根据所述渲染线程和所述子视图合并规则合并每个所述渲染区域的子视图,生成合并图像。
6.如权利要求1-5任意一项所述的图像渲染方法,其特征在于,所述图像渲染规则包括图像输出位置;
在将所述合并图像渲染至预设画布,生成渲染图像之后,所述方法包括:
输出所述渲染图像至所述图像输出位置。
7.如权利要求6所述的图像渲染方法,其特征在于,输出所述渲染图像至所述图像输出位置,包括:
输出所述渲染图像至屏幕;或
输出所述渲染图像至预设的图像缓存区。
8.一种图像渲染装置,其特征在于,包括:
接收模块,被配置为接收图像渲染请求,其中,所述图像渲染请求包括图像渲染规则和至少一个渲染子任务;
分配模块,被配置为每个所述渲染子任务申请分配对应的渲染区域;
生成模块,被配置为在每个所述渲染区域中生成每个所述渲染子任务对应的子视图;
合并模块,被配置为根据所述图像渲染规则合并每个所述渲染区域的子视图,生成合并图像;
渲染模块,被配置为将所述合并图像渲染至预设画布,生成渲染图像。
9.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,其特征在于,所述处理器执行所述计算机指令时实现权利要求1-7任意一项所述方法的步骤。
10.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该计算机指令被处理器执行时实现权利要求1-7任意一项所述方法的步骤。
CN202110339048.5A 2021-03-30 2021-03-30 图像渲染方法及装置 Active CN112950757B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110339048.5A CN112950757B (zh) 2021-03-30 2021-03-30 图像渲染方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110339048.5A CN112950757B (zh) 2021-03-30 2021-03-30 图像渲染方法及装置

Publications (2)

Publication Number Publication Date
CN112950757A true CN112950757A (zh) 2021-06-11
CN112950757B CN112950757B (zh) 2023-03-14

Family

ID=76227462

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110339048.5A Active CN112950757B (zh) 2021-03-30 2021-03-30 图像渲染方法及装置

Country Status (1)

Country Link
CN (1) CN112950757B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113822978A (zh) * 2021-08-31 2021-12-21 北京三快在线科技有限公司 电子地图渲染方法及装置
CN114286115A (zh) * 2021-11-24 2022-04-05 杭州星犀科技有限公司 多路视频的画面显示的控制方法和***
CN114449334A (zh) * 2022-01-29 2022-05-06 上海哔哩哔哩科技有限公司 视频录制方法、装置、电子设备及计算机存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101911125A (zh) * 2008-01-18 2010-12-08 高通股份有限公司 图形处理***中对离屏表面的多重缓冲支持
US20130113833A1 (en) * 2011-11-08 2013-05-09 Alexander Larsson Method and system for rendering images in a remote web browser
CN103247068A (zh) * 2013-04-03 2013-08-14 上海晨思电子科技有限公司 一种渲染方法和装置
KR20180041984A (ko) * 2016-10-17 2018-04-25 삼성전자주식회사 이미지를 렌더링 하는 장치 및 방법
CN108282686A (zh) * 2017-01-18 2018-07-13 广州市动景计算机科技有限公司 视频画面处理方法、装置及电子设备
CN109218802A (zh) * 2018-08-23 2019-01-15 Oppo广东移动通信有限公司 视频处理方法、装置、电子设备及计算机可读介质
CN109767466A (zh) * 2019-01-10 2019-05-17 深圳看到科技有限公司 画面渲染方法、装置、终端及对应的存储介质
CN110147512A (zh) * 2019-05-16 2019-08-20 腾讯科技(深圳)有限公司 播放器预加载、运行方法、装置、设备及介质
CN111340918A (zh) * 2020-03-06 2020-06-26 北京奇艺世纪科技有限公司 动态图生成方法、装置、电子设备及计算机可读存储介质
CN112235626A (zh) * 2020-10-15 2021-01-15 Oppo广东移动通信有限公司 视频渲染方法、装置、电子设备及存储介质
CN112492401A (zh) * 2019-09-11 2021-03-12 腾讯科技(深圳)有限公司 基于视频的互动方法、装置、计算机可读介质及电子设备

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101911125A (zh) * 2008-01-18 2010-12-08 高通股份有限公司 图形处理***中对离屏表面的多重缓冲支持
US20130113833A1 (en) * 2011-11-08 2013-05-09 Alexander Larsson Method and system for rendering images in a remote web browser
CN103247068A (zh) * 2013-04-03 2013-08-14 上海晨思电子科技有限公司 一种渲染方法和装置
KR20180041984A (ko) * 2016-10-17 2018-04-25 삼성전자주식회사 이미지를 렌더링 하는 장치 및 방법
CN108282686A (zh) * 2017-01-18 2018-07-13 广州市动景计算机科技有限公司 视频画面处理方法、装置及电子设备
CN109218802A (zh) * 2018-08-23 2019-01-15 Oppo广东移动通信有限公司 视频处理方法、装置、电子设备及计算机可读介质
CN109767466A (zh) * 2019-01-10 2019-05-17 深圳看到科技有限公司 画面渲染方法、装置、终端及对应的存储介质
CN110147512A (zh) * 2019-05-16 2019-08-20 腾讯科技(深圳)有限公司 播放器预加载、运行方法、装置、设备及介质
CN112492401A (zh) * 2019-09-11 2021-03-12 腾讯科技(深圳)有限公司 基于视频的互动方法、装置、计算机可读介质及电子设备
CN111340918A (zh) * 2020-03-06 2020-06-26 北京奇艺世纪科技有限公司 动态图生成方法、装置、电子设备及计算机可读存储介质
CN112235626A (zh) * 2020-10-15 2021-01-15 Oppo广东移动通信有限公司 视频渲染方法、装置、电子设备及存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113822978A (zh) * 2021-08-31 2021-12-21 北京三快在线科技有限公司 电子地图渲染方法及装置
CN113822978B (zh) * 2021-08-31 2022-12-27 北京三快在线科技有限公司 电子地图渲染方法及装置
CN114286115A (zh) * 2021-11-24 2022-04-05 杭州星犀科技有限公司 多路视频的画面显示的控制方法和***
CN114286115B (zh) * 2021-11-24 2024-04-16 杭州星犀科技有限公司 多路视频的画面显示的控制方法和***
CN114449334A (zh) * 2022-01-29 2022-05-06 上海哔哩哔哩科技有限公司 视频录制方法、装置、电子设备及计算机存储介质

Also Published As

Publication number Publication date
CN112950757B (zh) 2023-03-14

Similar Documents

Publication Publication Date Title
CN112950757B (zh) 图像渲染方法及装置
EP3754490B1 (en) User interface rendering method and apparatus, and terminal
US20220139353A1 (en) Display method, electronic device, and non-transitory computer-readable storage medium
EP4044604A1 (en) Video special effect processing method and apparatus, and electronic device
CN110555895B (zh) 在中排序架构中利用帧间相干性
CN110955499B (zh) 处理器核心配置方法、装置、终端及存储介质
US20220292628A1 (en) Image processing method and apparatus
CN111158866A (zh) 一种引擎***及其渲染方法
CN112529995B (zh) 图像渲染计算方法、装置、存储介质以及终端
CN111737019A (zh) 一种显存资源的调度方法、装置及计算机存储介质
CN113141537A (zh) 视频插帧方法、装置、存储介质以及终端
CN110782387B (zh) 图像处理方法、装置、图像处理器及电子设备
CN110750664A (zh) 图片的显示方法及装置
CN115809106A (zh) 云桌面***与云桌面显示方法、终端设备及存储介质
CN110362375A (zh) 桌面数据的显示方法、装置、设备和存储介质
CN114570020A (zh) 数据处理方法以及***
CN110784739A (zh) 基于ae的视频合成方法及装置
CN113099309A (zh) 视频处理方法及装置
US20100085367A1 (en) Graphics processing method and apparatus implementing window system
CN112749033B (zh) 一种显示设备及***通知调用方法
CN117065357A (zh) 媒体数据处理方法、装置、计算机设备和存储介质
CN112004049B (zh) 双屏异显方法、装置和电子设备
CN113419650A (zh) 一种数据移动方法、装置、存储介质及电子设备
US9705964B2 (en) Rendering multiple remote graphics applications
CN111107425B (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
GR01 Patent grant
GR01 Patent grant