CN111354063A - 一种三维元素渲染方法、桌面云服务端及桌面云系统 - Google Patents
一种三维元素渲染方法、桌面云服务端及桌面云系统 Download PDFInfo
- Publication number
- CN111354063A CN111354063A CN202010162703.XA CN202010162703A CN111354063A CN 111354063 A CN111354063 A CN 111354063A CN 202010162703 A CN202010162703 A CN 202010162703A CN 111354063 A CN111354063 A CN 111354063A
- Authority
- CN
- China
- Prior art keywords
- rendering
- instruction
- desktop cloud
- dimensional element
- opengl
- 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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04815—Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
-
- 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
Abstract
本申请公开了一种三维元素渲染方法,所述三维元素渲染方法包括确定目标访问网页中的待渲染三维元素;其中,所述目标访问网页为目标虚拟机当前访问的网页,所述目标虚拟机运行于所述桌面云服务端;判断所述目标虚拟机是否配置虚拟显卡;若否,则生成所述待渲染三维元素对应的OpenGL ES指令;将所述OpenGL ES指令发送至桌面云客户端,利用所述桌面云客户端的显卡执行渲染所述OpenGL ES指令得到三维元素渲染结果。本方法能够在桌面云场景下降低渲染三维元素对于桌面云服务端CPU的性能消耗,提高三维元素的渲染效果。本申请还公开了一种桌面云服务端、一种桌面云系统、一种存储介质及一种电子设备,具有以上有益效果。
Description
技术领域
本申请涉及桌面云技术领域,特别涉及一种三维元素渲染方法、一种桌面云服务端、一种桌面云系统、一种存储介质及一种电子设备。
背景技术
桌面云是一种可以通过瘦客户端或者其他任何与网络相连的设备来访问跨平台的应用程序,以及整个客户桌面。桌面云广泛应用于政府、银行等安全等级较高的行业中。
目前,桌面云场景下虚拟机使用Direct3D库使用桌面云服务端CPU模拟3D指令来支持浏览器渲染3D网页页面。但是,这种使用桌面云服务端CPU模拟3D指令的方案非常耗费桌面云服务端CPU的性能,将会导致软件卡顿且渲染的图片失真等问题。
因此,如何在桌面云场景下降低渲染三维元素对于桌面云服务端CPU的性能消耗,提高三维元素的渲染效果是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种三维元素渲染方法、一种桌面云服务端、一种桌面云系统、一种存储介质及一种电子设备,能够在桌面云场景下降低渲染三维元素对于桌面云服务端CPU的性能消耗,提高三维元素的渲染效果。
为解决上述技术问题,本申请提供一种三维元素渲染方法,应用于桌面云服务端,该三维元素渲染方法包括:
确定目标访问网页中的待渲染三维元素;其中,所述目标访问网页为目标虚拟机当前访问的网页,所述目标虚拟机运行于所述桌面云服务端;
判断所述目标虚拟机是否配置虚拟显卡;
若否,则生成所述待渲染三维元素对应的OpenGL ES指令;
将所述OpenGL ES指令发送至桌面云客户端,利用所述桌面云客户端的显卡执行渲染所述OpenGL ES指令得到三维元素渲染结果。
可选的,确定目标访问网页中的待渲染三维元素包括:
确定所述目标访问网页对应的渲染指令集合,并利用SwiftShader查询所述渲染指令集合中的三维渲染指令;其中,所述三维渲染指令为采用WebGL绘图协议的渲染指令;
将所述三维渲染指令对应的待渲染元素设置为所述目标访问网页中的待渲染三维元素。
可选的,还包括:
执行所述渲染指令集合中除所述三维渲染指令之外的其他指令,得到二维元素渲染结果,并将所述二维元素渲染结果发送至所述桌面云客户端;
其中,所述桌面云客户端的操作系统为Android系统、Linux系统或Windows系统。
可选的,生成所述待渲染三维元素对应的OpenGL ES指令包括:
将所述待渲染三维元素对应的所述WebGL绘图协议的渲染指令转换为OpenGL ES指令。
可选的,将所述OpenGL ES指令发送至桌面云客户端包括:
封装所述OpenGL ES指令,并将封装后的OpenGL ES指令发送至所述桌面云客户端。
可选的,还包括:
若所述目标虚拟机配置所述虚拟显卡,则利用所述虚拟显卡渲染所述待渲染三维元素得到所述三维元素渲染结果。
可选的,在将所述OpenGL ES指令发送至桌面云客户端之后,还包括:
向所述桌面云客户端发送渲染通知信息;其中,所述渲染通知信息为控制所述桌面云客户端执行渲染所述OpenGL ES指令的信息。
本申请还提供了一种桌面云服务端,包括:
三维元素确定模块,用于确定目标访问网页中的待渲染三维元素;其中,所述目标访问网页为目标虚拟机当前访问的网页,所述目标虚拟机运行于所述桌面云服务端;
判断模块,用于判断所述目标虚拟机是否配置虚拟显卡;
指令生成模块,用于若目标虚拟机配置所述虚拟显卡,则生成所述待渲染三维元素对应的OpenGL ES指令;
渲染模块,用于将所述OpenGL ES指令发送至桌面云客户端,利用所述桌面云客户端的显卡执行渲染所述OpenGL ES指令得到三维元素渲染结果。
本申请还提供了一种桌面云系统,包括:
桌面云服务端,用于确定目标访问网页中的待渲染三维元素;其中,所述目标访问网页为目标虚拟机当前访问的网页,所述目标虚拟机运行于所述桌面云服务端;用于若所述目标虚拟机未配置虚拟显卡生成所述待渲染三维元素对应的OpenGL ES指令;还用于将所述OpenGL ES指令发送至桌面云客户端;
桌面云客户端,用于利用显卡执行渲染所述OpenGL ES指令得到三维元素渲染结果。
本申请还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述三维元素渲染方法执行的步骤。
本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述三维元素渲染方法执行的步骤。
本申请提供了一种三维元素渲染方法,包括确定目标访问网页中的待渲染三维元素;其中,所述目标访问网页为目标虚拟机当前访问的网页,所述目标虚拟机运行于所述桌面云服务端;判断所述目标虚拟机是否配置虚拟显卡;若否,则生成所述待渲染三维元素对应的OpenGL ES指令;将所述OpenGL ES指令发送至桌面云客户端,利用所述桌面云客户端的显卡执行渲染所述OpenGL ES指令得到三维元素渲染结果。
本申请首先确定桌面云服务端当前访问的目标访问网页中的待渲染三维元素,若目标虚拟机未配置虚拟显卡,则生成待渲染三维元素对应的OpenGL ES指令。本申请利用桌面云客户端的显卡渲染OpenGL ES指令得到三维元素渲染结果,无需桌面云服务端的CPU参与三维元素的渲染。本申请无需将OpenGL ES指令转换为CPU能够识别的指令,避免转换过程会导致OpenGL ES指令失真以及产生多余指令的情况,且GPU比CPU处理图形指令的效率高很多,因此本申请能够在桌面云场景下降低渲染三维元素对于桌面云服务端CPU的性能消耗,提高三维元素的渲染效果。本申请同时还提供了一种桌面云服务端、一种桌面云系统、一种存储介质及一种电子设备,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种三维元素渲染方法的流程图;
图2为本申请实施例所提供的一种基于桌面云场景下的网页3D指令渲染方法的流程图;
图3为本申请实施例所提供的一种桌面云系统的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面请参见图1,图1为本申请实施例所提供的一种三维元素渲染方法的流程图。
具体步骤可以包括:
S101:确定目标访问网页中的待渲染三维元素;
其中,本实施例的执行主体可以为桌面云服务端,桌面云服务端中可以运行有多个虚拟机,每一虚拟机均有其对应的桌面云客户端。桌面云服务端通过将对虚拟机桌面图像进行编码,然后将编码数据传输到桌面云客户端。用户可以通过鼠标、键盘或音频等方式在桌面云客户端中输入用户操作,桌面云客户端将用户操作发送至桌面云服务端,桌面云服务端生成与用户操作相对应的绘图指令,进而在虚拟机桌面图像中生成绘图指令对应的绘图指令图像。桌面云客户端在接收到桌面云服务端发送的编码数据后,可以对目标编码数据执行相应的解码操作得到需要显示的画面。
在本步骤之前还可以存在桌面云客户端向桌面云服务端传输用户访问目标访问网页操作的步骤,桌面云服务端中的目标虚拟机可以执行访问目标访问网页的操作。具体的,本实施例中所提到的目标访问网页为目标虚拟机当前访问的网页,目标虚拟机运行于桌面云服务端。
目标访问网页中可以存在任意数量个待渲染元素,待渲染元素包括待渲染二维元素,也可以包括待渲染三维元素。在本步骤中可以存在判断目标访问网页中是否包括待渲染三维元素的操作,若是则确定目标访问网页中的待渲染三维元素。待渲染三维元素为具有z-index显示属性的图像,z-index是针对网页显示中的一种属性。例如以电脑屏左上角为起点,水平方向从左往右为x轴正向,垂直方向从上往下为y轴正向,屏幕从里往外为z轴正向。由于显示器所显示的图案是一个二维平面,拥有x轴和y轴来表示位置属性。为了表示三维立体的概念,即显示元素的上下层的叠加顺序,可以引入z-index属性来表示z轴的区别,以便表示一个元素在叠加顺序上的上下立体关系。可见,待渲染三维元素具有x轴方向和y轴方向的位置属性,还具有z轴方向的z-index显示属性。
S102:判断目标虚拟机是否配置虚拟显卡;若否,则进入S103;若是,则进入S105;
其中,在桌面云服务端中可以存在为运行于桌面云服务端的虚拟机配置虚拟显卡的操作,若目标虚拟机已经分配有虚拟显卡则可以直接利用桌面云服务端的虚拟显卡渲染待渲染三维元素得到三维元素渲染结果。若目标虚拟机未被分配虚拟显卡则说明本实施例中所提到的目标虚拟机为2D虚拟机,虚拟化场景下给虚拟机添加显卡成本非常高,在大多数应用场景中桌面云服务端的虚拟机为未配置虚拟显卡的2D虚拟机。
作为一种可行的实施方式,若桌面云服务端中未向虚拟机配置虚拟显卡则可以直接判定目标虚拟机未配置虚拟显卡,若桌面云服务端中向虚拟机配置虚拟显卡则可以生成虚拟显卡配置表,通过查询虚拟显卡配置表判断目标虚拟机是否配置虚拟显卡。
S103:生成待渲染三维元素对应的OpenGL ES指令;
其中,本步骤建立在目标虚拟机未配置虚拟显卡的基础上,可以生成待渲染三维元素对应的OpenGL ES指令。具体的,本步骤可以向确定待渲染三维元素对应的渲染指令,将该渲染指令转换为对应的OpenGL ES指令。OpenGL ES是OpenGL for Embedded Systems(嵌入式系统的开放图形库)的简写,OpenGL ES指令为嵌入式系统的开放图形库的绘制指令,OpenGL ES指令可以用于渲染上下文Context和绘制表面Surface以便完成图形图像(如待渲染三维元素)的绘制。OpenGL ES是OpenGL三维图形API(Application ProgrammingInterface,应用程序接口)的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。
S104:将OpenGL ES指令发送至桌面云客户端,利用桌面云客户端的显卡执行渲染OpenGL ES指令得到三维元素渲染结果。
其中,在得到待渲染三维元素对应的OpenGL ES指令之后,本实施例将OpenGL ES指令传输至目标虚拟机对应的桌面云客户端,进而利用桌面云客户端的显卡执行渲染OpenGL ES指令得到三维元素渲染结果。作为一种可行的实施方式,本实施例还可以存在向桌面云客户端传输渲染通知信息的操作,以便桌面云客户端在接收到渲染通知信息后执行接收到的OpenGL ES指令。
具体的,在本步骤中可以先封装OpenGL ES指令,并将封装后的OpenGL ES指令通过虚拟机通道发送至桌面云客户端。虚拟机通道为目标虚拟机和桌面云客户端之间为了通信约定的协议,虚拟机通道允许虚拟机和客户端终端之间进行通信交互。
S105:利用虚拟显卡渲染待渲染三维元素得到三维元素渲染结果。
其中,在得到三维元素渲染结果之后,本实施例还可以根据其他渲染结果得到当前桌面图像,对当前桌面图像执行相应的编码操作,并将编码结果发送至目标虚拟机对应的桌面云客户端,以便桌面云客户端进行显示。
作为一种可行的实施方式,在将所述OpenGL ES指令发送至桌面云客户端之后,还可以向所述桌面云客户端发送渲染通知信息;其中,所述渲染通知信息为控制所述桌面云客户端执行渲染所述OpenGL ES指令的信息。
本实施例首先确定桌面云服务端当前访问的目标访问网页中的待渲染三维元素,若目标虚拟机未配置虚拟显卡,则生成待渲染三维元素对应的OpenGL ES指令。本实施例利用桌面云客户端的显卡渲染OpenGL ES指令得到三维元素渲染结果,无需桌面云服务端的CPU参与三维元素的渲染。本实施例无需将OpenGL ES指令转换为CPU能够识别的指令,避免转换过程会导致OpenGL ES指令失真以及产生多余指令的情况,且GPU比CPU处理图形指令的效率高很多,因此本实施例能够在桌面云场景下降低渲染三维元素对于桌面云服务端CPU的性能消耗,提高三维元素的渲染效果。
作为对于图1对应实施例的进一步介绍本实施例可以基于渲染工具SwiftShader确定目标访问网页中的待渲染三维元素,具体过程如下:确定所述目标访问网页对应的渲染指令集合,并利用SwiftShader查询所述渲染指令集合中的三维渲染指令;将所述三维渲染指令对应的待渲染元素设置为所述目标访问网页中的待渲染三维元素。
其中,本实施例可以预先在目标虚拟机上安装好SwiftShader,在浏览器中访问目标访问网页时,浏览器会执行目标访问网页的JavaScript脚本,JavaScript脚本如果使用到WebGL3D元素则进入利用SwiftShader查询所述渲染指令集合中的三维渲染指令的操作流程。JavaScript是一种属于网络的脚本语言,可以用来为网页添加多种动态功能。JavaScript脚本的源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行,浏览器通过执行JavaScript脚本可以访问对应的网页。SwiftShader是一个高性能的、基于CPU的OpenGL ES和Direct3D 9图形APIs的实现。SwiftShader的目标是为高级3D图形提供硬件独立性。
作为一种可行的实施方式,上述提到的三维渲染指令可以为采用WebGL绘图协议的渲染指令,相应的,生成所述待渲染三维元素对应的OpenGL ES指令的操作可以为:将所述待渲染三维元素对应的所述WebGL绘图协议的渲染指令转换为OpenGL ES指令。WebGL(Web Graphics Library)是一种3D绘图协议,这种绘图技术标准允许把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的一个JavaScript绑定,WebGL可以为HTML5Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。如果浏览器使用WebGL3D元素,会有特定渲染指令,在检测到特定的渲染之后可以进入例SwiftShader查询所述渲染指令集合中的三维渲染指令的操作。
作为一种可行的实施方式,本实施例还可以执行所述渲染指令集合中除所述三维渲染指令之外的其他指令,得到二维元素渲染结果,并将所述二维元素渲染结果发送至所述桌面云客户端,所述桌面云客户端的操作系统为Android系统、Linux系统或Windows系统。可以理解的是,在利用桌面云客户端渲染OpenGL ES指令得到三维元素渲染结果的前提下,若得到二维元素渲染结果可以对三维元素渲染结果所在的位置进行标记,并将二维元素渲染结果对应的桌面图像进行编码,将编码结果传输至桌面云客户端。桌面云客户端接收到编码结果后可以结合已生成的三维元素渲染结果得到最终的桌面图像。
下面通过在实际应用中的实施例说明上述实施例描述的流程,请参见图2,图2为本申请实施例所提供的一种基于桌面云场景下的网页3D指令渲染方法的流程图,本实施例可以包括以下步骤:
步骤1、虚拟机执行浏览器网页访问指令时,检测到浏览器页面使用WebGL 3D元素;
步骤2、判断虚拟机是否存在显卡,如果存在则直接使用虚拟机的显卡渲染OpenGLES指令,如果不存在则进入步骤3;
步骤3、使用SwiftShader获取WebGL指令并生成OpenGL ES指令;
其中,SwiftShader为google的一个开源库,能够识别到WebGL指令并能够将WebGL指令转化为OpenGL ES指令。
步骤4、封装OpenGL ES指令,并将OpenGL ES指令封装并通过虚拟机通道发送到桌面云客户端上面。
步骤5、通知桌面云客户端渲染OpenGL ES指令;
本实施例中的桌面云客户端可以为Android终端,进而使用Android终端渲染OpenGL ES指令,Android可以支持OpenGL ES指令的渲染。当然桌面云客户端可以为linux终端或windows终端,linux终端和windows终端同样支持OpenGL ES指令渲染。
本实施例使用SwiftShader代理掉OpenGL ES指令,再通过虚拟通道发送到客户端上,然后再使用客户端的显卡渲染OpenGL ES指令。本实施例不限于浏览器,采用OpenGL ES指令渲染3D均可以采用该方案。本实施例克服了桌面云场景下3D场景下渲染高成本,以及2D虚拟机渲WebGL网页卡顿、失真甚至无法渲染等问题。
本申请还提供了一种桌面云服务端,该桌面云服务端可以包括:
三维元素确定模块,用于确定目标访问网页中的待渲染三维元素;其中,所述目标访问网页为目标虚拟机当前访问的网页,所述目标虚拟机运行于所述桌面云服务端;
判断模块,用于判断所述目标虚拟机是否配置虚拟显卡;
指令生成模块,用于若目标虚拟机配置所述虚拟显卡,则生成所述待渲染三维元素对应的OpenGL ES指令;
渲染模块,用于将所述OpenGL ES指令发送至桌面云客户端,利用所述桌面云客户端的显卡执行渲染所述OpenGL ES指令得到三维元素渲染结果。
本实施例首先确定桌面云服务端当前访问的目标访问网页中的待渲染三维元素,若目标虚拟机未配置虚拟显卡,则生成待渲染三维元素对应的OpenGL ES指令。本实施例利用桌面云客户端的显卡渲染OpenGL ES指令得到三维元素渲染结果,无需桌面云服务端的CPU参与三维元素的渲染。本实施例无需将OpenGL ES指令转换为CPU能够识别的指令,避免转换过程会导致OpenGL ES指令失真以及产生多余指令的情况,且GPU比CPU处理图形指令的效率高很多,因此本实施例能够在桌面云场景下降低渲染三维元素对于桌面云服务端CPU的性能消耗,提高三维元素的渲染效果。
进一步的,三维元素确定模块包括:
指令集合确定单元,用于确定所述目标访问网页对应的渲染指令集合,并利用SwiftShader查询所述渲染指令集合中的三维渲染指令;其中,所述三维渲染指令为采用WebGL绘图协议的渲染指令;
元素确定单元,用于将所述三维渲染指令对应的待渲染元素设置为所述目标访问网页中的待渲染三维元素。
进一步的,还包括:
二维渲染模块,用于执行所述渲染指令集合中除所述三维渲染指令之外的其他指令,得到二维元素渲染结果,并将所述二维元素渲染结果发送至所述桌面云客户端,所述桌面云客户端的操作系统为Android系统、Linux系统或Windows系统。
进一步的,指令生成模块具体为若目标虚拟机配置所述虚拟显卡,将所述待渲染三维元素对应的所述WebGL绘图协议的渲染指令转换为OpenGL ES指令的模块。
进一步的,渲染模块包括:
封装单元,用于封装所述OpenGL ES指令,并将封装后的OpenGL ES指令发送至所述桌面云客户端。
进一步的,还包括:
显卡渲染模块,用于若所述目标虚拟机配置所述虚拟显卡,则利用所述虚拟显卡渲染所述待渲染三维元素得到所述三维元素渲染结果。
进一步的,还包括:
通知模块,用于在将所述OpenGL ES指令发送至桌面云客户端之后,向所述桌面云客户端发送渲染通知信息;其中,所述渲染通知信息为控制所述桌面云客户端执行渲染所述OpenGL ES指令的信息。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
请参见图3,图3为本申请实施例所提供的一种桌面云系统的结构示意图,该桌面云系统可以包括:
桌面云服务端A,用于确定目标访问网页中的待渲染三维元素;其中,所述目标访问网页为目标虚拟机当前访问的网页,所述目标虚拟机运行于所述桌面云服务端;用于若所述目标虚拟机未配置虚拟显卡生成所述待渲染三维元素对应的OpenGL ES指令;还用于将所述OpenGL ES指令发送至桌面云客户端;
桌面云客户端B,用于利用显卡执行渲染所述OpenGL ES指令得到三维元素渲染结果。
本实施例首先确定桌面云服务端当前访问的目标访问网页中的待渲染三维元素,若目标虚拟机未配置虚拟显卡,则生成待渲染三维元素对应的OpenGL ES指令。本实施例利用桌面云客户端的显卡渲染OpenGL ES指令得到三维元素渲染结果,无需桌面云服务端的CPU参与三维元素的渲染。本实施例无需将OpenGL ES指令转换为CPU能够识别的指令,避免转换过程会导致OpenGL ES指令失真以及产生多余指令的情况,且GPU比CPU处理图形指令的效率高很多,因此本实施例能够在桌面云场景下降低渲染三维元素对于桌面云服务端CPU的性能消耗,提高三维元素的渲染效果。
本申请还提供了一种存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (11)
1.一种三维元素渲染方法,其特征在于,应用于桌面云服务端,包括:
确定目标访问网页中的待渲染三维元素;其中,所述目标访问网页为目标虚拟机当前访问的网页,所述目标虚拟机运行于所述桌面云服务端;
判断所述目标虚拟机是否配置虚拟显卡;
若否,则生成所述待渲染三维元素对应的OpenGL ES指令;
将所述OpenGL ES指令发送至桌面云客户端,利用所述桌面云客户端的显卡执行渲染所述OpenGL ES指令得到三维元素渲染结果。
2.根据权利要求1所述三维元素渲染方法,其特征在于,确定目标访问网页中的待渲染三维元素包括:
确定所述目标访问网页对应的渲染指令集合,并利用SwiftShader查询所述渲染指令集合中的三维渲染指令;其中,所述三维渲染指令为采用WebGL绘图协议的渲染指令;
将所述三维渲染指令对应的待渲染元素设置为所述目标访问网页中的待渲染三维元素。
3.根据权利要求2所述三维元素渲染方法,其特征在于,还包括:
执行所述渲染指令集合中除所述三维渲染指令之外的其他指令,得到二维元素渲染结果,并将所述二维元素渲染结果发送至所述桌面云客户端;
其中,所述桌面云客户端的操作系统为Android系统、Linux系统或Windows系统。
4.根据权利要求2所述三维元素渲染方法,其特征在于,生成所述待渲染三维元素对应的OpenGL ES指令包括:
将所述待渲染三维元素对应的所述WebGL绘图协议的渲染指令转换为OpenGL ES指令。
5.根据权利要求1所述三维元素渲染方法,其特征在于,将所述OpenGL ES指令发送至桌面云客户端包括:
封装所述OpenGL ES指令,并将封装后的OpenGL ES指令发送至所述桌面云客户端。
6.根据权利要求1所述三维元素渲染方法,其特征在于,还包括:
若所述目标虚拟机配置所述虚拟显卡,则利用所述虚拟显卡渲染所述待渲染三维元素得到所述三维元素渲染结果。
7.根据权利要求1至6任一项所述三维元素渲染方法,其特征在于,在将所述OpenGL ES指令发送至桌面云客户端之后,还包括:
向所述桌面云客户端发送渲染通知信息;其中,所述渲染通知信息为控制所述桌面云客户端执行渲染所述OpenGL ES指令的信息。
8.一种桌面云服务端,其特征在于,包括:
三维元素确定模块,用于确定目标访问网页中的待渲染三维元素;其中,所述目标访问网页为目标虚拟机当前访问的网页,所述目标虚拟机运行于所述桌面云服务端;
判断模块,用于判断所述目标虚拟机是否配置虚拟显卡;
指令生成模块,用于若目标虚拟机配置所述虚拟显卡,则生成所述待渲染三维元素对应的OpenGL ES指令;
渲染模块,用于将所述OpenGL ES指令发送至桌面云客户端,利用所述桌面云客户端的显卡执行渲染所述OpenGL ES指令得到三维元素渲染结果。
9.一种桌面云系统,其特征在于,包括:
桌面云服务端,用于确定目标访问网页中的待渲染三维元素;其中,所述目标访问网页为目标虚拟机当前访问的网页,所述目标虚拟机运行于所述桌面云服务端;用于若所述目标虚拟机未配置虚拟显卡生成所述待渲染三维元素对应的OpenGL ES指令;还用于将所述OpenGL ES指令发送至桌面云客户端;
桌面云客户端,用于利用显卡执行渲染所述OpenGL ES指令得到三维元素渲染结果。
10.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1至7任一项所述三维元素渲染方法的步骤。
11.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上权利要求1至7任一项所述三维元素渲染方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010162703.XA CN111354063B (zh) | 2020-03-10 | 2020-03-10 | 一种三维元素渲染方法、桌面云服务端及桌面云系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010162703.XA CN111354063B (zh) | 2020-03-10 | 2020-03-10 | 一种三维元素渲染方法、桌面云服务端及桌面云系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111354063A true CN111354063A (zh) | 2020-06-30 |
CN111354063B CN111354063B (zh) | 2023-09-08 |
Family
ID=71197402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010162703.XA Active CN111354063B (zh) | 2020-03-10 | 2020-03-10 | 一种三维元素渲染方法、桌面云服务端及桌面云系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111354063B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111798553A (zh) * | 2020-07-13 | 2020-10-20 | 重庆大学 | 基于WebGL的三维模型渲染方法、系统及相关装置 |
CN111882628A (zh) * | 2020-08-05 | 2020-11-03 | 北京智湃科技有限公司 | 一种基于WebGL对3D数字虚拟人实时行为渲染的方法 |
CN112200712A (zh) * | 2020-09-08 | 2021-01-08 | 成都安易迅科技有限公司 | Gles图像渲染方法及装置、存储介质、计算机设备 |
CN112596852A (zh) * | 2020-12-08 | 2021-04-02 | 上海鲲鲸云股份有限公司 | 一种图形显示方法、装置、系统、电子设备及存储介质 |
CN112774193A (zh) * | 2021-01-14 | 2021-05-11 | 江苏卫健信息科技有限公司 | 一种云游戏的图像渲染方法 |
CN114513512A (zh) * | 2022-02-08 | 2022-05-17 | 腾讯科技(深圳)有限公司 | 界面渲染的方法及装置 |
CN114756334A (zh) * | 2022-06-14 | 2022-07-15 | 海马云(天津)信息技术有限公司 | 服务器与基于服务器的图形渲染方法 |
CN115482325A (zh) * | 2022-09-29 | 2022-12-16 | 北京百度网讯科技有限公司 | 画面渲染方法、装置、系统、设备及介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102254292A (zh) * | 2010-05-20 | 2011-11-23 | 盛乐信息技术(上海)有限公司 | 远程3d指令渲染系统及方法 |
CN106020929A (zh) * | 2016-05-13 | 2016-10-12 | 深圳市青葡萄科技有限公司 | 一种虚拟化环境下支持3d应用的系统和方法 |
US20160335738A1 (en) * | 2013-10-25 | 2016-11-17 | Futurewei Technologies, Inc. | System and Method for Distributed Virtualization of GPUs in Desktop Cloud |
CN107729049A (zh) * | 2017-09-13 | 2018-02-23 | 深信服科技股份有限公司 | 指令转换方法、设备及计算机可读存储介质 |
CN107832108A (zh) * | 2016-09-14 | 2018-03-23 | 阿里巴巴集团控股有限公司 | 3D canvas网页元素的渲染方法、装置及电子设备 |
CN109615709A (zh) * | 2018-12-10 | 2019-04-12 | 长春理工大学 | 基于云计算的多人协作三维场景建模与绘制方法 |
CN110458748A (zh) * | 2019-06-27 | 2019-11-15 | 西安万像电子科技有限公司 | 数据传输方法、服务器及客户端 |
CN110545415A (zh) * | 2019-07-16 | 2019-12-06 | 西安万像电子科技有限公司 | 数据传输方法、装置及服务器 |
CN110647375A (zh) * | 2019-09-23 | 2020-01-03 | 天津卓朗科技发展有限公司 | 云桌面的图像渲染方法、装置和云服务器 |
-
2020
- 2020-03-10 CN CN202010162703.XA patent/CN111354063B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102254292A (zh) * | 2010-05-20 | 2011-11-23 | 盛乐信息技术(上海)有限公司 | 远程3d指令渲染系统及方法 |
US20160335738A1 (en) * | 2013-10-25 | 2016-11-17 | Futurewei Technologies, Inc. | System and Method for Distributed Virtualization of GPUs in Desktop Cloud |
CN106020929A (zh) * | 2016-05-13 | 2016-10-12 | 深圳市青葡萄科技有限公司 | 一种虚拟化环境下支持3d应用的系统和方法 |
CN107832108A (zh) * | 2016-09-14 | 2018-03-23 | 阿里巴巴集团控股有限公司 | 3D canvas网页元素的渲染方法、装置及电子设备 |
CN107729049A (zh) * | 2017-09-13 | 2018-02-23 | 深信服科技股份有限公司 | 指令转换方法、设备及计算机可读存储介质 |
CN109615709A (zh) * | 2018-12-10 | 2019-04-12 | 长春理工大学 | 基于云计算的多人协作三维场景建模与绘制方法 |
CN110458748A (zh) * | 2019-06-27 | 2019-11-15 | 西安万像电子科技有限公司 | 数据传输方法、服务器及客户端 |
CN110545415A (zh) * | 2019-07-16 | 2019-12-06 | 西安万像电子科技有限公司 | 数据传输方法、装置及服务器 |
CN110647375A (zh) * | 2019-09-23 | 2020-01-03 | 天津卓朗科技发展有限公司 | 云桌面的图像渲染方法、装置和云服务器 |
Non-Patent Citations (2)
Title |
---|
程礼铭: "虚拟化技术如何应对3D时代", 《通讯世界》 * |
程礼铭: "虚拟化技术如何应对3D时代", 《通讯世界》, no. 15, 12 August 2015 (2015-08-12) * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111798553A (zh) * | 2020-07-13 | 2020-10-20 | 重庆大学 | 基于WebGL的三维模型渲染方法、系统及相关装置 |
CN111882628A (zh) * | 2020-08-05 | 2020-11-03 | 北京智湃科技有限公司 | 一种基于WebGL对3D数字虚拟人实时行为渲染的方法 |
CN112200712A (zh) * | 2020-09-08 | 2021-01-08 | 成都安易迅科技有限公司 | Gles图像渲染方法及装置、存储介质、计算机设备 |
CN112200712B (zh) * | 2020-09-08 | 2023-10-27 | 成都安易迅科技有限公司 | Gles图像渲染方法及装置、存储介质、计算机设备 |
CN112596852A (zh) * | 2020-12-08 | 2021-04-02 | 上海鲲鲸云股份有限公司 | 一种图形显示方法、装置、系统、电子设备及存储介质 |
CN112774193A (zh) * | 2021-01-14 | 2021-05-11 | 江苏卫健信息科技有限公司 | 一种云游戏的图像渲染方法 |
CN114513512A (zh) * | 2022-02-08 | 2022-05-17 | 腾讯科技(深圳)有限公司 | 界面渲染的方法及装置 |
CN114756334A (zh) * | 2022-06-14 | 2022-07-15 | 海马云(天津)信息技术有限公司 | 服务器与基于服务器的图形渲染方法 |
CN114756334B (zh) * | 2022-06-14 | 2022-09-30 | 海马云(天津)信息技术有限公司 | 服务器与基于服务器的图形渲染方法 |
CN115482325A (zh) * | 2022-09-29 | 2022-12-16 | 北京百度网讯科技有限公司 | 画面渲染方法、装置、系统、设备及介质 |
CN115482325B (zh) * | 2022-09-29 | 2023-10-31 | 北京百度网讯科技有限公司 | 画面渲染方法、装置、系统、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111354063B (zh) | 2023-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111354063B (zh) | 一种三维元素渲染方法、桌面云服务端及桌面云系统 | |
US11012740B2 (en) | Method, device, and storage medium for displaying a dynamic special effect | |
US20200364937A1 (en) | System-adaptive augmented reality | |
EP3657327A1 (en) | Method for rendering game, and method, apparatus and device for generating game resource file | |
TW201812613A (zh) | 3D canvas網頁元素的渲染方法、裝置及電子設備 | |
KR20120009564A (ko) | 3차원 마우스 포인터 생성방법 및 생성장치 | |
CN110032614B (zh) | 基于wasm的地图矢量渲染方法和装置 | |
CN107281753B (zh) | 场景音效混响控制方法及装置、存储介质及电子设备 | |
CN108765539B (zh) | 基于OpenGLES的图像渲染方法、装置、设备及存储介质 | |
CN113094123A (zh) | 应用程序中功能的实现方法、装置、电子设备和存储介质 | |
CN103679813B (zh) | 三维数字地球的构建方法以及三维数字地球系统 | |
CN113244614A (zh) | 图像画面展示方法、装置、设备及存储介质 | |
US9721359B2 (en) | Apparatus and method of decompressing rendering data and recording medium thereof | |
EP4283441A1 (en) | Control method, device, equipment and storage medium for interactive reproduction of target object | |
US8854368B1 (en) | Point sprite rendering in a cross platform environment | |
KR20220013410A (ko) | 3차원 포인트 클라우드를 기반한 초기 시야각 제어 및 프레젠테이션 방법 및 시스템 | |
CN110968395A (zh) | 一种在模拟器中处理渲染指令的方法及移动终端 | |
CN112711729A (zh) | 基于页面动画的渲染方法、装置、电子设备及存储介质 | |
JP2024504053A (ja) | 二次元コード表示方法、装置、デバイス及び媒体 | |
CN111798361A (zh) | 渲染方法、装置、电子设备及计算机可读存储介质 | |
US20170018052A1 (en) | Method and Apparatus for Data Communication in Virtualized Environment, and Processor | |
CN110069254B (zh) | 文本显示方法、装置及服务器 | |
CN111199511A (zh) | 图形的生成方法、装置和计算机可读存储介质 | |
KR101996159B1 (ko) | 정보 제시 방법 및 장치 | |
CN111882629A (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 |