CN112200712B - Gles图像渲染方法及装置、存储介质、计算机设备 - Google Patents
Gles图像渲染方法及装置、存储介质、计算机设备 Download PDFInfo
- Publication number
- CN112200712B CN112200712B CN202010937217.0A CN202010937217A CN112200712B CN 112200712 B CN112200712 B CN 112200712B CN 202010937217 A CN202010937217 A CN 202010937217A CN 112200712 B CN112200712 B CN 112200712B
- Authority
- CN
- China
- Prior art keywords
- opengl
- rendering
- drawing instruction
- instruction set
- instruction
- 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
- 238000009877 rendering Methods 0.000 title claims abstract description 139
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000002159 abnormal effect Effects 0.000 claims description 28
- 238000003786 synthesis reaction Methods 0.000 claims description 16
- 230000015572 biosynthetic process Effects 0.000 claims description 15
- 238000012795 verification Methods 0.000 claims description 14
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 6
- 238000004422 calculation algorithm Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 239000012792 core layer Substances 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000010410 layer Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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
-
- 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
-
- 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
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/53—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
- A63F2300/538—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for performing operations on behalf of the game client, e.g. rendering
-
- 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
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Controls And Circuits For Display Device (AREA)
- Image Generation (AREA)
Abstract
本申请公开了GLES图像渲染方法及装置、存储介质、计算机设备,该方法包括:接收虚拟安卓操作系统发送的OpenGL ES图形库的有效绘图指令;根据接收到的所述有效绘图指令,得到用于图像渲染的OpenGL指令集;根据所述有效绘图指令对应的目标应用程序名称,渲染所述OpenGL指令集中的相应图像。本申请能够根据OpenGL ES图形库的有效绘图指令对应的目标应用程序,利用不同的渲染方式实现对OpenGL指令集中相应图像的渲染,从而针对不同的应用程序,达到在Windows平台下对图像渲染效率进行优化的目的。
Description
技术领域
本申请涉及计算机应用技术领域,尤其是涉及到GLES图像渲染方法及装置、存储介质、计算机设备。
背景技术
随着智能移动终端(guest)的发展,其用户群越来越庞大,而为适应用户的需求,也开发出了更多的移动终端软件。其中,基于Android系统实现的手机游戏的潜在市场比其他智能移动终端平台的潜在市场更大,故而逐渐涌出越来越多的手机游戏APP。
现有的手机游戏APP通常使用GLES图像渲染技术来达到更好的游戏体验,而手机作为智能移动设备用来运行手机游戏存在先天不足,具体表现为屏幕小,网络不稳定,耗电快,经常会被电话中断等,而作为游戏核心的GLES图像渲染运用在Windows平台上时,存在渲染效率较低的技术问题。
发明内容
有鉴于此,本申请提供了GLES图像渲染方法及装置、存储介质、计算机设备,能够有效解决现有作为游戏核心的GLES图像渲染运用在windows上存在的渲染效率较低的技术问题。
根据本申请的一个方面,提供了一种GLES图像渲染方法,包括:
接收虚拟安卓操作系统发送的OpenGL ES图形库的有效绘图指令;
根据接收到的所述有效绘图指令,得到用于图像渲染的OpenGL指令集;
根据所述有效绘图指令对应的目标应用程序名称,渲染所述OpenGL指令集中的相应图像。
根据本申请的另一方面,提供了一种GLES图像渲染装置,包括:
有效模块,用于接收虚拟安卓操作系统发送的OpenGL ES图形库的有效绘图指令;
确定模块,用于根据接收到的所述有效绘图指令,得到用于图像渲染的OpenGL指令集;
渲染模块,用于根据所述有效绘图指令对应的应用程序名称,渲染所述OpenGL指令集中的相应图像。
依据本申请又一个方面,提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述GLES图像渲染方法。
依据本申请再一个方面,提供了一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述GLES图像渲染方法。
借由上述技术方案,本申请提供的GLES图像渲染方法及装置、存储介质、计算机设备,根据接收到的虚拟安卓操作系统发送的OpenGL ES图形库的有效绘图指令,得到用于图像渲染的OpenGL指令集,进一步地,根据有效绘图指令对应的目标应用程序名称,实现对OpenGL指令集中相应图像的渲染。本申请能够根据OpenGL ES图形库的有效绘图指令对应的目标应用程序,利用不同的渲染方式实现对OpenGL指令集中相应图像的渲染,从而针对不同的应用程序,达到在Windows平台下对图像渲染效率进行优化的目的。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了本申请实施例提供的一种GLES图像渲染方法的流程示意图;
图2示出了本申请实施例提供的另一种GLES图像渲染方法的流程示意图;
图3示出了本申请实施例提供的一种GLES图像渲染装置的结构示意图;
图4示出了本申请实施例提供的另一种GLES图像渲染装置的结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
针对现有作为游戏核心的GLES图像渲染运用在Windows平台上存在的渲染效率较低的技术问题。本实施例提供了一种GLES图像渲染方法,能够针对不同的应用程序,达到在Windows平台下对图像渲染效率进行优化的目的。本实施例包括虚拟安卓操作系统(Guest端)和模拟器(Host端)两部分。其中,虚拟安卓操作系统用于接收并发送OpenGL ES图形库的绘图指令至模拟器,模拟器用于将OpenGL ES图形库的绘图指令解析为Windows平台可用的OpenGL指令集。
如图1所示,该方法应用于模拟器(Host端),包括:
步骤101,接收虚拟安卓操作系统发送的OpenGL ES图形库的有效绘图指令。
在本实施例中,虚拟安卓操作系统渲染分为软件渲染与硬件渲染,软件渲染通过CPU指令直接渲染到屏幕上,硬件渲染通过OpenGL ES图形库的有效绘图指令,使用GPU进行高速渲染。针对硬件渲染,当监测到虚拟安卓操作系统启动目标应用程序时,通过虚拟安卓操作系统核心层获取该目标应用程序的OpenGL ES图形库的绘图指令,并打包成数据包,经由QEMU PIPE命名管道传输至模拟器,以便模拟器根据接收到的数据包,校验该数据包中绘图指令的有效性。
步骤102,根据接收到的所述有效绘图指令,得到用于图像渲染的OpenGL指令集。
在本实施例中,模拟器通过解析该数据包,确定该数据包中的绘图指令为有效绘图指令后,根据主机操作系统OpenGL能够支持的最高版本,确定匹配该主机操作系统的兼容模式,并进一步地,经由协议转换层,基于所确定的兼容模式,利用翻译器Translator将OpenGL ES图形库的有效绘图指令转换为主机操作系统可用的OpenGL指令集,从而实现高效的数据传递与指令转换。
相较于现有核心模式,Host端包括大量不同厂商不同时代的产品,为覆盖大部分的用户,采用兼容模式满足用户的需求,以提升GLES图像渲染的兼容性。
步骤103,根据所述有效绘图指令对应的目标应用程序名称,渲染所述OpenGL指令集中的相应图像。
在本实施例中,获取目标应用程序名称,该目标应用程序名称信息携带在打包的数据包上,根据目标应用程序名称对应的应用类型,确定针对OpenGL指令集中相应图像的渲染方式,从而实现对OpenGL指令集中相应图像的渲染。其中,目标应用程序名称对应的应用类型包括视频和游戏,通过对目标应用程序名称对应的应用类型的划分,能够针对不同的应用类型的应用程序,实现对现有通用渲染方式的优化,提升渲染效率。
由于Guest端GPU具有核心频率低的缺点,导致guest端存在特有的功耗限制,本实施例将guest端的OpenGL ES图形库的有效绘图指令转换成host端的OpenGL指令集后,能够打破上述功耗限制,并在更大显存与带宽的支持下达到更高的渲染效率。
通过应用本实施例的技术方案,根据接收到的虚拟安卓操作系统发送的OpenGLES图形库的有效绘图指令,得到用于图像渲染的OpenGL指令集,进一步地,根据有效绘图指令对应的目标应用程序名称,实现对OpenGL指令集中相应图像的渲染。本申请能够根据OpenGL ES图形库的有效绘图指令对应的目标应用程序,利用不同的渲染方式实现对OpenGL指令集中相应图像的渲染,从而针对不同应用类型的应用程序,达到在Windows平台下对图像渲染效率进行优化的目的。
进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例的具体实施过程,提供了一种GLES图像渲染方法,如图2所示,该方法包括:
步骤201,虚拟安卓操作系统接收来自目标应用程序的OpenGL ES图形库的绘图指令。
步骤202,接收虚拟安卓操作系统发送的OpenGL ES图形库的有效绘图指令。
在上述实施例中,为了说明步骤202具体的实施过程,作为一种可选方式,步骤202具体包括:接收虚拟安卓操作系统发送的OpenGL ES图形库的绘图指令;利用预设的有效性校验算法,计算出所述绘图指令的校验值;若计算出的所述绘图指令的校验值与所述绘图指令中预存的校验阈值一致,则确定所述绘图指令为有效绘图指令;若计算出的所述绘图指令的校验值与所述绘图指令中预存的校验阈值不一致,则确定所述绘图指令为无效绘图指令,并忽略所述无效绘图指令。
具体实施中,当监测到模拟器中的虚拟安卓操作系统启动目标应用程序时,即主机操作系统对应的物理显卡的硬件性能参数创建的虚拟显卡,运行目标应用程序的相应图像渲染进程时,获取来自虚拟安卓操作系统核心层的目标应用程序的OpenGL ES图形库的绘图指令,并打包成数据包,经由QEMU PIPE命名管道传输至模拟器,以实现数据包的高效传输。
根据实际应用场景的需求,对接收到的数据包进行解析,通过预设的有效性校验算法计算该数据包中绘图指令的有效性,根据实际应用场景的需求,利用绘图指令中的特定字符串预存校验阈值,模拟器对接收到的绘图指令进行有效性校验计算,判断该绘图指令是否为有效绘图指令,若得到的校验值与校验阈值一致,则确定接收到的数据包中的绘图指令为有效绘图指令,以便进一步转换为主机操作系统可用的OpenGL指令集,若得到的校验值与校验阈值不一致,则确定接收到的数据包中的绘图指令为无效绘图指令,忽略该数据包,或生成相应的提示信息,以便虚拟安卓操作系统重新发送该绘图指令。
步骤203,所述虚拟安卓操作系统接收来自目标应用程序的状态信息,根据所述目标应用程序的状态信息和所述有效绘图指令,转换得到用于图像渲染的OpenGL指令集。
具体实施中,当监测到虚拟安卓操作系统启动目标应用程序时,虚拟安卓操作系统在接收来自目标应用程序的OpenGL ES图形库的绘图指令的同时,还接收来自目标应用程序的状态信息,该状态信息包括屏幕旋转指令,例如,运行目标应用程序的界面旋转90°,以实现界面尺寸的调整,从而进一步使得转换得到的OpenGL指令集能够匹配旋转后的界面。
根据实际应用场景的需求,该屏幕旋转指令可以由目标应用程序主动发起,即目标应用程序携带有横屏或竖屏标识,也可以由目标应用程序转发来自用户的屏幕旋转指令,以满足用户对目标应用程序的体验需求,此处不对屏幕旋转指令的发起进行具体限定。
步骤204,当监测到目标应用程序启动时,根据所述有效绘图指令对应的OpenGLES图形库版本号,确定与所述OpenGL ES图形库版本号对应的OpenGL版本号。
步骤205,根据所述OpenGL版本号和主机操作系统的OpenGL版本号,确定所述主机操作系统可支持的兼容模式。
步骤206,通过调用所述兼容模式,将所述有效控制命令转换成匹配所述主机操作系统的OpenGL指令集。
具体实施中,在确定目标应用程序启动时,获取有效绘图指令对应的OpenGL ES图形库版本号,利用预存的OpenGL ES图形库版本号与OpenGL版本号的对应关系,根据OpenGLES图形库版本号对应的OpenGL版本号,以及主机操作系统的OpenGL版本号,确定主机操作系统可支持的OpenGL模式为兼容模式,其中,可通过GL_VERSION标识获取主机操作系统的OpenGL版本号。
根据实际应用场景的需求,预存的OpenGL ES图形库版本号与OpenGL版本号的对应关系为,GLES 2.0及以下版本对应OpenGL 4.1,GLES 3.0及以上对应OpenGL 4.3,当OpenGL ES图形库版本号为GLES 2.0时,确定对应的OpenGL版本号为4.1,若获取到的主机操作系统的OpenGL版本号高于4.1,则兼容模式下的主机操作系统支持OpenGL 4.1。
步骤206对应的函数可表示为:
1.调用初始化函数glfwInit();
2.根据OpenGL ES图形库版本号确定主机操作系统可支持的OpenGL版本号glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR,4);glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR,1);
3.设定OpenGL兼容模式glfwWindowHint(GLFW_OPENGL_PROFILE,GLFW_OPENGL_COMPAT_PROFILE);
现有手机端APP通常存在大量不同时期的APK,例如采用GLES 1.0渲染或者GLES3.1渲染,利用核心模式无法针对不同版本的API进行一一支持。为提升现有技术存在的兼容性较差的问题,本实施例在Host端放弃OpenGL核心模式,采用兼容模式进行渲染,即通过解析数据包,重组有效绘图指令,经过协议转换层,转换为主机操作系统可用的OpenGL指令集,并完成后续的渲染操作,以实现对不同版本的API进行更好的支持。
步骤207,根据所述目标应用程序名称对应的应用类型,确定与所述应用类型对应的渲染路径。
在上述实施例中,为了说明步骤206具体的实施过程,作为一种可选方式,若所述应用类型为视频,则与所述应用类型对应的渲染路径是指:根据所述OpenGL指令集中的图像数据,渲染所述图像数据。
在上述实施例中,为了说明步骤206具体的实施过程,作为一种可选方式,若所述应用类型为游戏,则与所述应用类型对应的渲染路径是指:对所述OpenGL指令集中的图像数据进行纹理合成,得到纹理合成后的待渲染图像,并渲染所述待渲染图像。
步骤208,识别所述OpenGL指令集中的异常信息。
在上述实施例中,为了说明步骤207具体的实施过程,作为一种可选方式,步骤208具体包括:将所述OpenGL指令集中的字符串信息与预存的异常信息进行比对,确定所述OpenGL指令集中的异常信息。
步骤209,根据所述异常信息的异常类型,执行相应的处理操作。
具体实施中,利用try-catch捕获程序对OpenGL指令集中的字符串信息进行识别,通过将OpenGL指令集中的字符串信息与预存的异常信息进行比对,确定该OpenGL指令集是否存在异常信息。预存的异常信息包括异常信息与异常信息类型的对应关系,该异常信息为可控的异常信息,即std:exception,该异常信息的异常类型包括:a)std:bad_alloc,为内存分配失败;b)std:bad_cast,为类型转换失败;c)std:bad_typeid,为错误的类型;d)std:bad_exception,为错误的异常;e)std:logic_error,为逻辑错误;f)std:runtime_error,为运行时错误。
其中,对应异常信息的异常类型e)std:logic_error,为逻辑错误的异常子类型进一步包括有:std:domain_error、std:invalid_argument、std:length_error、std:out_of_range;对应异常信息的异常类型std:runtime_error,为运行时错误的异常子类型进一步包括有:std:overflow_error、std:range_error、std:underflow_error。
根据实际应用场景的需求,OpenGL指令集中的字符串信息可以为上述的异常子类型,也可以为异常信息的异常类型,若为异常子类型,则通过确定其对应的异常信息的异常类型确定相应的处理操作。具体为,若异常信息的异常类型为a)std:bad_alloc,为内存分配失败,或者f)std:runtime_error,为运行时错误,则通过弹窗的提示方式显示错误类型,并引导用户重启该目标应用程序;若异常信息的异常类型为b)std:bad_cast,为类型转换失败,或者c)std:bad_typeid,为错误的类型,或者d)std:bad_exception,为错误的异常,或者e)std:logic_error,为逻辑错误,则记录包含错误原因的日志,并跳过出错的代码调用,在不影响用户使用的情况下,继续运行。
由于现有技术中,无法在GLES渲染切换到Windows平台渲染的过程中保证百分百的一一映射,从而导致的渲染出错,崩溃等问题,能够通过本实施例实现对OpenGL指令集的数据安全校验,以实现对OpenGL指令集的优化,以及相应的出错处理,以保证GLES图像渲染过程中的稳定性与一致性,使得最终的渲染结果具有较高的稳定性及相似度,从而满足用户对极致帧率或画质体验的高性能需求。
步骤210,根据所确定的渲染路径,渲染所述OpenGL指令集中的相应图像。
具体实施中,为优化渲染效率,根据目标应用程序名称进行应用类型划分,针对于视频应用类型,由于视频在播放的过程中并不需要合成逻辑,因此利用主机操作系统对应的物理显卡的硬件性能参数创建的虚拟显卡,直接将OpenGL指令集中的图像数据渲染到屏幕上;针对于游戏应用类型,应用程序是需要通过内部的纹理合成来实现游戏过程中的实时交互的,但考虑到用户在玩游戏的场景并不需要关注后台正在运行的其他应用程序进程,因此,保留内部的纹理合成逻辑,同时放弃Surface间的合成逻辑,得到的优化后的渲染路径为,对OpenGL指令集中的图像数据进行纹理合成,得到纹理合成后的待渲染图像,并将该待渲染图像直接渲染到屏幕上。可见,通过渲染路径优化,能够有效提升将嵌入式平台下使用的OpenGL ES图形库的绘图指令渲染至Windows平台侧的渲染效率。
现有通用渲染流程为兼容所有的渲染情况,采用了多层次渲染,例如,应用程序内部的纹理合成,以及不同应用程序的Surface间的再次合成,最终渲染到屏幕上,但通过多次渲染绘制会导致渲染效率较低的问题。因此,本实施例考虑到用户使用追求极致帧率或画质体验的高性能需求的应用程序时,为了不浪费GPU的任何性能,针对存在高性能需求的不同应用类型的应用程序,通过节约大量的无效渲染(对应步骤207中不同的路径优化方式),达到优化渲染流程、提升渲染速度、节约GPU性能的目的,同时满足用户对高帧率游戏,以及高画质体验视频的体验需求。
其中,该目标应用程序名称信息携带在打包的数据包上,可通过解析数据包确定目标应用程序名称信息,也可以通过解码该数据包中的有效绘图指令确定调用方式,根据该调用方式对应的UI类型,进一步确定该有效绘图指令对应的应用类型为视频或者游戏。
通过应用本实施例的技术方案,根据接收到的虚拟安卓操作系统发送的OpenGLES图形库的有效绘图指令,得到用于图像渲染的OpenGL指令集,进一步地,根据有效绘图指令对应的目标应用程序名称,实现对OpenGL指令集中相应图像的渲染。本申请能够根据OpenGL ES图形库的有效绘图指令对应的目标应用程序,利用不同的渲染方式实现对OpenGL指令集中相应图像的渲染,从而针对不同的应用程序,达到在Windows平台下对图像渲染效率进行优化的目的,即在Windows平台下流畅体验Android平台下的各种应用程序,例如,为用户带来极致的游戏体验。
进一步的,作为图1方法的具体实现,本申请实施例提供了一种GLES图像渲染装置,应用于模拟器(Host端),如图3所示,该装置包括:校验模块32、确定模块34、渲染模块35。
校验模块32,用于接收虚拟安卓操作系统发送的OpenGL ES图形库的有效绘图指令;
确定模块34,用于根据接收到的所述有效绘图指令,得到用于图像渲染的OpenGL指令集;
渲染模块35,用于根据所述有效绘图指令对应的应用程序名称,渲染所述OpenGL指令集中的相应图像。
在具体的应用场景中,如图4所示,该装置还包括接收模块31、兼容模块33。
在具体的应用场景中,所述接收模块31,用于虚拟安卓操作系统接收来自目标应用程序的OpenGL ES图形库的绘图指令。该接收模块31应用于虚拟安卓操作系统(Guest端)。
校验模块32,具体包括:判断单元321。
判断单元321,用于接收虚拟安卓操作系统发送的OpenGL ES图形库的绘图指令;以及,利用预设的有效性校验算法,计算出所述绘图指令的校验值;以及,若计算出的所述绘图指令的校验值与所述绘图指令中预存的校验阈值一致,则确定所述绘图指令为有效绘图指令;以及,若计算出的所述绘图指令的校验值与所述绘图指令中预存的校验阈值不一致,则确定所述绘图指令为无效绘图指令,并忽略所述无效绘图指令。
相应地,所述虚拟安卓操作系统接收来自目标应用程序的状态信息,所述确定模块34,用于根据所述目标应用程序的状态信息和所述有效绘图指令,转换得到用于图像渲染的OpenGL指令集。
在具体的应用场景中,所述兼容模块33,具体用于当监测到目标应用程序启动时,根据所述有效绘图指令对应的OpenGL ES图形库版本号,确定与所述OpenGL ES图形库版本号对应的OpenGL版本号;以及,根据所述OpenGL版本号和主机操作系统的OpenGL版本号,确定所述主机操作系统可支持的兼容模式。
相应地,所述确定模块34,具体包括:转换单元341。
所述转换单元341,用于通过调用所述兼容模式,将所述有效控制命令转换成匹配所述主机操作系统的OpenGL指令集。
在具体的应用场景中,所述渲染模块35,具体包括:路径判断单元351、路径渲染单元353。
路径判断单元351,用于根据所述目标应用程序名称对应的应用类型,确定与所述应用类型对应的渲染路径;
路径渲染单元353,用于根据所确定的渲染路径,渲染所述OpenGL指令集中的相应图像。
在具体的应用场景中,若所述应用类型为视频,则与所述应用类型对应的渲染路径是指:根据所述OpenGL指令集中的图像数据,渲染所述图像数据。
在具体的应用场景中,若所述应用类型为游戏,则与所述应用类型对应的渲染路径是指:对所述OpenGL指令集中的图像数据进行纹理合成,得到纹理合成后的待渲染图像,并渲染所述待渲染图像。
在具体的应用场景中,所述渲染模块35,具体还包括异常识别单元352。
所述异常识别单元352,用于识别所述OpenGL指令集中的异常信息;以及,根据所述异常信息的异常类型,执行相应的处理操作。
其中,所述识别所述OpenGL指令集中的异常信息,具体包括:将所述OpenGL指令集中的字符串信息与预存的异常信息进行比对,确定所述OpenGL指令集中的异常信息。
需要说明的是,本申请实施例提供的一种DDoS攻击监控装置所涉及各功能单元的其他相应描述,可以参考图1和图2中的对应描述,在此不再赘述。
基于上述如图1和图2所示方法,相应的,本申请实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述如图1和图2所示的GLES图像渲染方法。
基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
基于上述如图1、图2所示的方法,以及图3、图4所示的虚拟装置实施例,为了实现上述目的,本申请实施例还提供了一种计算机设备,具体可以为个人计算机、服务器、网络设备等,该计算机设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1和图2所示的GLES图像渲染方法。
可选地,该计算机设备还可以包括用户接口、网络接口、摄像头、射频(RadioFrequency,RF)电路,传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如蓝牙接口、WI-FI接口)等。
本领域技术人员可以理解,本实施例提供的一种计算机设备结构并不构成对该计算机设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储介质中还可以包括操作系统、网络通信模块。操作系统是管理和保存计算机设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与该实体设备中其它硬件和软件之间通信。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现根据接收到的虚拟安卓操作系统发送的OpenGL ES图形库的有效绘图指令,得到用于图像渲染的OpenGL指令集,进一步地,根据有效绘图指令对应的目标应用程序名称,实现对OpenGL指令集中相应图像的渲染。本申请能够根据OpenGL ES图形库的有效绘图指令对应的目标应用程序,利用不同的渲染方式实现对OpenGL指令集中相应图像的渲染,从而针对不同的应用程序,达到在Windows平台下对图像渲染效率进行优化的目的。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (12)
1.一种GLES图像渲染方法,其特征在于,包括:
接收虚拟安卓操作系统发送的OpenGL ES图形库的有效绘图指令;
当监测到目标应用程序启动时,根据所述有效绘图指令对应的OpenGL ES图形库版本号,确定与所述OpenGL ES图形库版本号对应的OpenGL版本号;
根据所述OpenGL版本号和主机操作系统的OpenGL版本号,确定所述主机操作系统可支持的兼容模式;
根据接收到的所述有效绘图指令,得到用于图像渲染的OpenGL指令集;
根据所述有效绘图指令对应的目标应用程序名称,渲染所述OpenGL指令集中的相应图像;
其中,根据接收到的所述有效绘图指令,得到用于图像渲染的OpenGL指令集的步骤,具体包括:
通过调用所述兼容模式,将有效控制命令转换成匹配所述主机操作系统的OpenGL指令集;
其中,根据所述有效绘图指令对应的目标应用程序名称,渲染所述OpenGL指令集中的相应图像的步骤,具体包括:
根据所述目标应用程序名称对应的应用类型,确定与所述应用类型对应的渲染路径;
根据所确定的渲染路径,渲染所述OpenGL指令集中的相应图像;
若所述应用类型为视频,则与所述应用类型对应的渲染路径是指:
主机操作系统根据所述OpenGL指令集中的图像数据,渲染所述图像数据。
2.根据权利要求1所述的方法,其特征在于,接收虚拟安卓操作系统发送的OpenGL ES图形库的有效绘图指令之前,还包括:
虚拟安卓操作系统接收来自目标应用程序的OpenGL ES图形库的绘图指令;
接收虚拟安卓操作系统发送的OpenGL ES图形库的有效绘图指令的步骤,具体包括:
接收虚拟安卓操作系统发送的OpenGL ES图形库的绘图指令;
利用预设的有效性校验算法,计算出所述绘图指令的校验值;
若计算出的所述绘图指令的校验值与所述绘图指令中预存的校验阈值一致,则确定所述绘图指令为有效绘图指令;
若计算出的所述绘图指令的校验值与所述绘图指令中预存的校验阈值不一致,则确定所述绘图指令为无效绘图指令,并忽略所述无效绘图指令。
3.根据权利要求2所述的方法,其特征在于,所述虚拟安卓操作系统接收来自目标应用程序的状态信息,所述根据接收到的所述有效绘图指令,得到用于图像渲染的OpenGL指令集的步骤,具体包括:
根据所述目标应用程序的状态信息和所述有效绘图指令,转换得到用于图像渲染的OpenGL指令集。
4.根据权利要求1所述的方法,其特征在于,若所述应用类型为游戏,则与所述应用类型对应的渲染路径是指:
对所述OpenGL指令集中的图像数据进行纹理合成,得到纹理合成后的待渲染图像,并渲染所述待渲染图像。
5.根据权利要求1所述的方法,其特征在于,渲染所述OpenGL指令集中的相应图像的步骤之前,还包括:
识别所述OpenGL指令集中的异常信息;
根据所述异常信息的异常类型,执行相应的处理操作;
所述识别所述OpenGL指令集中的异常信息,具体包括:
将所述OpenGL指令集中的字符串信息与预存的异常信息进行比对,确定所述OpenGL指令集中的异常信息。
6.一种GLES图像渲染装置,其特征在于,包括:
校验模块,用于接收虚拟安卓操作系统发送的OpenGL ES图形库的有效绘图指令;
兼容模块,用于当监测到目标应用程序启动时,根据所述有效绘图指令对应的OpenGLES图形库版本号,确定与所述OpenGL ES图形库版本号对应的OpenGL版本号;以及,
根据所述OpenGL版本号和主机操作系统的OpenGL版本号,确定所述主机操作系统可支持的兼容模式;
确定模块,用于根据接收到的所述有效绘图指令,得到用于图像渲染的OpenGL指令集;
渲染模块,用于根据所述有效绘图指令对应的目标应用程序名称,渲染所述OpenGL指令集中的相应图像;
其中,所述确定模块,具体包括:
转换单元,用于通过调用所述兼容模式,将有效控制命令转换成匹配所述主机操作系统的OpenGL指令集;
其中,所述渲染模块,包括:
路径判断单元,用于根据所述目标应用程序名称对应的应用类型,确定与所述应用类型对应的渲染路径;
路径渲染单元,用于根据所确定的渲染路径,渲染所述OpenGL指令集中的相应图像;
若所述应用类型为视频,则与所述应用类型对应的渲染路径是指:
主机操作系统根据所述OpenGL指令集中的图像数据,渲染所述图像数据。
7.根据权利要求6所述的装置,其特征在于,还包括接收模块,用于虚拟安卓操作系统接收来自目标应用程序的OpenGL ES图形库的绘图指令;以及,
所述校验模块,具体包括:
判断单元,用于接收虚拟安卓操作系统发送的OpenGL ES图形库的绘图指令;以及,
利用预设的有效性校验算法,计算出所述绘图指令的校验值;以及,
若计算出的所述绘图指令的校验值与所述绘图指令中预存的校验阈值一致,则确定所述绘图指令为有效绘图指令;以及,
若计算出的所述绘图指令的校验值与所述绘图指令中预存的校验阈值不一致,则确定所述绘图指令为无效绘图指令,并忽略所述无效绘图指令。
8.根据权利要求7所述的装置,其特征在于,所述虚拟安卓操作系统接收来自目标应用程序的状态信息,所述确定模块,用于根据所述目标应用程序的状态信息和所述有效绘图指令,转换得到用于图像渲染的OpenGL指令集。
9.根据权利要求6所述的装置,其特征在于,若所述应用类型为游戏,则与所述应用类型对应的渲染路径是指:
对所述OpenGL指令集中的图像数据进行纹理合成,得到纹理合成后的待渲染图像,并渲染所述待渲染图像。
10.根据权利要求6所述的装置,其特征在于,所述渲染模块,还包括:
异常识别单元,用于识别所述OpenGL指令集中的异常信息;以及,
根据所述异常信息的异常类型,执行相应的处理操作;
所述识别所述OpenGL指令集中的异常信息,具体包括:
将所述OpenGL指令集中的字符串信息与预存的异常信息进行比对,确定所述OpenGL指令集中的异常信息。
11.一种存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1至5中任一项所述的GLES图像渲染方法。
12.一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至5中任一项所述的GLES图像渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010937217.0A CN112200712B (zh) | 2020-09-08 | 2020-09-08 | Gles图像渲染方法及装置、存储介质、计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010937217.0A CN112200712B (zh) | 2020-09-08 | 2020-09-08 | Gles图像渲染方法及装置、存储介质、计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112200712A CN112200712A (zh) | 2021-01-08 |
CN112200712B true CN112200712B (zh) | 2023-10-27 |
Family
ID=74005914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010937217.0A Active CN112200712B (zh) | 2020-09-08 | 2020-09-08 | Gles图像渲染方法及装置、存储介质、计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112200712B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113032025B (zh) * | 2021-03-15 | 2022-10-28 | 厦门亿联网络技术股份有限公司 | 图形渲染方法、装置、终端及存储介质 |
CN112967171A (zh) * | 2021-03-15 | 2021-06-15 | 深圳市瑞驰信息技术有限公司 | 一种基于arm架构实现gpu虚拟化的系统及方法 |
CN114092312A (zh) * | 2022-01-19 | 2022-02-25 | 北京鲸鲮信息系统技术有限公司 | 图像生成方法、装置、电子设备及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6396502B1 (en) * | 1999-10-15 | 2002-05-28 | Hewlett-Packard Company | System and method for implementing accumulation buffer operations in texture mapping hardware |
CN101710429A (zh) * | 2009-10-12 | 2010-05-19 | 湖南大学 | 一种基于动态light map的增强现实系统光照算法 |
CN102323882A (zh) * | 2011-08-31 | 2012-01-18 | 北京华电万通科技有限公司 | 一种应用于Web3D的数据处理装置和方法 |
CN106709856A (zh) * | 2016-11-11 | 2017-05-24 | 广州华多网络科技有限公司 | 一种图形渲染方法及相关设备 |
CN108388460A (zh) * | 2018-02-05 | 2018-08-10 | 中国人民解放军战略支援部队航天工程大学 | 基于图形集群的远程实时渲染平台构建方法 |
CN108765534A (zh) * | 2018-05-24 | 2018-11-06 | 武汉斗鱼网络科技有限公司 | 一种图像渲染方法、装置、设备及存储介质 |
CN109544663A (zh) * | 2018-11-09 | 2019-03-29 | 腾讯科技(深圳)有限公司 | 应用程序的虚拟场景识别与交互键位匹配方法及装置 |
CN111354063A (zh) * | 2020-03-10 | 2020-06-30 | 深信服科技股份有限公司 | 一种三维元素渲染方法、桌面云服务端及桌面云系统 |
CN111488196A (zh) * | 2020-04-13 | 2020-08-04 | 西安万像电子科技有限公司 | 渲染方法及装置、存储介质、处理器 |
CN111494936A (zh) * | 2020-02-12 | 2020-08-07 | 阿里巴巴集团控股有限公司 | 画面渲染方法、设备、系统及存储介质 |
CN111522670A (zh) * | 2020-05-09 | 2020-08-11 | 中瓴智行(成都)科技有限公司 | 一种用于Android系统的GPU虚拟化方法、系统及介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040174364A1 (en) * | 2003-03-03 | 2004-09-09 | Shehane Patrick D. | Rendering patterned lines in a graphics system |
US10013732B2 (en) * | 2013-06-28 | 2018-07-03 | Lockheed Martin Corporation | Externally directed GPU data |
-
2020
- 2020-09-08 CN CN202010937217.0A patent/CN112200712B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6396502B1 (en) * | 1999-10-15 | 2002-05-28 | Hewlett-Packard Company | System and method for implementing accumulation buffer operations in texture mapping hardware |
CN101710429A (zh) * | 2009-10-12 | 2010-05-19 | 湖南大学 | 一种基于动态light map的增强现实系统光照算法 |
CN102323882A (zh) * | 2011-08-31 | 2012-01-18 | 北京华电万通科技有限公司 | 一种应用于Web3D的数据处理装置和方法 |
CN106709856A (zh) * | 2016-11-11 | 2017-05-24 | 广州华多网络科技有限公司 | 一种图形渲染方法及相关设备 |
CN108388460A (zh) * | 2018-02-05 | 2018-08-10 | 中国人民解放军战略支援部队航天工程大学 | 基于图形集群的远程实时渲染平台构建方法 |
CN108765534A (zh) * | 2018-05-24 | 2018-11-06 | 武汉斗鱼网络科技有限公司 | 一种图像渲染方法、装置、设备及存储介质 |
CN109544663A (zh) * | 2018-11-09 | 2019-03-29 | 腾讯科技(深圳)有限公司 | 应用程序的虚拟场景识别与交互键位匹配方法及装置 |
CN111494936A (zh) * | 2020-02-12 | 2020-08-07 | 阿里巴巴集团控股有限公司 | 画面渲染方法、设备、系统及存储介质 |
CN111354063A (zh) * | 2020-03-10 | 2020-06-30 | 深信服科技股份有限公司 | 一种三维元素渲染方法、桌面云服务端及桌面云系统 |
CN111488196A (zh) * | 2020-04-13 | 2020-08-04 | 西安万像电子科技有限公司 | 渲染方法及装置、存储介质、处理器 |
CN111522670A (zh) * | 2020-05-09 | 2020-08-11 | 中瓴智行(成都)科技有限公司 | 一种用于Android系统的GPU虚拟化方法、系统及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112200712A (zh) | 2021-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112200712B (zh) | Gles图像渲染方法及装置、存储介质、计算机设备 | |
WO2020108085A1 (zh) | 资源配置方法、装置、终端及存储介质 | |
US20180373792A1 (en) | App processing method and apparatus | |
CN111782492B (zh) | 页面首屏加载时长测试方法、装置、计算机设备及介质 | |
WO2017054462A1 (zh) | 视频解码的方法、服务器和移动终端 | |
US20150082239A1 (en) | Remote Virtualization of Mobile Apps with Transformed Ad Target Preview | |
US20150081764A1 (en) | Remote Virtualization of Mobile Apps | |
CN103283250B (zh) | 一种视频重定向的方法、装置、系统 | |
CN110025957B (zh) | 一种云游戏服务器端架构、客户端和系统 | |
US9143811B2 (en) | System and method for providing cloud game service | |
CN103777999A (zh) | 安卓软件模拟方法及装置 | |
CN104837052A (zh) | 播放多媒体数据的方法及装置 | |
US20170201563A1 (en) | Video data providing method, video playback method, device, and system | |
WO2019072208A1 (zh) | 应用程序运行控制方法及设备 | |
US20160291989A1 (en) | Method and system for applying optimal settings from first invocation of a gaming application | |
US20240307767A1 (en) | Cloud Data Processing | |
CN111209115A (zh) | 云桌面vGPU超分配方法 | |
US10318343B2 (en) | Migration methods and apparatuses for migrating virtual machine including locally stored and shared data | |
WO2014121477A1 (zh) | 一种视频重定向的方法、装置、系统及计算机可读介质 | |
CN110764805A (zh) | 客户端无感升级的方法、装置、终端及存储介质 | |
US9460481B2 (en) | Systems and methods for processing desktop graphics for remote display | |
CN114222185A (zh) | 视频播放方法、终端设备及存储介质 | |
CN110808996B (zh) | 一种网络认证方法、装置、电子设备及存储介质 | |
CN114339404A (zh) | 一种windows系统中屏幕保护壁纸的显示方法、装置及电子设备 | |
CN113975793A (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 |