一种虚拟化环境下支持3d应用的系统和方法

文档序号:10654289阅读:209来源:国知局
一种虚拟化环境下支持3d应用的系统和方法
【专利摘要】本发明公开了一种虚拟化环境下支持3D应用的系统和方法,属于计算机虚拟化技术领域,该系统具体包括宿主机、虚拟机以及终端三部分,宿主机与终端之间,利用底层的DirectX和OpenGL对3D会话进行解析,并在底层截获3D操作指令,进行封装,通过3D指令的重定向的方式,结合远程桌面的显示协议传递,将虚拟机的图形流畅显示到终端显示器,这样充分利用了终端上的显卡,进行高性能、高仿真的3D渲染,提高用户的体验度。
【专利说明】
一种虚拟化环境下支持3D应用的系统和方法
技术领域
[0001]本发明涉及计算机虚拟化技术领域,尤其是一种在虚拟化环境下支持3D应用的系统和方法。
【背景技术】
[0002]虚拟化技术在节省IT硬件成本,提高服务器利用率等方面为企业带来了诸多好处,随着虚拟化技术及管理的提升和普及,越来越多的企业开始进行虚拟化方案的部署,包括服务器虚拟化和桌面虚拟化。虚拟化技术目前基本上都是通过Intel和AMD公司提供的VT技术,通过Hyperv i sor层模拟所有的系统所需的各种资源,例如CPU、内存、网卡、声卡、硬盘等。目前这些技术能够使得Windows/Linux/Unix等操作系统流畅地运行在虚拟化之上,除了 3D之外的软件基本都能够流畅使用。
[0003]虚拟化的环境下使用3D(三维)软件进行3D渲染,目前来说有如下3种方式,这3种方式的原理和优缺点分别描述如下:
(I)软件模拟:通过一些驱动将GPU的工作转移到CPU上,也就是通过软件来模拟GPU,这种方式能够替代一些简单的3D图形处理。其优点:不需要物理显卡,简单;缺点:由于CPU和GPU(图形处理器)的差异性,CPU并不能够提供很高的处理性能,仅可满足一般的3D图形处理。同时对部分渲染操作不兼容。
[0004](2)显卡穿透(Pass-through)技术:通过将宿主机上已有的显卡设备直接分配给虚拟机使用,虚拟机将以独占的方式访问宿主机的显卡设备。优点:独占的显卡可以为虚拟机提供尚性能的显卡能力。缺点:显卡被独占,无法被多个虚拟机共孚使用,在桌面虚拟化环境下通常一台宿主机需要承载数十个虚拟机,而独占的方式显然满足不了几个虚拟机的使用,且每个虚拟机需要一个显卡,那么成本也非常昂贵;无法满足虚拟机在不同宿主机之间动态迀移的场景。
[0005](3)显卡虚拟化的方式:通过对宿主机上安装的显卡划分为多个不同的虚拟适配器,从而将其分配给多个虚拟机同时使用。优点:可以多个虚拟机共享一个显卡,且可以获得不错的性能。缺点:需要专业的显卡才能支持,例如Nvidia的K1/K2,尽管能够虚拟化给多个虚拟机使用,但由于支持虚拟化的显卡本身的成本昂贵,因此成本依然不低;显卡渲染后的数据需要再次传入到虚拟机,而渲染后的图形数据非常大,对性能会产生一定影响。
[0006]在桌面虚拟化的环境下,接入终端无论是基于X86还是ARM架构的通常都含有显卡。通常3D软件的渲染都是依赖于显卡,而由于显卡的特殊性,致使大部分情况下该显卡被闲置,因为远程显示协议传输的基本都是音频、键鼠事件、2D的图形输出等,能够用到显卡的地方较少。

【发明内容】

