CN110443880B - 图像渲染方法、装置、存储介质及电子设备 - Google Patents

图像渲染方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN110443880B
CN110443880B CN201910731564.5A CN201910731564A CN110443880B CN 110443880 B CN110443880 B CN 110443880B CN 201910731564 A CN201910731564 A CN 201910731564A CN 110443880 B CN110443880 B CN 110443880B
Authority
CN
China
Prior art keywords
rendering
node
processing
rendering data
nodes
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
Application number
CN201910731564.5A
Other languages
English (en)
Other versions
CN110443880A (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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201910731564.5A priority Critical patent/CN110443880B/zh
Publication of CN110443880A publication Critical patent/CN110443880A/zh
Application granted granted Critical
Publication of CN110443880B publication Critical patent/CN110443880B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请实施例公开了一种图像渲染方法、装置、存储介质及电子设备,其中,本申请实施例通过获取节点树中的节点,并对节点进行节点劫持处理;对节点进行矩阵转换,以得到渲染数据;调取渲染数据中的图形渲染数据,并响应节点劫持处理以切换至底层编程语言框架;通过底层编程语言框架对图形渲染数据进行多线程计算和渲染。以此可以对节点树中的节点进行劫持处理,根据该劫持处理切换至底层编程语言框架对需要进行大量数据计算的图形渲染数据进行多线程计算和渲染,极大的提升了图像渲染效率。

Description

图像渲染方法、装置、存储介质及电子设备
技术领域
本申请涉及信息处理技术领域,尤其涉及一种图像渲染方法、装置、存储介质及电子设备。
背景技术
在运行游戏等具有图形绘制要求的应用程序时,电子设备如智能手机等需要根据图形绘制指令调用相应的直译式脚本语言进行图形绘制,以最终绘制出对应的图形化界面,例如游戏界面等。
目前,在进行游戏界面的图形绘制时,电子设备会调用直译式脚本语言对图形绘制指令中的数据进行运算和遍历,由于游戏页面的渲染方式和页面的频繁变化,所以需要对大量的数据进行实时运算和实时遍历,而直译式脚本语言的线程为单一线程,会导致电子设备出现卡顿现象。
发明内容
本申请实施例提供一种图像渲染方法、装置、存储介质及电子设备,可以提升图像渲染效率。
第一方面,本申请实施例了提供了一种图像渲染方法,包括:
获取节点树中的节点,并对所述节点进行节点劫持处理;
对所述节点进行矩阵转换,以得到渲染数据;
调取所述渲染数据中的图形渲染数据,并响应所述节点劫持处理以切换至底层编程语言框架,所述底层编程语言框架具有多线程处理功能;
通过所述底层编程语言框架对所述图形渲染数据进行多线程计算和渲染。
第二方面,本申请实施例了提供了的一种图像渲染装置,包括:
处理单元,用于获取节点树中的节点,并对所述节点进行节点劫持处理;
转换单元,用于对所述节点进行矩阵转换,以得到渲染数据;
切换单元,用于调取所述渲染数据中的图形渲染数据,并响应所述节点劫持处理以切换至底层编程语言框架,所述底层编程语言框架具有多线程处理功能;
渲染单元,用于通过所述底层编程语言框架对所述图形渲染数据进行多线程计算和渲染。
第三方面,本申请实施例提供的存储介质,其上存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如本申请任一实施例提供的图像渲染方法。
第四方面,本申请实施例提供的电子设备,包括处理器和存储器,所述存储器有计算机程序,所述处理器通过调用所述计算机程序,用于执行如本申请任一实施例提供的图像渲染方法。
本申请实施例通过获取节点树中的节点,并对节点进行节点劫持处理;对节点进行矩阵转换,以得到渲染数据;调取渲染数据中的图形渲染数据,并响应节点劫持处理以切换至底层编程语言框架;通过底层编程语言框架对图形渲染数据进行多线程计算和渲染。以此可以对节点树中的节点进行劫持处理,根据该劫持处理切换至底层编程语言框架对需要进行大量数据计算的图形渲染数据进行多线程计算和渲染,极大的提升了图像渲染效率。
附图说明
下面结合附图,通过对本申请的具体实施方式详细描述,将使本申请的技术方案及其它有益效果显而易见。
图1为本发明实施例所提供电子设备运行的系统架构图。
图2是本申请实施例提供的图像渲染方法的流程示意图。
图3为本申请实施例提供的图像渲染方法的另一流程示意图。
图4为本申请实施例提供的图像渲染装置的模块示意图。
图5为本申请实施例提供的图像渲染装置的另一模块示意图。
图6为本申请实施例提供的电子设备的结构示意图。
图7为本申请实施例提供的电子设备的另一结构示意图。
具体实施方式
请参照图式,其中相同的组件符号代表相同的组件,本申请的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本申请具体实施例,其不应被视为限制本申请未在此详述的其它具体实施例。
本文所使用的术语「模块」可看做为在该运算系统上执行的软件对象。本文该的不同组件、模块、引擎及服务可看做为在该运算系统上的实施对象。而本文该的装置及方法优选的以软件的方式进行实施,当然也可在硬件上进行实施,均在本申请保护范围之内。
请参阅图1,图1为本发明实施例所提供电子设备运行的系统架构图,该系统架构为安卓(Android)系统架构,在一实施方式中,该系统架构还可以为苹果(iphoneOperating System,IOS)系统框架等。该安卓系统架构是安卓系统的体系结构,安卓的系统架构和其操作系统一样,采用了分层的架构,共分为四层,从高到低分别是安卓应用层(Application),安卓应用框架层(Application Framework),安卓系统运行层和Linux内核层。
应用层:应用是用java语言编写的运行在虚拟机上的程序,比如桌面负一屏应用、摄像机应用、Email客户端、SMS短消息程序以及日历等,该桌面负一屏应用的功能很强大,可以用于搜索电子设备中的应用,也可以推荐本机常用的应用程序等等。
应用框架层:这一层是编写谷歌(Google)发布的核心应用时所使用的应用程序编程接口(Application Programming Interface,API)框架,开发人员同样可以使用这些框架来开发自己的应用,这样便简化了程序开发的结构设计,但是必须要遵守其框架的开发原则。
系统运行库(C/C++库以及安卓运行库)层:当使用安卓应用框架时,安卓系统会通过一些C/C++库来支持我们使用的各个组件,使其更好的为我们服务,比如其中的SQLite(关系数据库),Webkit(Web浏览器引擎)。
Linux内核层:安卓的核心系统服务给予Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于该内核,比如Binder IPC(Internet ProcessConnection进程间通信)驱动,安卓的一个特殊驱动程序,具有单独的设备节点,提供进程间通信的功能。
其中,可以通过系统运行库中的第一组件获取节点树中的节点,该第一组件可以为直译式脚本语言框架,并对该节点进行节点劫持处理,对该节点进行矩阵转换,以得到渲染数据,调用该渲染数据中的图形渲染数据,并响应该节点劫持处理以在系统运行库中切换至第二组件,该第二组件可以为至底层编程语言框架,该底层编程语言框架具有多线程处理功能,通过该底层编程语言框架对图形渲染数据进行多线程计算和渲染。
以下进行具体分析说明。
在本实施例中,将从图像渲染装置的角度进行描述,该图像渲染装置具体可以集成在电子设备,比如手机、平板电脑、掌上电脑(PDA,Personal Digital Assistant)等。
本申请实施例提供一种图像渲染方法,如图2所示,该图像渲染方法,可以包括以下步骤:
在步骤S101中,获取节点树中的节点,并对节点进行节点劫持处理。
其中,在应用需要对画面进行渲染时,如在HTML(Hyper Text Markup Language,超文本标记语言)5游戏画面中,HTML5引擎往往会将游戏画面中的场景、节点和组件进行封装,生成相应的节点树(DOM树),该节点树用来追踪所有画面中每一内容,画面中每一元素都是一个节点,一个节点就是页面的一个部分。
进一步的,可以通过直译式脚本语言框架生成节点树,在一实施方式中,该直译式脚本语言框架可以为JavaScript脚本语言框架,该JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果,该JavaScript脚本语言框架可以对层叠样式表进行渲染解析,因此,通过该JavaScript脚本语言框架生成相应的节点树,遍历节点树中的节点,设置相应的拦截组件,通过该拦截组件实现对节点进行劫持处理,劫持处理的定义指在访问或者修改对象的某个属性时,通过一段代码拦截这个行为,进行额外的操作或者修改返回结果,本申请中的劫持代理为对节点进行渲染时,当对计算量复杂的渲染部分进行计算时进行拦截。
在步骤S102中,对节点进行矩阵转换,以得到渲染数据。
其中,当对节点进行节点劫持处理后,需要获取节点中相应的节点属性信息,该节点属性信息可以包括对象在屏幕上的坐标值、宽度、高度和颜色信息,根据该节点属性信息生成相应的矩阵信息,并结合该坐标值、宽度、高度和颜色信息对矩阵信息进行平移、旋转和缩放处理,得到相应的包含3维信息的渲染数据。
在步骤S103中,调取渲染数据中的图形渲染数据,并响应节点劫持处理以切换至底层编程语言框架。
其中,调取处理后的渲染数据中的图形渲染数据,该图形渲染数据为对处理对象的3维图形处理数据,比如光照等效果信息或者网格信息,该图形渲染信息需要对大量的坐标信息和纹理信息进行计算,而直译式脚本语言框架由于为单线程处理,线程是程序中的一个执行流,每个线程都有自己专有的寄存器,不同的线程可以执行同样的函数,单线程也就是说一次只能对一段代码进行处理,同时只能做一件事,所以如果仍通过该直译式脚本语言框架对需要大量的坐标信息和纹理信息的图形渲染数据进行计算的话,那么将会导致处理速度很慢,且线程卡顿。
因此,本申请在调取了渲染数据中的图形渲染数据后,会相应的响应节点劫持处理,将原来的直译式脚本语言框架切换为底层编程语言框架,由于该底层编程语言框架具有多线程处理功能,即可以一次对多段代码进行处理,同时可以做多件事。
在步骤S104中,通过底层编程语言框架对图形渲染数据进行多线程计算和渲染。
在一些实施方式中,该底层编程语言框架可以为C++编程语言框架,该C++编程语言框架具有多线程并行处理能力。
其中,通过该具有多线程处理功能的底层语言框架对图形渲染数据中的光照等效果信息或者网格信息进行计算和转换,并将处理后的数据存储到缓冲区中的模型器(model),依次类推,实现了将对节点树中每一节点的图形渲染数据的计算和转换,并都存储在模型器中,当检测到渲染指令时,可以直接将模型器中缓存的数据直接进行渲染,生成相应的游戏界面并进行显示,由于将计算量较大的图形渲染数据转接到底层语言框架进行处理,所以本申请可以增加整体的渲染速度,提升图像渲染效率,避免了游戏出现卡顿的现象,提升了游戏的性能。
由上述可知,本实施例提供的一种图像渲染方法,通过获取节点树中的节点,并对节点进行节点劫持处理;对节点进行矩阵转换,以得到渲染数据;调取渲染数据中的图形渲染数据,并响应节点劫持处理以切换至底层编程语言框架;通过底层编程语言框架对图形渲染数据进行多线程计算和渲染。以此可以对节点树中的节点进行劫持处理,根据该劫持处理切换至底层编程语言框架对需要进行大量数据计算的图形渲染数据进行多线程计算和渲染,极大的提升了图像渲染效率。
根据上述实施例所描述的方法,以下将举例作进一步详细说明。
请参阅图3,图3为本申请实施例提供的图像渲染方法的另一流程示意图。
具体而言,该方法包括:
在步骤S201中,通过直译式脚本语言框架生成节点树。
需要说明的是,为了更好的说明本实施例,将电子设备以手机,直译式脚本语言框架为JavaScript脚本语言框架,底层编程语言框架为C++框架为例进行说明,该JavaScript脚本语言框架为目前通用的对网页游戏画面进行渲染的框架,为单线程处理功能的框架,该C++框架为具有多线程处理功能的框架。
其中,手机通过JavaScript脚本语言框架对游戏画面相应的代码进行分析,生成相应的DOM树,该DOM树即为节点树木,该DOM树上每一节点代表游戏界面中的一个元素。
在步骤S202中,遍历节点树中的节点,设置相应的拦截组件,通过拦截组件实现对节点的劫持处理。
其中,对该节点树中的每一节点进行遍历,设置相应的拦截组件,该拦截组件用于在对节点中的计算量较大的图形渲染数据进行计算时进行拦截,实现对节点的劫持处理。
在步骤S203中,获取节点相应的节点属性信息。
其中,获取节点即每一元素相应的在屏幕上的坐标值、宽度和颜色等表现信息。
在步骤S204中,根据节点属性信息生成矩阵信息,并对矩阵信息进行平移、旋转和缩放处理,得到渲染数据。
其中,结合该坐标值、宽度、高度和颜色等信息生成相应的矩阵信息,该矩阵信息可以为4乘4的矩阵信息,设置这个矩阵为一个平移、旋转和缩放矩阵,得到渲染数据,该渲染数据中包含有相应的3D渲染参数。
在步骤S205中,从渲染数据中读取相应效果参数和网格参数,并将效果参数和网格参数确定为图形渲染数据。
其中,该效果(effect)参数可以为节点每个顶点相应的光照信息,该网格参数可以为组成物体的每个三维网格坐标信息,将该效果参数和网格参数确定为图形渲染数据,该图形渲染数据为对元素的外表进行相应的三维渲染数据,因此,该图形渲染数据具有大量的数据需要被计算。
在步骤S206中,响应节点劫持处理,将直译式脚本语言框架关闭,并切换底层编程语言框架。
其中,由于该图形渲染数据具有大量的数据需要被计算,因此该图形渲染数据的计算速度直接影响到图像渲染效率,目前,为采用JavaScript脚本语言框架对该图形渲染数据进行计算,由于该JavaScript脚本语言框架为单线程处理功能,会导致对该图形渲染数据的计算效率过慢,导致图像渲染的效率较差,本申请在节点生成时,即通过节点劫持处理进行监控,当获取到图形渲染数据时,触发响应节点劫持处理,将JavaScript脚本语言框架关闭,切换至C++框架。
在步骤S207中,通过底层编程语言框架对效果参数和网格参数进行坐标处理和纹理计算,并将处理后的坐标信息和纹理信息存储至模型器中。
其中,由于该C++框架具有多线程处理功能,因此通过该C++框架对具有大量计算数据的效果参数和网格参数进行坐标计算和纹理计算时,可以多线程并行计算,效率远远高于JavaScript脚本语言框架,以此类推,该C++框架对每一元素的效果参数和网格参数进行坐标处理和纹理计算之后,将处理后的坐标信息和纹理信息存储至模型器中。
在步骤S208中,当检测到渲染指令时,将存储至模型器中的坐标信息和纹理信息进行渲染,生成相应的目标图像。
其中,当检测到渲染指令时,将存储至模型器中的坐标信息和纹理信息和相应的元素的坐标值、宽度、高度和颜色等信息进行渲染绘制,绘制出包含每一元素的目标图像。
由上述可知,本实施例提供的一种图像渲染方法,通过JavaScript脚本语言框架生成节点树,遍历节点树中的节点,设置相应的拦截组件,通过拦截组件实现对节点的劫持处理,获取节点相应的节点属性信息,根据节点属性信息生成矩阵信息,并对矩阵信息进行平移、旋转和缩放处理,得到渲染数据,从渲染数据中读取相应效果参数和网格参数,并将效果参数和网格参数确定为图形渲染数据,响应节点劫持处理,将JavaScript脚本语言框架关闭,并切换C++框架,通过C++框架对效果参数和网格参数进行坐标处理和纹理计算,并将处理后的坐标信息和纹理信息存储至模型器中,当检测到渲染指令时,将存储至模型器中的坐标信息和纹理信息进行渲染,生成相应的目标图像。以此可以对节点树中的节点进行劫持处理,根据该劫持处理切换至C++框架对需要进行大量数据计算的图形渲染数据进行多线程计算和渲染,极大的提升了图像渲染效率。
为便于更好的实施本申请实施例提供的图像渲染方法,本申请实施例还提供一种基于上述图像渲染方法的装置。其中名词的含义与上述图像渲染方法中相同,具体实现细节可以参考方法实施例中的说明。
请参阅图4,图4为本申请实施例提供的图像渲染装置的模块示意图。具体而言,该图像渲染装置300,包括:处理单元31、转换单元32、切换单元33以及渲染单元34。
处理单元31,用于获取节点树中的节点,并对该节点进行节点劫持处理。
其中,在应用需要对画面进行渲染时,如在HTML5游戏画面中,HTML5引擎往往会将游戏画面中的场景、节点和组件进行封装,通过处理单元31生成相应的节点树,该节点树用来追踪所有画面中每一内容,画面中每一元素都是一个节点,一个节点就是页面的一个部分。
进一步的,可以通过直译式脚本语言框架生成节点树,在一实施方式中,该直译式脚本语言框架可以为JavaScript脚本语言框架,因此,通过该JavaScript脚本语言框架生成相应的节点树,遍历节点树中的节点,通过处理单元31设置相应的拦截组件,通过该拦截组件实现对节点进行劫持处理,劫持处理的定义指在访问或者修改对象的某个属性时,通过一段代码拦截这个行为,进行额外的操作或者修改返回结果,本申请中的劫持代理为对节点进行渲染时,当对计算量复杂的渲染部分进行计算时进行拦截。
在一些实施方式中,该处理单元31,具体用于:通过直译式脚本语言框架生成节点树;遍历节点树中的节点,设置相应的拦截组件,通过该拦截组件实现对该节点的劫持处理。
转换单元32,用于对该节点进行矩阵转换,以得到渲染数据。
其中,当对节点进行节点劫持处理后,转换单元32需要获取节点中相应的节点属性信息,该节点属性信息可以包括对象在屏幕上的坐标值、宽度、高度和颜色信息,根据该节点属性信息生成相应的矩阵信息,并结合该坐标值、宽度、高度和颜色信息对矩阵信息进行平移、旋转和缩放处理,得到相应的包含3维信息的渲染数据。
在一些实施方式中,如图5所示,该转换单元32,包括获取子单元321和处理子单元322,具体如下:
获取子单元321,用于获取该节点相应的节点属性信息;
处理子单元322,用于根据该节点属性信息生成矩阵信息,并对该矩阵信息进行平移、旋转和缩放处理,得到渲染数据。
切换单元33,用于调取该渲染数据中的图形渲染数据,并响应该节点劫持处理以切换至底层编程语言框架,该底层编程语言框架具有多线程处理功能。
其中,切换单元33调取处理后的渲染数据中的图形渲染数据,该图形渲染数据为对处理对象的3维图形处理数据,比如光照等效果信息或者网格信息,该图形渲染信息需要对大量的坐标信息和纹理信息进行计算,而直译式脚本语言框架由于为单线程处理,线程是程序中的一个执行流,每个线程都有自己专有的寄存器,不同的线程可以执行同样的函数,单线程也就是说一次只能对一段代码进行处理,同时只能做一件事,所以如果仍通过该直译式脚本语言框架对需要大量的坐标信息和纹理信息的图形渲染数据进行计算的话,那么将会导致处理速度很慢,且线程卡顿。
因此,切换单元33在调取了渲染数据中的图形渲染数据后,会相应的响应节点劫持处理,将原来的直译式脚本语言框架切换为底层编程语言框架,由于该底层编程语言框架具有多线程处理功能,即可以一次对多段代码进行处理,同时可以做多件事。
在一些实施方式中,该切换单元33,具体用于从该渲染数据中读取相应效果参数和网格参数,并将该效果参数和网格参数确定为图形渲染数据;响应该节点劫持处理,将直译式脚本语言框架关闭,并切换底层编程语言框架。
渲染单元34,用于通过该底层编程语言框架对该图形渲染数据进行多线程计算和渲染。
在一些实施方式中,该底层编程语言框架可以为C++编程语言框架,该C++编程语言框架具有多线程并行处理能力。
其中,渲染单元34通过该具有多线程处理功能的底层语言框架对图形渲染数据中的光照等效果信息或者网格信息进行计算和转换,并将处理后的数据存储到缓冲区中的模型器(model),依次类推,实现了将对节点树中每一节点的图形渲染数据的计算和转换,并都存储在模型器中,当检测到渲染指令时,可以直接将模型器中缓存的数据直接进行渲染,生成相应的游戏界面并进行显示,由于将计算量较大的图形渲染数据转接到底层语言框架进行处理,所以本申请可以增加整体的渲染速度,提升图像渲染效率,避免了游戏出现卡顿的现象,提升了游戏的性能。
在一些实施方式中,该渲染单元34,具体用于通过该底层编程语言框架对该效果参数和网格参数进行坐标处理和纹理计算,并将处理后的坐标信息和纹理信息存储至模型器中;当检测到渲染指令时,将存储至模型器中的坐标信息和纹理信息进行渲染,生成相应的目标图像。
由上述可知,本实施例提供的一种图像渲染装置,通过处理单元31获取节点树中的节点,并对节点进行节点劫持处理;转换单元32对节点进行矩阵转换,以得到渲染数据;切换单元33调取渲染数据中的图形渲染数据,并响应节点劫持处理以切换至底层编程语言框架;渲染单元34通过底层编程语言框架对图形渲染数据进行多线程计算和渲染。以此可以对节点树中的节点进行劫持处理,根据该劫持处理切换至底层编程语言框架对需要进行大量数据计算的图形渲染数据进行多线程计算和渲染,极大的提升了图像渲染效率。
本申请实施例还提供一种电子设备。请参阅图6,电子设备500包括处理器501以及存储器502。其中,处理器501与存储器502电性连接。
该处理器500是电子设备500的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或加载存储在存储器502内的计算机程序,以及调用存储在存储器502内的数据,执行电子设备500的各种功能并处理数据,从而对电子设备500进行整体监控。
该存储器502可用于存储软件程序以及模块,处理器501通过运行存储在存储器502的计算机程序以及模块,从而执行各种功能应用以及数据处理。存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的计算机程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器502还可以包括存储器控制器,以提供处理器501对存储器502的访问。
在本申请实施例中,电子设备500中的处理器501会按照如下的步骤,将一个或一个以上的计算机程序的进程对应的指令加载到存储器502中,并由处理器501运行存储在存储器502中的计算机程序,从而实现各种功能,如下:
获取节点树中的节点,并对该节点进行节点劫持处理;
对该节点进行矩阵转换,以得到渲染数据;
调取该渲染数据中的图形渲染数据,并响应该节点劫持处理以切换至底层编程语言框架,该底层编程语言框架具有多线程处理功能;
通过该底层编程语言框架对该图形渲染数据进行多线程计算和渲染。
在某些实施方式中,该对该节点进行矩阵转换,以得到渲染数据时,处理器501可以具体执行以下步骤:
获取该节点相应的节点属性信息;
根据该节点属性信息生成矩阵信息,并对该矩阵信息进行平移、旋转和缩放处理,得到渲染数据。
在某些实施方式中,在获取节点树中的节点,并对该节点进行节点劫持处理时,处理器501可以具体执行以下步骤:
通过直译式脚本语言框架生成节点树;
遍历节点树中的节点,设置相应的拦截组件,通过该拦截组件实现对该节点的劫持处理。
在某些实施方式中,在调取该渲染数据中的图形渲染数据,并响应该节点劫持处理以切换至底层编程语言框架时,处理器501可以具体执行以下步骤:
从该渲染数据中读取相应效果参数和网格参数,并将该效果参数和网格参数确定为图形渲染数据;
响应该节点劫持处理,将直译式脚本语言框架关闭,并切换底层编程语言框架。
在某些实施方式中,在通过该底层编程语言框架对该图形渲染数据进行多线程计算和渲染时,处理器501可以具体执行以下步骤:
通过该底层编程语言框架对该效果参数和网格参数进行坐标处理和纹理计算,并将处理后的坐标信息和纹理信息存储至模型器中;
当检测到渲染指令时,将存储至模型器中的坐标信息和纹理信息进行渲染,生成相应的目标图像。
由上述可知,本申请实施例的电子设备,通过获取节点树中的节点,并对节点进行节点劫持处理;对节点进行矩阵转换,以得到渲染数据;调取渲染数据中的图形渲染数据,并响应节点劫持处理以切换至底层编程语言框架;通过底层编程语言框架对图形渲染数据进行多线程计算和渲染。以此可以对节点树中的节点进行劫持处理,根据该劫持处理切换至底层编程语言框架对需要进行大量数据计算的图形渲染数据进行多线程计算和渲染,极大的提升了图像渲染效率。
请一并参阅图7,在某些实施方式中,电子设备500还可以包括:显示器503、射频电路504、音频电路505以及电源506。其中,其中,显示器503、射频电路504、音频电路505以及电源506分别与处理器501电性连接。
该显示器503可以用于显示由用户输入的信息或提供给用户的信息以及各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示器503可以包括显示面板,在某些实施方式中,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、或者有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板。
该射频电路504可以用于收发射频信号,以通过无线通信与网络设备或其他电子设备建立无线通讯,与网络设备或其他电子设备之间收发信号。
该音频电路505可以用于通过扬声器、传声器提供用户与电子设备之间的音频接口。
该电源506可以用于给电子设备500的各个部件供电。在一些实施例中,电源506可以通过电源管理系统与处理器501逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管图7中未示出,电子设备500还可以包括摄像头、蓝牙模块等,在此不再赘述。
本申请实施例还提供一种存储介质,该存储介质存储有计算机程序,当该计算机程序在计算机上运行时,使得该计算机执行上述任一实施例中的图像渲染方法,比如:获取节点树中的节点,并对该节点进行节点劫持处理;对该节点进行矩阵转换,以得到渲染数据;调取该渲染数据中的图形渲染数据,并响应该节点劫持处理以切换至底层编程语言框架,该底层编程语言框架具有多线程处理功能;通过该底层编程语言框架对该图形渲染数据进行多线程计算和渲染。
在本申请实施例中,存储介质可以是磁碟、光盘、只读存储器(Read Only Memory,ROM,)、或者随机存取记忆体(Random Access Memory,RAM)等。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
需要说明的是,对本申请实施例的图像渲染方法而言,本领域普通测试人员可以理解实现本申请实施例的图像渲染方法的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,如存储在电子设备的存储器中,并被该电子设备内的至少一个处理器执行,在执行过程中可包括如图像渲染方法的实施例的流程。其中,该的存储介质可为磁碟、光盘、只读存储器、随机存取记忆体等。
对本申请实施例的图像渲染装置而言,其各功能模块可以集成在一个处理芯片中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。该集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中,该存储介质譬如为只读存储器,磁盘或光盘等。
以上对本申请实施例所提供的一种图像渲染方法、装置、存储介质及电子设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (7)

1.一种图像渲染方法,其特征在于,包括:
通过直译式脚本语言框架生成节点树;
遍历节点树中的节点,设置相应的拦截组件,通过所述拦截组件实现对所述节点的劫持处理;
对所述节点进行矩阵转换,以得到渲染数据;
从所述渲染数据中读取相应效果参数和网格参数,并将所述效果参数和网格参数确定为图形渲染数据;
响应所述节点劫持处理,将直译式脚本语言框架关闭,并切换底层编程语言框架,所述底层编程语言框架具有多线程处理功能;
通过所述底层编程语言框架对所述图形渲染数据进行多线程计算和渲染。
2.如权利要求1所述的图像渲染方法,其特征在于,所述对所述节点进行矩阵转换,以得到渲染数据的步骤,包括:
获取所述节点相应的节点属性信息;
根据所述节点属性信息生成矩阵信息,并对所述矩阵信息进行平移、旋转和缩放处理,得到渲染数据。
3.如权利要求1所述的图像渲染方法,其特征在于,所述通过所述底层编程语言框架对所述图形渲染数据进行多线程计算和渲染的步骤,包括:
通过所述底层编程语言框架对所述效果参数和网格参数进行坐标处理和纹理计算,并将处理后的坐标信息和纹理信息存储至模型器中;
当检测到渲染指令时,将存储至模型器中的坐标信息和纹理信息进行渲染,生成相应的目标图像。
4.一种图像渲染装置,其特征在于,包括:
处理单元,用于通过直译式脚本语言框架生成节点树;遍历节点树中的节点,设置相应的拦截组件,通过所述拦截组件实现对所述节点的劫持处理;
转换单元,用于对所述节点进行矩阵转换,以得到渲染数据;
切换单元,用于从所述渲染数据中读取相应效果参数和网格参数,并将所述效果参数和网格参数确定为图形渲染数据;响应所述节点劫持处理,将直译式脚本语言框架关闭,并切换底层编程语言框架,所述底层编程语言框架具有多线程处理功能;
渲染单元,用于通过所述底层编程语言框架对所述图形渲染数据进行多线程计算和渲染。
5.如权利要求4所述的图像渲染装置,其特征在于,所述转换单元,包括:
获取子单元,用于获取所述节点相应的节点属性信息;
处理子单元,用于根据所述节点属性信息生成矩阵信息,并对所述矩阵信息进行平移、旋转和缩放处理,得到渲染数据。
6.一种存储介质,其上存储有计算机程序,其特征在于,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1至3任一项所述的图像渲染方法。
7.一种电子设备,包括处理器和存储器,所述存储器有计算机程序,其特征在于,所述处理器通过调用所述计算机程序,用于执行如权利要求1至3任一项所述的图像渲染方法。
CN201910731564.5A 2019-08-08 2019-08-08 图像渲染方法、装置、存储介质及电子设备 Active CN110443880B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910731564.5A CN110443880B (zh) 2019-08-08 2019-08-08 图像渲染方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910731564.5A CN110443880B (zh) 2019-08-08 2019-08-08 图像渲染方法、装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN110443880A CN110443880A (zh) 2019-11-12
CN110443880B true CN110443880B (zh) 2023-05-16

Family

ID=68434108

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910731564.5A Active CN110443880B (zh) 2019-08-08 2019-08-08 图像渲染方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN110443880B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111131660B (zh) * 2019-12-24 2022-02-08 贝壳技术有限公司 一种图像数据处理方法、装置、电子设备及其存储介质
CN113506298A (zh) * 2021-09-10 2021-10-15 北京市商汤科技开发有限公司 图像检测与渲染方法及装置、设备、存储介质
WO2023044877A1 (zh) * 2021-09-26 2023-03-30 厦门雅基软件有限公司 一种渲染任务处理方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106055469A (zh) * 2016-05-19 2016-10-26 中国科学院软件研究所 一种基于代码注入的移动端应用测试系统及方法
CN109358936A (zh) * 2018-09-29 2019-02-19 Oppo广东移动通信有限公司 信息处理方法、装置、存储介质、电子设备及系统
CN109885464A (zh) * 2019-01-24 2019-06-14 腾讯科技(深圳)有限公司 一种基于开放图形库的数据处理方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8368705B2 (en) * 2008-07-16 2013-02-05 Google Inc. Web-based graphics rendering system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106055469A (zh) * 2016-05-19 2016-10-26 中国科学院软件研究所 一种基于代码注入的移动端应用测试系统及方法
CN109358936A (zh) * 2018-09-29 2019-02-19 Oppo广东移动通信有限公司 信息处理方法、装置、存储介质、电子设备及系统
CN109885464A (zh) * 2019-01-24 2019-06-14 腾讯科技(深圳)有限公司 一种基于开放图形库的数据处理方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于并行渲染的虚拟现实开发平台设计与实现;申闫春等;《计算机仿真》;20121115(第11期);全文 *

Also Published As

Publication number Publication date
CN110443880A (zh) 2019-11-12

Similar Documents

Publication Publication Date Title
US20210216700A1 (en) Information Processing Method and System
WO2022116759A1 (zh) 图像渲染方法、装置、计算机设备和存储介质
CN110443880B (zh) 图像渲染方法、装置、存储介质及电子设备
US11706331B2 (en) Information processing method and apparatus, storage medium, and electronic device
CA2756537C (en) Backing store memory management for rendering scrollable webpage subregions
CN108572965A (zh) 一种资源加载方法及装置
CN104850388B (zh) 网页绘制方法及装置
CN111026490B (zh) 页面渲染方法、装置、电子设备及存储介质
US9053529B2 (en) System and method for capturing digital images
US20230403437A1 (en) Graphics engine and graphics processing method applicable to player
CN111966354A (zh) 一种页面显示方法、装置及计算机可读存储介质
CN110471701B (zh) 图像渲染的方法、装置、存储介质及电子设备
CN110020300B (zh) 一种浏览器页面合成方法及终端
CN106294463B (zh) 一种动态曲线的数据点更新方法和设备
CN113411664B (zh) 基于子应用的视频处理方法、装置和计算机设备
WO2019238145A1 (zh) 一种基于WebGL的图形绘制方法、装置及系统
CN113947650B (zh) 动画处理方法、装置、电子设备及介质
US20190080017A1 (en) Method, system, and device that invokes a web engine
US10628909B2 (en) Graphics processing unit resource dependency viewer
WO2023197762A1 (zh) 图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品
CN110471700B (zh) 图形处理方法、装置、存储介质及电子设备
CN115061680A (zh) 一种基于ECharts地图组件实现自定义展示面板的方法
CN112419456B (zh) 一种特效画面生成方法和装置
CN113744377A (zh) 一种动画处理系统、方法、装置、设备及介质
US20130155048A1 (en) Three-dimensional graphics construction and user interface

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