CN111803939B - 图像的渲染方法、装置及电子设备 - Google Patents
图像的渲染方法、装置及电子设备 Download PDFInfo
- Publication number
- CN111803939B CN111803939B CN201910363991.2A CN201910363991A CN111803939B CN 111803939 B CN111803939 B CN 111803939B CN 201910363991 A CN201910363991 A CN 201910363991A CN 111803939 B CN111803939 B CN 111803939B
- Authority
- CN
- China
- Prior art keywords
- rendering
- image
- component
- preset
- assembly
- 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.)
- Active
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Image Generation (AREA)
Abstract
本申请提供了一种图像的渲染方法、装置、电子设备及计算机可读存储介质,涉及图像处理领域。该方法包括:当接收到至少一帧待渲染的图像时,调用预置的第一渲染组件;所述第一渲染组件包括至少一个预置的第二渲染组件,每个第二渲染组件包括至少一个第三渲染组件;依据预置的渲染脚本,采用所述各个第二渲染组件以及各个第三渲染组件,依次对各帧图像进行渲染。本发明实施例将图像渲染的通用代码封装成不同的组件,渲染的流程就是不同组件按照渲染脚本对图像进行渲染,大大减少了用户的工作量。
Description
技术领域
本申请涉及图像处理技术领域,具体而言,本申请涉及一种图像的渲染方法、装置及电子设备。
背景技术
随着科技的发展,终端设备越来越智能化,用户可以在终端设备上玩各种各样的游戏。通常来说,游戏可以分为两大类:网页游戏和客户端游戏,网页游戏为基于浏览器运行的游戏,客户端游戏为基于独立客户端运行的游戏。不管是网页游戏还是客户端游戏,都需要对游戏的画面进行渲染。
现有技术中,因为渲染的逻辑复杂、需求多样化,没有办法总结出通用的渲染逻辑,所以整个渲染流程的代码都是人为编写的,也就是说,渲染流程的代码都是固化的,这样很难进行后期维护和修改,而且,第三方用户如果需要根据自身项目需求重新实现一套需求的渲染流程,则需要对代码进行大量修改,甚至重写,十分繁琐。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一,特提出以下技术方案:
第一方面,提供了一种图像的渲染方法,包括:
当接收到至少一帧待渲染的图像时,调用预置的第一渲染组件;所述第一渲染组件包括至少一个预置的第二渲染组件,每个第二渲染组件包括至少一个第三渲染组件;
依据预置的渲染脚本,采用所述各个第二渲染组件以及各个第三渲染组件,依次对各帧图像进行渲染。
优选地,所述预置的渲染脚本包括:对图像进行渲染时,各个第二渲染组件执行渲染的顺序,以及每个第二渲染组件中各个第三渲染组件执行渲染的顺序。
优选地,所述各帧图像分别包括多种特效,所述各个第二渲染组件分别用于渲染对应的特效;
所述方法还包括:
当检测到待渲染的图像中的至少一个特效,且缺少对应的第二渲染组件进行渲染时,从预置的第二渲染组件库中获取相应的各个第二渲染组件;
将获取的各个第二渲染组件添加至所述第一渲染组件,生成更新后的第一渲染组件;
基于获取的各个第二渲染组件,更新所述渲染脚本,生成更新后的第一渲染脚本;
依据所述更新后的第一渲染脚本,采用所述更新后的第一渲染组件,依次对各帧图像进行渲染。
优选地,所述方法还包括:
针对每一帧图像,获取第一渲染组件、各个第二渲染组件,以及各个第三渲染组件的资源消耗信息;
将第一渲染组件、各个第二渲染组件,以及各个第三渲染组件的资源消耗信息在通过预置的可视化界面中进行展示。
优选地,所述方法还包括:
当所述资源消耗超过消耗阈值时,对当前的渲染脚本进行修改,生成更新后的第二渲染脚本;所述第二渲染脚本具有对应的至少一个第二渲染组件,和至少一个第三渲染组件;
依据所述第二渲染脚本,采用各个第二渲染组件以及各个第三渲染组件,依次对各帧图像进行渲染。
优选地,所述从预置的第二渲染组件库中获取相应的各个第二渲染组件的步骤包括:
当接收用户通过预置的可视化界面发起的获取指令时,依据所述获取指令从预置的第二渲染组件库中获取相应的各个第二渲染组件;
所述将获取的各个第二渲染组件添加至所述第一渲染组件,生成更新后的第一渲染组件的步骤,包括:
当接收用户通过预置的可视化界面发起的添加指令时,依据所述添加指令将获取的各个第二渲染组件添加至所述第一渲染组件,生成更新后的第一渲染组件。
第二方面,提供了一种图像的渲染装置,包括:
接收模块,用于接收至少一帧待渲染的图像;
调用模块,用于调用预置的第一渲染组件;所述第一渲染组件包括至少一个预置的第二渲染组件,每个第二渲染组件包括至少一个第三渲染组件;
渲染模块,用于依据预置的渲染脚本,采用所述各个第二渲染组件以及各个第三渲染组件,依次对各帧图像进行渲染。
优选地,所述预置的渲染脚本包括:对图像进行渲染时,各个第二渲染组件执行渲染的顺序,以及每个第二渲染组件中各个第三渲染组件执行渲染的顺序。
优选地,所述各帧图像分别包括多种特效,所述各个第二渲染组件分别用于渲染对应的特效;
所述装置还包括:
组件获取模块,用于当检测到待渲染的图像中的至少一个特效,且缺少对应的第二渲染组件进行渲染时,从预置的第二渲染组件库中获取相应的各个第二渲染组件;
组件生成模块,用于将获取的各个第二渲染组件添加至所述第一渲染组件,生成更新后的第一渲染组件;
渲染脚本生成模块,用于基于获取的各个第二渲染组件,更新所述渲染脚本,生成更新后的第一渲染脚本;
所述渲染模块,还用于依据所述更新后的第一渲染脚本,采用所述更新后的第一渲染组件,依次对各帧图像进行渲染。
优选地,所述装置还包括:
资源消耗信息获取模块,用于针对每一帧图像,获取第一渲染组件、各个第二渲染组件,以及各个第三渲染组件的资源消耗信息;
展示模块,用于将第一渲染组件、各个第二渲染组件,以及各个第三渲染组件的资源消耗信息在通过预置的可视化界面中进行展示。
优选地,所述装置还包括:
修改模块,用于当所述资源消耗超过消耗阈值时,对当前的渲染脚本进行修改,生成更新后的第二渲染脚本;所述第二渲染脚本具有对应的至少一个第二渲染组件,和至少一个第三渲染组件;
所述渲染模块,还用于依据所述第二渲染脚本,采用各个第二渲染组件以及各个第三渲染组件,依次对各帧图像进行渲染。
优选地,所述组件获取模块具体用于:当接收用户通过预置的可视化界面发起的获取指令时,依据所述获取指令从预置的第二渲染组件库中获取相应的各个第二渲染组件;
所述组件生成模块具体用于:当接收用户通过预置的可视化界面发起的添加指令时,依据所述添加指令将获取的各个第二渲染组件添加至所述第一渲染组件,生成更新后的第一渲染组件。
第三方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述程序时实现上述的图像的渲染方法。
第四方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述的图像的渲染方法。
在本发明实施例中,当接收到至少一帧待渲染的图像时,调用预置的第一渲染组件,其中,第一渲染组件包括至少一个预置的第二渲染组件,每个第二渲染组件包括至少一个第三渲染组件;并依据预置的渲染脚本,采用各个第二渲染组件以及各个第三渲染组件,依次对各帧图像进行渲染。这样,将图像渲染的通用代码封装成不同的组件,渲染的流程就是不同组件按照渲染脚本对图像进行渲染,大大减少了用户的工作量。
同时,因为采用了组件的形式,用户通过修改渲染脚本即可调整渲染流程、增加或减少组件,不需要重新编写整个渲染流程的代码,实现了组件的动态热插拔,不仅提高了渲染效果,而且,针对各个组件的维护和修正,相较于整个渲染流程的代码的维护和修正,更加容易。
本申请附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例的图像的渲染方法的流程示意图;
图2为本申请实施例的第一渲染组件、第二渲染组件、第三渲染组件的结构示意图;
图3为本申请实施例的图像的渲染装置的基本结构示意图;
图4为本申请实施例的电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
本申请实施例提供了一种图像的渲染方法,如图1所示,包括:
步骤S110,当接收到至少一帧待渲染的图像时,调用预置的第一渲染组件;所述第一渲染组件包括至少一个预置的第二渲染组件,每个第二渲染组件包括至少一个第三渲染组件;
具体而言,第一渲染组件可以为pipeline,第二渲染组件可以为flow,第三渲染组件可以为stage,每个pipeline包括若干个flow,每个flow包括若干stage,三层组件合起来称为PRP(programmable rendering pipeline,可编程渲染流水线),该PRP可以应用于终端中的浏览器中,对基于浏览器的小游戏的图像进行渲染,也可以应用于终端中的第三方游戏客户端中,对第三方游戏的图像进行渲染,该终端可以具有如下特点:
(1)在硬件体系上,设备具备中央处理器、存储器、输入部件和输出部件,也就是说,设备往往是具备通信功能的微型计算机设备。另外,还可以具有多种输入方式,诸如键盘、鼠标、触摸屏、送话器和摄像头等,并可以根据需要进行调整输入。同时,设备往往具有多种输出方式,如受话器、显示屏等,也可以根据需要进行调整;
(2)在软件体系上,设备必须具备操作系统,如Windows Mobile、Symbian、Palm、Android、iOS等。同时,这些操作系统越来越开放,基于这些开放的操作系统平台开发的个性化应用程序层出不穷,如通信簿、日程表、记事本、计算器以及各类游戏等,极大程度地满足了个性化用户的需求;
(3)在通信能力上,设备具有灵活的接入方式和高带宽通信性能,并且能根据所选择的业务和所处的环境,自动调整所选的通信方式,从而方便用户使用。设备可以支持GSM(Global System for Mobile Communication,全球移动通信系统)、WCDMA(Wideband CodeDivision Multiple Access,宽带码分多址)、CDMA2000(Code Division MultipleAccess,码分多址)、TDSCDMA(Time Division-Synchronous Code Division MultipleAccess,时分同步码分多址)、Wi-Fi(Wireless-Fidelity,无线保真)以及WiMAX(WorldwideInteroperability for Microwave Access,全球微波互联接入)等,从而适应多种制式网络,不仅支持语音业务,更支持多种无线数据业务;
(4)在功能使用上,设备更加注重人性化、个性化和多功能化。随着计算机技术的发展,设备从“以设备为中心”的模式进入“以人为中心”的模式,集成了嵌入式计算、控制技术、人工智能技术以及生物认证技术等,充分体现了以人为本的宗旨。由于软件技术的发展,设备可以根据个人需求调整设置,更加个性化。同时,设备本身集成了众多软件和硬件,功能也越来越强大。
在发明一种优选实施例中,各帧图像的渲染分别包括多种特效,所述各个第二渲染组件分别用于渲染对应的特效。具体地,针对一帧图像,一个pipeline对应于一帧图像的渲染,一个flow只渲染一帧图像中的一个效果,即,当一帧图像的渲染包括多个特效时,需要多个对应的flow进行渲染,每种特效对应一个flow,而stage对应于一个特效(flow)中渲染的一个单位,当某个特效需要渲染多次时,每次渲染对应一个stage。比如,待渲染的某一帧图像包括多个特效,包括:自发光特效、光照特效、光晕特效,那么就需要渲染自发光特效的flow,光照特效的flow,以及光晕特效的flow,对于光晕特效,需要渲染多次,所以光晕特效的flow包括多个stage。
也就是说,在实际应用中,针对一帧图像,对应一个pipeline,一个pipeline包括至少一个flow,每个flow可以包括至少一个stage,也可以不包括stage,如图2所示。
进一步,在进行图像渲染之前,可以基于所有图像中包括的所有特效,预先设置好pipeline包括的flow的种类、数量,每个flow包括的stage的数量,这样,在进行图像渲染的时候,针对特效采用对应的flow进行渲染即可。
步骤S120,依据预置的渲染脚本,采用所述各个第二渲染组件以及各个第三渲染组件,依次对各帧图像进行渲染。
在本发明一种优选实施例中,所述预置的渲染脚本包括:对图像进行渲染时,各个第二渲染组件执行渲染的顺序,以及每个第二渲染组件中各个第三渲染组件执行渲染的顺序。
例如,渲染某一帧图像,需要三个flow:flow 1、flow 2、flow 3,flow3包括stage1、stage 2,但是在进行渲染时,三个flow执行渲染的顺序为flow 3、flow 1、flow 2,两个stage执行渲染的顺序为stage 2、stage 1,那么,flow和stage的执行顺序就是在渲染脚本中预先配置好的。
在实际应用中,对每帧图像进行渲染的时候,按照渲染脚本依次调用各个flow和stage即可。
在本发明一种优选实施例中,所述方法还包括:
当检测到待渲染的图像中的至少一个特效,且缺少对应的第二渲染组件进行渲染时,从预置的第二渲染组件库中获取相应的各个第二渲染组件;
将获取的各个第二渲染组件添加至所述第一渲染组件,生成更新后的第一渲染组件;
基于获取的各个第二渲染组件,更新所述渲染脚本,生成更新后的第一渲染脚本;
依据所述更新后的第一渲染脚本,采用所述更新后的第一渲染组件,依次对各帧图像进行渲染。
具体而言,每种渲染特效都有对应的特效标识,每种标识对应一种flow,在对图像进行渲染时,如果检测到待渲染的图像中存在至少一种特效标识,而且当前没有对应的flow进行渲染时,可以从预置的flow库中获取对应的flow,并添加至pipeline,生成更新后的pipeline。
相应的,因为添加了新的flow,所以,还需要对渲染脚本进行更新,不然新的flow依然不会执行渲染。在实际应用中,可以预先配置好多个不同的渲染脚本,每个渲染脚本包括不同的flow,比如,渲染脚本A包括flow 1、flow 2、flow 3,以及各个flow的执行顺序;渲染脚本B包括flow 1、flow 2、flow 3、flow 4,以及各个flow的执行顺序,这样在更新渲染脚本的时候获取对应的新的渲染脚本,并采用新的渲染脚本替换旧的渲染脚本即可。或者,也可以通过管理员修改当前渲染脚本的方式,来更新渲染脚本。当然,采用其它的方式来更新渲染脚本也适用于本发明实施例,本发明实施例对此不作限制。
进一步,如果新添加的flow中包括多个stage,那么更新后的第一渲染脚本中,也会包括各个stage的执行顺序。
当pipeline和渲染脚本都更新完成后,就可以依据更新后的渲染脚本,采用更新后的pipeline对各帧图像进行渲染了。
进一步,开发人员可以预先编写好多种类型的flow,并存储在预置的第二渲染组件库中,这样,在渲染的过程中,缺少相应的flow时候,就可以直接从第二渲染组件库中获取。而且,当开发人员编写出新的类型的flow时,可以将新编写的flow存储至第二渲染组件库中,或者对已有的flow进行更新时,可以直接对该flow进行修改,也可以采用该flow的新版本来替换第二渲染组件库中的旧版本。
在本发明一种优选实施例中,所述从预置的第二渲染组件库中获取相应的各个第二渲染组件的步骤包括:
当接收用户通过预置的可视化界面发起的获取指令时,依据所述获取指令从预置的第二渲染组件库中获取相应的各个第二渲染组件;
所述将获取的各个第二渲染组件添加至所述第一渲染组件,生成更新后的第一渲染组件的步骤,包括:
当接收用户通过预置的可视化界面发起的添加指令时,依据所述添加指令将获取的各个第二渲染组件添加至所述第一渲染组件,生成更新后的第一渲染组件。
具体而言,本发明实施例可以提供可视化的编辑界面,用户可以在界面中查看当前的pipeline包括哪些flow,各个flow包括哪些stage,当需要从预置的flow库中获取flow时,用户可以通过在编辑界面中输入获取命令来获取相应的flow,然后在编辑界面中输入添加指令,将获取到的flow添加至pipeline。或者,用户也可以采用拖拽的方式,将相应的flow直接从预置的flow库中拖拽至pipeline中。这样,各个flow以组件形式实现了动态热插拔,用户不需要手动编写flow对应的代码,对于用户来说非常便利。
在本发明一种优选实施例中,所述方法还包括:
针对每一帧图像,获取第一渲染组件、各个第二渲染组件,以及各个第三渲染组件的资源消耗信息;
将第一渲染组件、各个第二渲染组件,以及各个第三渲染组件的资源消耗信息在通过预置的可视化界面中进行展示;当所述资源消耗超过消耗阈值时,对当前的渲染脚本进行修改,生成更新后的第二渲染脚本;所述第二渲染脚本具有对应的至少一个第二渲染组件,和至少一个第三渲染组件;
依据所述第二渲染脚本,采用各个第二渲染组件以及各个第三渲染组件,依次对各帧图像进行渲染。
具体而言,每个flow和stage组件会提供具体的渲染消耗时间、DrawCall数量、三角面渲染数量等参数,根据这些参数用户可以直观的通过三层组件去分析每一渲染帧的瓶颈,统计每个步骤的耗时,确定渲染瓶颈,并将渲染用时通过图像化的方式在可视化界面中呈现给用户,提高了用户定位分析性能瓶颈的便捷性,使得用户可以更加快捷地对渲染脚本进行修改,从而提升渲染性能。
在本发明实施例中,当接收到至少一帧待渲染的图像时,调用预置的第一渲染组件,其中,第一渲染组件包括至少一个预置的第二渲染组件,每个第二渲染组件包括至少一个第三渲染组件;并依据预置的渲染脚本,采用各个第二渲染组件以及各个第三渲染组件,依次对各帧图像进行渲染。这样,将图像渲染的通用代码封装成不同的组件,渲染的流程就是不同组件按照渲染脚本对图像进行渲染,大大减少了用户的工作量。
同时,因为采用了组件的形式,用户通过修改渲染脚本即可调整渲染流程、增加或减少组件,不需要重新编写整个渲染流程的代码,实现了组件的动态热插拔,不仅提高了渲染效果,而且,针对各个组件的维护和修正,相较于整个渲染流程的代码的维护和修正,更加容易。
图3为本申请实施例提供的一种图像的渲染装置的基本结构示意图,如图3所示,该装置包括:
接收模块301,用于接收至少一帧待渲染的图像;
调用模块302,用于调用预置的第一渲染组件;所述第一渲染组件包括至少一个预置的第二渲染组件,每个第二渲染组件包括至少一个第三渲染组件;
渲染模块303,用于依据预置的渲染脚本,采用所述各个第二渲染组件以及各个第三渲染组件,依次对各帧图像进行渲染。
在本发明一种优选实施例中,所述预置的渲染脚本包括:对图像进行渲染时,各个第二渲染组件执行渲染的顺序,以及每个第二渲染组件中各个第三渲染组件执行渲染的顺序。
在本发明一种优选实施例中,所述各帧图像分别包括多种特效,所述各个第二渲染组件分别用于渲染对应的特效;
所述装置还包括:
组件获取模块,用于当检测到待渲染的图像中的至少一个特效,且缺少对应的第二渲染组件进行渲染时,从预置的第二渲染组件库中获取相应的各个第二渲染组件;
组件生成模块,用于将获取的各个第二渲染组件添加至所述第一渲染组件,生成更新后的第一渲染组件;
渲染脚本生成模块,用于基于获取的各个第二渲染组件,更新所述渲染脚本,生成更新后的第一渲染脚本;
所述渲染模块,还用于依据所述更新后的第一渲染脚本,采用所述更新后的第一渲染组件,依次对各帧图像进行渲染。
在本发明一种优选实施例中,所述装置还包括:
资源消耗信息获取模块,用于针对每一帧图像,获取第一渲染组件、各个第二渲染组件,以及各个第三渲染组件的资源消耗信息;
展示模块,用于将第一渲染组件、各个第二渲染组件,以及各个第三渲染组件的资源消耗信息在通过预置的可视化界面中进行展示。
在本发明一种优选实施例中,所述装置还包括:
修改模块,用于当所述资源消耗超过消耗阈值时,对当前的渲染脚本进行修改,生成更新后的第二渲染脚本;所述第二渲染脚本具有对应的至少一个第二渲染组件,和至少一个第三渲染组件;
所述渲染模块,还用于依据所述第二渲染脚本,采用各个第二渲染组件以及各个第三渲染组件,依次对各帧图像进行渲染。
在本发明一种优选实施例中,所述组件获取模块具体用于:当接收用户通过预置的可视化界面发起的获取指令时,依据所述获取指令从预置的第二渲染组件库中获取相应的各个第二渲染组件;
所述组件生成模块具体用于:当接收用户通过预置的可视化界面发起的添加指令时,依据所述添加指令将获取的各个第二渲染组件添加至所述第一渲染组件,生成更新后的第一渲染组件。
需要说明的是,本实施例为与实施例一(即方法项实施例)相对应的装置项实施例,本实施例可与实施例一互相配合实施。实施例一中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第一实施例中。
本申请实施例提供了一种电子设备,如图4所示,图4所示的电子设备400包括:处理器401和存储器403。其中,处理器401和存储器403相连,如通过总线402相连。进一步地,电子设备400还可以包括收发器404。需要说明的是,实际应用中收发器404不限于一个,该电子设备400的结构并不构成对本申请实施例的限定。
其中,处理器401应用于本申请实施例中,用于实现图3所示的接收模块、调用模块与渲染模块的功能。
处理器401可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器401也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线402可包括一通路,在上述组件之间传送信息。总线402可以是PCI总线或EISA总线等。总线402可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器403可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器403用于存储执行本申请方案的应用程序代码,并由处理器401来控制执行。处理器401用于执行存储器403中存储的应用程序代码,以实现图3所示实施例提供的图像的渲染装置的动作。
本申请实施例提供的电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,与现有技术相比,可实现:当接收到至少一帧待渲染的图像时,调用预置的第一渲染组件,其中,第一渲染组件包括至少一个预置的第二渲染组件,每个第二渲染组件包括至少一个第三渲染组件;并依据预置的渲染脚本,采用各个第二渲染组件以及各个第三渲染组件,依次对各帧图像进行渲染。这样,将图像渲染的通用代码封装成不同的组件,渲染的流程就是不同组件按照渲染脚本对图像进行渲染,大大减少了用户的工作量。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现实施例一所示的方法。与现有技术相比,当接收到至少一帧待渲染的图像时,调用预置的第一渲染组件,其中,第一渲染组件包括至少一个预置的第二渲染组件,每个第二渲染组件包括至少一个第三渲染组件;并依据预置的渲染脚本,采用各个第二渲染组件以及各个第三渲染组件,依次对各帧图像进行渲染。这样,将图像渲染的通用代码封装成不同的组件,渲染的流程就是不同组件按照渲染脚本对图像进行渲染,大大减少了用户的工作量。
本申请实施例提供的计算机可读存储介质适用于上述方法的任一实施例。在此不再赘述。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种图像的渲染方法,其特征在于,包括:
当接收到至少一帧待渲染的图像时,调用预置的第一渲染组件;所述第一渲染组件包括至少一个预置的第二渲染组件,每个第二渲染组件包括至少一个第三渲染组件;
依据预置的渲染脚本,采用所述各个第二渲染组件以及各个第三渲染组件,依次对各帧图像进行渲染;所述各帧图像分别包括多种特效,所述各个第二渲染组件分别用于渲染对应的特效;
当检测到待渲染的图像中的至少一个特效,且缺少对应的第二渲染组件进行渲染时,从预置的第二渲染组件库中获取相应的各个第二渲染组件;
基于各个第二渲染组件和所述第一渲染组件依次对各帧图像进行渲染。
2.根据权利要求1所述的图像的渲染方法,其特征在于,所述预置的渲染脚本包括:对图像进行渲染时,各个第二渲染组件执行渲染的顺序,以及每个第二渲染组件中各个第三渲染组件执行渲染的顺序。
3.根据权利要求1所述的图像的渲染方法,其特征在于,所述基于各个第二渲染组件和所述第一渲染组件依次对各帧图像进行渲染,包括:
将获取的各个第二渲染组件添加至所述第一渲染组件,生成更新后的第一渲染组件;
基于获取的各个第二渲染组件,更新所述渲染脚本,生成更新后的第一渲染脚本;
依据所述更新后的第一渲染脚本,采用所述更新后的第一渲染组件,依次对各帧图像进行渲染。
4.根据权利要求1至3任一所述的图像的渲染方法,其特征在于,所述方法还包括:
针对每一帧图像,获取第一渲染组件、各个第二渲染组件,以及各个第三渲染组件的资源消耗信息;
将第一渲染组件、各个第二渲染组件,以及各个第三渲染组件的资源消耗信息在通过预置的可视化界面中进行展示。
5.根据权利要求4所述的图像的渲染方法,其特征在于,所述方法还包括:
当所述资源消耗超过消耗阈值时,对当前的渲染脚本进行修改,生成更新后的第二渲染脚本;所述第二渲染脚本具有对应的至少一个第二渲染组件,和至少一个第三渲染组件;
依据所述第二渲染脚本,采用各个第二渲染组件以及各个第三渲染组件,依次对各帧图像进行渲染。
6.根据权利要求3所述的图像的渲染方法,其特征在于,所述从预置的第二渲染组件库中获取相应的各个第二渲染组件的步骤包括:
当接收用户通过预置的可视化界面发起的获取指令时,依据所述获取指令从预置的第二渲染组件库中获取相应的各个第二渲染组件;
所述将获取的各个第二渲染组件添加至所述第一渲染组件,生成更新后的第一渲染组件的步骤,包括:
当接收用户通过预置的可视化界面发起的添加指令时,依据所述添加指令将获取的各个第二渲染组件添加至所述第一渲染组件,生成更新后的第一渲染组件。
7.一种图像的渲染装置,其特征在于,包括:
接收模块,用于接收至少一帧待渲染的图像;
调用模块,用于调用预置的第一渲染组件;所述第一渲染组件包括至少一个预置的第二渲染组件,每个第二渲染组件包括至少一个第三渲染组件;
渲染模块,用于依据预置的渲染脚本,采用所述各个第二渲染组件以及各个第三渲染组件,依次对各帧图像进行渲染;所述各帧图像分别包括多种特效,所述各个第二渲染组件分别用于渲染对应的特效;当检测到待渲染的图像中的至少一个特效,且缺少对应的第二渲染组件进行渲染时,从预置的第二渲染组件库中获取相应的各个第二渲染组件;基于各个第二渲染组件和所述第一渲染组件依次对各帧图像进行渲染。
8.根据权利要求7所述的图像的渲染装置,其特征在于,所述预置的渲染脚本包括:对图像进行渲染时,各个第二渲染组件执行渲染的顺序,以及每个第二渲染组件中各个第三渲染组件执行渲染的顺序。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-6任一项所述的图像的渲染方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现权利要求1-6任一项所述的图像的渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910363991.2A CN111803939B (zh) | 2019-04-30 | 2019-04-30 | 图像的渲染方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910363991.2A CN111803939B (zh) | 2019-04-30 | 2019-04-30 | 图像的渲染方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111803939A CN111803939A (zh) | 2020-10-23 |
CN111803939B true CN111803939B (zh) | 2023-03-31 |
Family
ID=72844135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910363991.2A Active CN111803939B (zh) | 2019-04-30 | 2019-04-30 | 图像的渲染方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111803939B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104765604A (zh) * | 2015-03-20 | 2015-07-08 | 福建天晴数码有限公司 | Dx渲染引擎嵌入到另一dx渲染引擎的方法和装置 |
CN104850388A (zh) * | 2014-02-13 | 2015-08-19 | 腾讯科技(深圳)有限公司 | 网页绘制方法及装置 |
KR101642946B1 (ko) * | 2015-01-16 | 2016-07-26 | 네이버 주식회사 | 만화 데이터 생성 장치, 방법, 컴퓨터 프로그램 및 만화 데이터 표시 장치 |
CN107315580A (zh) * | 2017-04-17 | 2017-11-03 | 阿里巴巴集团控股有限公司 | 用户界面的组件处理方法、装置及设备、可读介质 |
CN108694738A (zh) * | 2017-04-01 | 2018-10-23 | 英特尔公司 | 去耦的多层渲染频率 |
-
2019
- 2019-04-30 CN CN201910363991.2A patent/CN111803939B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104850388A (zh) * | 2014-02-13 | 2015-08-19 | 腾讯科技(深圳)有限公司 | 网页绘制方法及装置 |
KR101642946B1 (ko) * | 2015-01-16 | 2016-07-26 | 네이버 주식회사 | 만화 데이터 생성 장치, 방법, 컴퓨터 프로그램 및 만화 데이터 표시 장치 |
CN104765604A (zh) * | 2015-03-20 | 2015-07-08 | 福建天晴数码有限公司 | Dx渲染引擎嵌入到另一dx渲染引擎的方法和装置 |
CN108694738A (zh) * | 2017-04-01 | 2018-10-23 | 英特尔公司 | 去耦的多层渲染频率 |
CN107315580A (zh) * | 2017-04-17 | 2017-11-03 | 阿里巴巴集团控股有限公司 | 用户界面的组件处理方法、装置及设备、可读介质 |
Non-Patent Citations (2)
Title |
---|
关于微信小程序多层嵌套渲染列表以及嵌套列表中数据的获取;weixin_33858336;《https://blog.csdn.net/weixin_33858336/article/details/88730407》;20181023;第1-2页 * |
渲染元素和组件;ZMJun;《https://www.jianshu.com/p/77430f714ab4》;20170627;第1-7页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111803939A (zh) | 2020-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103914450A (zh) | 移动终端平台中网页图片呈现方法和装置 | |
CN108496198B (zh) | 一种图像处理方法及设备 | |
CN108965471B (zh) | 一种智能电视上浏览器内存改善方法 | |
CN104281478B (zh) | 更新应用程序的方法及装置 | |
CN105718313A (zh) | 应用操作方法和装置 | |
CN104461746B (zh) | 一种基于Android系统的内存空间优化方法及系统 | |
CN106325854B (zh) | 一种基于Groovy的规则引擎系统 | |
CN107239309B (zh) | 补丁生成方法及装置、更新方法、电子设备、存储介质 | |
CN110874217A (zh) | 快应用的界面显示方法、装置及存储介质 | |
CN104052769B (zh) | 一种对移动终端应用包含的资源更新的方法、装置和系统 | |
US20200258195A1 (en) | Image Processing Method and Device | |
CN111951356B (zh) | 基于json数据格式的动画渲染方法 | |
CN109271255A (zh) | 资源调度方法、系统及电子设备和存储介质 | |
CN107179903B (zh) | 用于使用模型驱动开发来开发基于移动的应用的系统和方法 | |
CN109683889B (zh) | 消息展示框的复用方法、装置、电子设备及可读存储介质 | |
CN105847319A (zh) | 一种移动终端网络请求方法及系统 | |
CN107807831A (zh) | 应用程序中的业务执行方法、装置、终端及存储介质 | |
CN110825373B (zh) | 一种移动端动态化方法及装置 | |
CN111803939B (zh) | 图像的渲染方法、装置及电子设备 | |
CN109558187A (zh) | 一种用户界面渲染方法及装置 | |
CN111443945B (zh) | 组件代码修改方法及设备 | |
CN111506393A (zh) | 一种基于arm的虚拟化装置及其使用方法 | |
CN116149768A (zh) | 一种应用图标的显示方法、装置、储存介质及车机平台 | |
CN115562807A (zh) | 一种在kubernetes环境下为安卓容器挂载动态设备的方法及系统 | |
CN105224295A (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 |