[0007]本发明要解决的技术问题是提供一种虚拟化环境下支持3D应用的系统和方法,该系统是利用远程接入的终端上的显卡,通过3D指令的重定向,接入虚拟机,使终端显卡充分利用起来,同时可以避免依赖宿主机上显卡,又可以获得极佳的性能。
[0008]为解决上述技术问题,本发明所采取的技术方案是:一种虚拟化环境下支持3D应用的系统,其特征在于包括宿主机、虚拟机以及终端;
所述的宿主机为安装了虚拟化软件的计算机或物理服务器;
所述的虚拟机是利用虚拟化软件构造出来的虚拟设备,该虚拟设备具有独立的操作系统和应用软件,运行在宿主机之上,和宿主机共享其本身配置的硬件资源;
所述的终端是利用重定向技术,经虚拟桌面显示协议接入到虚拟机的客户端,可以为PC、云终端、零客户机或瘦客户机,其中虚拟桌面是利用虚拟化的技术,将操作系统和应用程序统一存放在数据中心的服务器及存储设备中,通过建立虚拟机池,为不同的用户提供桌面。
[0009]对上述系统组成作进一步补充,所述的虚拟机中应用程序包括DirectX和OpenGL两种三维框架组件,这两种三维框架具有为外部应用程序提供读取接口。
[0010]对上述系统组成作进一步补充,所述的虚拟机中应用程序还包括窗口管理器和三维指令截获驱动模块,其中窗口管理器用于获取三维框架中对应的三维应用程序窗口变化的消息,三维指令截获驱动模块用于在虚拟机操作系统底层截获从DirectX和OpenGL进行三维操作指令,并进行封装。
[0011]对上述系统组成作进一步补充,所述的终端包括GPU以及三维指令接收单元,三维指令接收单元通过网络接收窗口管理器的窗口命令信息,同时三维指令接收单元也接收三维指令截获驱动模块封装的三维操作指令,三维指令接收单元接收的信息进行解封装后,并与GPU之间形成实时交互,利用终端的显卡,根据窗口消息对3D命令进行重新渲染。
[0012]对上述系统组成作进一步补充,所述的终端与宿主机之间通过远程桌面的显示协议传递,传送包括2D图像、音频、键鼠事件内容,将虚拟机的图形流畅显示到终端。
[0013]一种虚拟化环境下支持3D应用的方法,其特征在于包括如下步骤:
(1)根据使用者在虚拟机操作系统里打开3D应用的操作,在终端与虚拟机之间创建3D通信会话;
(2)窗口管理器获取3D应用程序中窗口变化消息,3D指令截获驱动模块底层截获从DirectX和OpenGL进行3D操作的指令,并进行封装;
(3)宿主机把窗口命令及3D操作指令传递给终端的3D指令接收单元,并解封;
(4)宿主机和终端之间利用显示协议进行2D、音频和键盘鼠标信息输出;
(5)根据窗口消息及3D操作指令,与GPU交互,在终端窗口的三维应用程序中,对3D会话进行重新渲染显示。
[0014]对上述方法作进一步补充,所述的步骤(3)中,窗口命令和3D操作指令封装在远程桌面的显示协议中,利用3D重定向技术进行传输。
[0015]对上述方法作进一步补充,所述的步骤(5)中,终端窗口清染时,根据解析指令,结合终端的显卡来完成重新清染。
[0016]采用上述技术方案所产生的有益效果在于:本发明中的虚拟化环境下支持3D应用的系统通过远程接入的终端上的显卡,通过3D指令的重定向技术,实现了虚拟化环境下支持3D应用软件,同时在终端上不需要专业级的显卡,就能满足3D软件高质量渲染的需要,有效降低了整个方案的成本;采用了仅传送3D相关命令的方式避免了需要传输大量渲染后数据的方案,性能上更佳,具有更强的可扩展性,同时终端显卡的硬件性能提升即可带来更好的虚拟化环境下使用3D应用的效果。
【附图说明】
[0017]下面结合附图和【具体实施方式】对本发明作进一步详细的说明。
[0018]图1是本发明中虚拟化环境下支持3D应用系统的框架图;
图2是本发明中虚拟化环境下支持3D应用方法的流程图;
其中:1、宿主机,2、虚拟机,3、终端。
【具体实施方式】
[0019]根据附图1可知,本发明具体涉及一种虚拟化环境下支持3D应用的系统,包括宿主机1、虚拟机2以及终端3,其中宿主机I为安装了虚拟化软件的计算机或物理服务器;虚拟机2是利用虚拟化软件构造出来的虚拟设备,该虚拟设备具有独立的操作系统和应用软件,运行在宿主机之上,和宿主机共享其本身配置的硬件资源;终端3是经虚拟桌面显示协议接入到虚拟机的客户端,可以为PC、云终端、零客户机或瘦客户机等。上述三者之间通过虚拟桌面技术产生相互关联,其中虚拟桌面是利用虚拟化的技术,将操作系统和应用程序统一存放在数据中心的服务器及存储设备中,通过建立虚拟机池,为不同的用户提供桌面。用户通过采用不同的终端设备,利用对应的虚拟桌面显示协议和虚拟机进行连接,从而在终端上显示虚拟机的操作界面,终端仅作为输入端和输出端,计算和存储全部在服务器端。通过显示协议的优化和一些外设的重定向技术,使得访问虚拟桌面和使用本地的PC达到体验一致。该架构可以提供集中管理的维护和安全优势,同时具有移动优势,在任何地方都可以访问到自己的桌面环境。
[0020]在附图1中,各个模块功能如下:DirectX/OpenGL:这2个组件是目前最通用的3D框架,应用程序使用3D绘图通常都是采用该框架提供的接口进行操作;3D指令截获驱动模块:在底层截获从DirectX和OpenGL进行3D操作的指令,并进行封装;窗口管理器:获取3D应用程序窗口变化的消息,例如窗口大小、最小化、最大化、拖动或者遮挡等;显示协议:远程桌面显示协议,传送2D图像、音频、键鼠事件等内容,将虚拟机的图形流畅显示到远端的协议;3D指令接收单元:在终端上接收由虚拟机发送过来的封装过的3D指令和该3D应用程序的窗口消息,通过对3D指令的解封装,在本地根据窗口消息对3D命令进行重新渲染。
[0021 ]本发明中的宿主机I与终端3之间,通过3D指令的重定向的方式,结合远程桌面的显示协议传递,传送包括2D图像、音频、键鼠事件内容,将虚拟机的图形流畅显示到终端,这样充分利用了终端上的显卡,进行高性能、高仿真的3D渲染,提高用户的体验度,其中的重定向是在虚拟化环境下,每个用户都使用的是运行在服务器端的操作系统,那么对于本地瘦终端上所接的所有外设,如果需要在虚拟桌面里面显示出来的话,需要把本地外设映射到虚拟桌面中,使用的效果就好像外设插在普通PC里面一样。本发明则是针对终端显卡与服务器中的显卡进行指令的重定向,来达到本发明的目的。
[0022]为了实现3D应用程序中相互解析,因此在虚拟机中应该安装底层的、用户开发3D软件的应用程序,包括DirectX和OpenGL两种三维框架组件,这两种三维框架需要为外部应用程序提供读取接口。虚拟机中应用程序还包括窗口管理器和三维指令截获驱动模块,其中窗口管理器用于获取三维框架中对应的三维应用程序窗口变化的消息,三维指令截获驱动模块用于在虚拟机操作系统底层截获从DirectX和OpenGL进行三维操作指令,并进行封装。
[0023]本发明中的终端包括GPU以及三维指令接收单元,三维指令接收单元通过网络接收窗口管理器的窗口命令信息,同时三维指令接收单元也接收三维指令截获驱动模块封装的三维操作指令,三维指令接收单元接收的信息进行解封装后,并与GHJ之间形成实时交互,利用终端的显卡,根据窗口消息对3D命令进行重新渲染。
[0024]在桌面虚拟化的环境下,接入终端无论是基于X86还是ARM架构的通常都含有显卡。结合本发明中的虚拟化环境下支持3D应用的系统,可以避免显卡被闲置的情况,再配合远程显示协议传输的基本都是音频、键鼠事件、2D的图形输出等,可以实现充分利用终端显卡,将虚拟机的图形流畅显示到终端,这样充分利用了终端上的显卡,进行高性能、高仿真的3D渲染,从而提高用户的体验度。
[0025]结合上述系统组成,应用如下方法,则可以解决本发明中的问题,该方法为基于虚拟化环境下支持3D应用的方法,见附图2所示,具体包括如下步骤:
(1)根据使用者在虚拟机操作系统里打开3D应用的操作,在终端与虚拟机之间创建3D通信会话;
(2)窗口管理器获取3D应用程序中窗口变化消息,3D指令截获驱动模块底层截获从DirectX和OpenGL进行3D操作的指令,并进行封装;
(3)宿主机把窗口命令及3D操作指令传递给终端的3D指令接收单元,并解封,窗口命令和3D操作指令封装在远程桌面的显示协议中,利用3D重定向技术进行传输。
[0026](4)宿主机和终端之间利用显示协议进行2D、音频和键盘鼠标信息输出;
(5)根据窗口消息及3D操作指令,与GPU交互,在终端窗口的三维应用程序中,对3D会话进行重新渲染显示;终端窗口渲染时,根据解析指令,结合终端的显卡来完成重新渲染。
[0027]利用上述方法,通过远程桌面虚拟技术接入的终端上的显卡,利用3D指令的重定向,充分利用了现有的用于接入虚拟机的终端上的显卡,即可以避免依赖宿主机上显卡,同时又可以获得极佳的性能。
[0028]以上为本发明较佳的实施方式,本发明所属领域的技术人员还能够对上述实施方式进行变更和修改,因此,本发明并不局限于上述的【具体实施方式】,凡是本领域技术人员在本发明的基础上所作的任何显而易见的改进、替换或变型均属于本发明的保护范围。
【主权项】
1.一种虚拟化环境下支持3D应用的系统,其特征在于包括宿主机、虚拟机以及终端; 所述的宿主机为安装了虚拟化软件的计算机或物理服务器; 所述的虚拟机是利用虚拟化软件构造出来的虚拟设备,该虚拟设备具有独立的操作系统和应用软件,运行在宿主机之上,和宿主机共享其本身配置的硬件资源; 所述的终端是经虚拟桌面显示协议接入到虚拟机的客户端,可以为PC、云终端、零客户机或瘦客户机,其中虚拟桌面是利用虚拟化的技术,将操作系统和应用程序统一存放在数据中心的服务器及存储设备中,通过建立虚拟机池,为不同的用户提供桌面。2.根据权利要求1所述的一种虚拟化环境下支持3D应用的系统,其特征在于所述的虚拟机中应用程序包括DirectX和OpenGL两种三维框架组件,这两种三维框架具有为外部应用程序提供读取接口。3.根据权利要求2所述的一种虚拟化环境下支持3D应用的系统,其特征在于所述的虚拟机中应用程序还包括窗口管理器和三维指令截获驱动模块,其中窗口管理器用于获取三维框架中对应的三维应用程序窗口变化的消息,三维指令截获驱动模块用于在虚拟机操作系统底层截获从DirectX和OpenGL进行三维操作指令,并进行封装。4.根据权利要求3所述的一种虚拟化环境下支持3D应用的系统,其特征在于所述的终端包括GPU以及三维指令接收单元,三维指令接收单元通过网络接收窗口管理器的窗口命令信息,同时三维指令接收单元也接收三维指令截获驱动模块封装的三维操作指令,三维指令接收单元接收的信息进行解封装后,并与GPU之间形成实时交互,利用终端的显卡,根据窗口消息对3D命令进行重新渲染。5.根据权利要求4所述的一种虚拟化环境下支持3D应用的系统,其特征在于所述的终端与宿主机之间通过远程桌面的显示协议传递,传送包括2D图像、音频、键鼠事件内容,将虚拟机的图形流畅显示到终端。6.—种虚拟化环境下支持3D应用的方法,其特征在于包括如下步骤: (1)根据使用者在虚拟机操作系统里打开3D应用的操作,在终端与虚拟机之间创建3D通信会话; (2)窗口管理器获取3D应用程序中窗口变化消息,3D指令截获驱动模块底层截获从DirectX和OpenGL进行3D操作的指令,并进行封装; (3)宿主机把窗口命令及3D操作指令传递给终端的3D指令接收单元,并解封; (4)宿主机和终端之间利用显示协议进行2D、音频和键盘鼠标信息输出; (5)根据窗口消息及3D操作指令,与GPU交互,在终端窗口的三维应用程序中,对3D会话进行重新渲染显示。7.根据权利要求7所述的一种虚拟化环境下支持3D应用的方法,其特征在于所述的步骤(3)中,窗口命令和3D操作指令封装在远程桌面的显示协议中,利用3D重定向技术进行传输。8.根据权利要求7所述的一种虚拟化环境下支持3D应用的方法,其特征在于所述的步骤(5)中,终端窗口渲染时,根据解析指令,结合终端的显卡来完成重新渲染。
【文档编号】G06F9/455GK106020929SQ201610314022
【公开日】2016年10月12日
【申请日】2016年5月13日
【发明人】范炉林
【申请人】深圳市青葡萄科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1