一种虚拟现实画面显示控制系统的制作方法

文档序号:13804520阅读:212来源:国知局
一种虚拟现实画面显示控制系统的制作方法

本发明涉及虚拟现实技术领域,尤其涉及一种虚拟现实画面显示控制系统。



背景技术:

虚拟现实(virtualreality,vr)技术是一种可以创建和体验虚拟世界的计算机仿真系统,它利用计算机生成一种模拟环境,是一种多源信息融合的、交互式的三维动态视景和实体行为的系统仿真使用户沉浸到该环境中。现有的vr显示技术的实现方式通常包括以下几种:

一种是传统的基于显示器的二维的电脑桌面显示,其在硬件实现上是将传统的显示设备通过线缆与计算机设备连接,在软件实现上是采用特定的三维应用程序通过操作系统提供的接口将vr图像传输至显示器上显示。

一种是基于vr显示技术的三维应用程序,其在硬件实现上是将专门用于vr显示的头戴式显示设备通过线缆与计算机设备连接,在软件实现上则是采用特定的三维应用程序通过操作系统提供的三维图形接口将图像传输至头戴式显示设备上显示。

一种是基于vr显示技术的二维的电脑桌面显示,其本质上同样是一个基于vr显示技术的三维应用程序,但是只在三维场景中显示一个虚拟的显示器,用户可以任意调整该显示器的大小、位置、方向以及形状等,其实现方式是通过操作系统提供的桌面复制接口(例如远程桌面)以及三维图形借口,将图像最终传输至虚拟形成的显示器中。

上述三种实现方式在具体执行的过程中均存在着一些限制。例如:

上述第一种实现方式中,受限于显示器的物理大小,在显示器上能够同时展示的信息非常有限,并且二维的显示器只能显示二维画面。

上述第二种实现方式中,由于现有的系统软件的限制,不能显示出当前应用程序以外的内容,不管该内容是来自其他的vr应用还是来自普通的二维窗口应用。

上述第三种实现方式中,受限于显示器上实际存在的像素数目,虽然能够在虚拟显示器中将信息显示在视野上的更多地方,但是其信息总量并没有增加,只是将每个像素放大或者产生其他虚拟形变(例如弯曲屏幕等)。并且,该实现方式类似于第二种实现方式,在现有的系统软件的限制下,无法显示来自其他vr应用或者普通应用的显示画面。



技术实现要素:

根据现有技术中存在的上述问题,现提供一种虚拟现实画面显示控制系统,旨在拓展显示器的显示范围,提升同时展示的信息量,并且能够同时展示来自不同应用程序的显示内容,提升用户的使用体验。

上述技术方案具体包括:

一种虚拟现实画面显示控制系统,其中,包括:

第一显示单元,用于在计算机设备的显示设备上显示目标应用程序产生的第一显示画面;

第二显示单元,用于在采用虚拟现实技术进行显示的头戴式显示设备中显示一第二显示画面;

输入单元,用于获取用户对所述目标应用程序的第一操作指令;

第一处理单元,连接所述第一显示单元,用于对所述目标应用程序进行控制,以变换所述第一显示画面;

监控单元,连接所述第一显示单元和所述第一处理单元,用于持续监控并获取所述显示设备的显示窗口中的每一帧的所述第一显示画面;

窗口管理单元,分别连接所述监控单元、所述第二显示单元和所述输入单元,并与所述监控单元之间进行持续通信,所述窗口管理单元用于持续获取所述监控单元输出的每一帧的所述显示内容并进行转换,以形成在所述头戴式显示设备的显示窗口中的第二显示画面;

所述监控单元还用于持续获取所述输入单元得到的所述第一操作指令并发送至所述窗口管理单元,所述窗口管理单元还用于将所述第一操作指令发送至所述第一处理单元,以供所述第一处理单元根据所述第一操作指令变换所述第一显示画面。

优选的,该虚拟现实画面显示控制系统,其中,所述监控单元具体包括:

注入模块,用于向所述目标应用程序注入动态链接库;

捕获模块,连接所述注入模块,所述捕获模块通过所述动态链接库对所述目标应用程序的关键函数的监控处理来捕获所述目标应用程序的信息流,从而获得所述第一显示画面;

发送模块,连接所述注入模块,所述发送模块通过所述动态链接库对所述目标应用程序的关键函数的监控处理,将所述第一操作指令下发至所述第一处理单元中执行。

优选的,该虚拟现实画面显示控制系统,其中,所述监控单元中还包括:

列表监控模块,连接所述捕获模块,用于监控所述目标应用程序当前产生的所有显示窗口,并加入到一窗口列表中;

所述捕获模块依据所述窗口列表分别捕获每个当前显示的所述显示窗口的所述第一显示画面。

优选的,该虚拟现实画面显示控制系统,其中,所述监控单元通过一监控进程持续监控并获取所述第一显示画面。

优选的,该虚拟现实画面显示控制系统,其中,所述监控单元和所述窗口管理单元通过建立socket通道进行持续通信。

优选的,该虚拟现实画面显示控制系统,其中,所述窗口管理单元中包括:

第一绘制模块,用于在所述头戴式显示设备中显示的三维场景中绘制一个平面模板;

转换模块,用于将获取到的每一帧的所述第一显示画面转换成相应的三维纹理;

第二绘制模块,分别连接所述转换模块和所述第一绘制模块,用于将所述三维纹理绘制到所述平面模板上,以形成所述第二显示画面。

优选的,该虚拟现实画面显示控制系统,其中,还包括:

第二处理单元,连接所述第二显示单元,所述第二处理单元用于运行一虚拟现实应用程序,并将运行所述虚拟现实应用程序所产生的虚拟现实画面显示在所述第二显示画面中。

优选的,该虚拟现实画面显示控制系统,其中,还包括:

操作单元,连接所述第二显示单元,所述操作单元内预设有多种操作方式,所述操作单元依据用户通过不同的所述操作方式对所述第二显示画面中的显示内容进行的操作产生相应的第二操作指令;

所述第二显示单元根据所述操作单元产生的所述第二操作指令,将相应的操作结果渲染并显示在所述第二显示画面中。

上述技术方案的有益效果是:提供一种虚拟现实显示控制系统,能够拓展显示器的显示范围,提升同时展示的信息量,并且能够同时展示来自不同应用程序的显示内容,提升用户的使用体验。

附图说明

图1是本发明的较佳的实施例中,一种虚拟现实画面显示控制系统的总体结构示意图;

图2是本发明的较佳的实施例中,监控单元的具体结构示意图;

图3是本发明的较佳的实施例中,窗口管理单元的具体结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。

基于现有技术中存在的上述问题,现提供一种虚拟现实画面显示控制系统,该系统具体如图1所示,包括:

第一显示单元1,用于在计算机设备的显示设备上显示目标应用程序产生的第一显示画面;

第二显示单元2,用于在采用虚拟现实技术进行显示的头戴式显示设备中显示一第二显示画面;

输入单元3,用于获取用户对目标应用程序的第一操作指令;

第一处理单元4,连接第一显示单元1,用于对目标应用程序进行控制,以变换第一显示画面;

监控单元5,连接第一显示单元1和第一处理单元4,用于持续监控并获取显示设备的显示窗口中的每一帧的第一显示画面;

窗口管理单元6,分别连接监控单元5、第二显示单元2和输入单元3,并与监控单元5之间进行持续通信,窗口管理单元6用于持续获取监控单元输出的每一帧的显示内容并进行转换,以形成在头戴式显示设备的显示窗口中的第二显示画面;

监控单元5还用于持续获取输入单元3得到的第一操作指令并发送至窗口管理单元6,窗口管理单元6还用于将第一操作指令发送至第一处理单元4,以供第一处理单元4根据第一操作指令变换第一显示画面。

具体地,本实施例中,上述第一显示单元1用于在二维的电脑桌面上显示第一显示画面,该第一显示画面是由目标应用程序运行产生的,该目标应用程序即运行在计算机设备上的传统的二维应用程序例如文档处理程序或者图形处理程序等,或者该目标应用程序可以为其他的基于二维的电脑桌面显示的vr应用程序,在此不再赘述。则上述第一显示单元1实际可以由连接计算机设备的传统的显示器的控制芯片实现。

本实施例中,上述第二显示单元2用于在用户佩戴的给予vr显示技术的头戴式显示设备上显示第二显示画面,该第二显示画面是由一特定的vr应用产生的,该第二显示画面可以为一空白的三维显示画面以供添加显示内容,也可以为原本就具有特定显示内容的三维显示画面。则上述第二显示单元2实际可以由头戴式显示设备的控制芯片实现。

本实施例中,上述输入单元3通过监控用户通过连接到计算机设备上的输入装置(例如鼠标和键盘)获取用户输入的第一操作指令,该第一操作指令通常是针对目标应用程序的操作指令。例如上述目标应用程序为文档类处理软件,上述第一操作指令可以为对文档进行编辑、保存文档以及删除文档等常规的文档处理操作。则上述输入单元3可以由连接计算机设备的输入装置的控制芯片实现。

本实施例中,上述第一处理单元4用于对目标应用程序进行控制,即上述第一处理单元4实际为运行上述目标应用程序的处理单元,该第一处理单元可以采用计算机设备的处理器实现。

本实施例中,上述监控单元5通过对第一显示单元1的监控,持续获取第一显示单元1在显示设备上显示的每一帧的第一显示画面。具体地上述监控单元5获取每一帧的第一显示画面的相关数据。该监控单元5可以通过计算机设备的操作系统中的一个监控进程来实现对显示设备上当前的显示窗口内显示的第一显示画面进行持续监控,具体的监控方式在下文中详述。

本实施例中,上述窗口管理单元6通过与监控单元5进行通信来持续获取监控单元5监控得到的每一帧第一显示画面的相关数据,并且将这些数据转换成相应的能够在头戴式显示设备中显示的三维画面,从而形成在头戴式显示设备中显示的第二显示画面。则监控单元5不断捕获变换的每一帧第一显示画面并发送至窗口管理单元6,窗口管理单元6不断进行转换,以实现第二显示画面与第一显示画面的同步变换。

本实施例中,上述窗口管理单元6还连接上述输入单元3,并将外部输入的第一操作指令通过监控单元5发送至第一处理单元4中,第一处理单元4根据接收到的第一操作指令控制目标应用程序执行相应的操作,操作结果以第一显示画面的形式显示在显示设备上,即根据操作结果实时变换第一显示画面,该第一显示画面的实时变换情况会被监控单元5实时监控并获取,随后发送至窗口管理单元6中,从而实现第二显示画面随第一显示画面同步变换的效果。

综上,本发明技术方案实质上是一个基于vr显示技术的三维的电脑桌面,通过监控单元5和窗口管理单元6的设计,使得原本目标应用程序需要直接与操作系统进行交互的运行方式变为将目标应用程序的显示内容以及针对目标应用程序的所有操作(例如鼠标键盘的操作)在内的功能完整地收纳入监控单元5和窗口管理单元6构筑的vr实现环境中,从而能让计算机系统中的显示信息不再受限于显示器的物理约束(例如尺寸大小、像素数目以及摆放位置等),使得普通的二维窗口应用的显示内容和vr应用的三维显示内容能够同时显示在视野中,以此能够提升用户的工作效率。

本发明的较佳的实施例中,如图2中所示,上述监控单元5具体包括:

注入模块51,用于向目标应用程序注入动态链接库;

捕获模块52,连接注入模块51,捕获模块52通过动态链接库对目标应用程序的关键函数的监控处理来捕获目标应用程序的信息流,从而获得第一显示画面;

发送模块53,连接注入模块51,发送模块53通过动态链接库对目标应用程序的关键函数的监控处理,将第一操作指令下发至第一处理单元4中执行。

具体地,本实施例中,上述监控单元5首先启动目标应用程序,同时通过注入模块51向目标应用程序中注入动态链接库(dynamiclinklibrary,dll),该动态链接库通过对目标应用程序的关键函数进行hook来实现监控处理,从而捕获到目标应用程序的信息流,即获取到目标应用程序当前显示的显示窗口的相关信息。

同时,上述监控单元5将从窗口管理单元6获取的用户的第一操作指令通过hook函数下发至第一处理单元4并执行,执行后的结果在第一显示画面中进行显示。

进一步地,本发明的较佳的实施例中,仍然如图2中所示,监控单元5中还包括:

列表监控模块54,连接捕获模块52,用于监控目标应用程序当前产生的所有显示窗口,并加入到一窗口列表中;

捕获模块52依据窗口列表分别捕获每个当前显示的显示窗口的第一显示画面。

具体地,本实施例中,由于目标应用程序不一定只产生一个显示窗口,并且在同一时刻不一定只有一个目标应用程序正在运行,因此在注入模块51成功注入动态链接库后,采用上述列表监控模块54通过监控进程的句柄枚举得到当前正在运行的所有目标应用程序中当前正在显示的所有显示窗口,并将这些显示窗口加入到一个全局的窗口列表中,同时列表监控模块54实时维护和更新该窗口列表。

则上述捕获模块52根据上述窗口列表,获取位于窗口列表中的显示窗口中的第一显示画面,从而保证获取目标应用程序当前活动的显示窗口内的所有显示内容。具体地,上述捕获模块52每隔一段时间通过操作系统提供的图形设备接口(例如windows下的gdi接口)捕获目标应用程序的显示窗口内当前帧的第一显示画面,并发送给窗口管理器。

本发明的较佳的实施例中,上述监控单元5和窗口管理单元6通过建立socket通道进行持续通信。

具体地,本实施例中,通过使用进程间通信技术,将窗口管理单元6和监控单元5(监控进程)之间建立socket通信通道。监控单元5维护了一个窗口进程的列表,并且通过hook函数和动态链接库注入技术来和目标应用程序的显示窗口进行交互以获取每一帧的第一显示画面。监控单元5通过socket通信通道将获取的每一帧的第一显示画面发送至窗口管理单元6,窗口管理单元6也需要通过socket通信通道将获取的第一操作指令发送至监控单元5。

本发明的较佳的实施例中,如图3中所示,窗口管理单元6中包括:

第一绘制模块61,用于在头戴式显示设备中显示的三维场景中绘制一个平面模板;

转换模块62,用于将获取到的每一帧的第一显示画面转换成相应的三维纹理;

第二绘制模块63,分别连接转换模块62和第一绘制模块61,用于将三维纹理绘制到平面模板上,以形成第二显示画面。

具体地,本实施例中,首先通过第一绘制模块61,采用绘制工具例如direct3d11在三维场景中绘制一个平面模板。随后获取每一帧的第一显示画面并且通过转换模块62将每一帧的数据转换成对应的第二显示画面的纹理。

最后采用第二绘制模块63将上述纹理绘制在上述平面模板中,从而实现第一显示画面的重绘,通过上述窗口管理单元6完成对第一显示画面的虚拟化,并将重绘后形成的第二显示画面显示在头戴式显示设备中。

本发明的较佳的实施例中,目标应用程序当前显示的每个显示窗口中的显示内容分别为单独的第一显示画面,而在头戴式显示设备中的显示内容为整体的一个第二显示画面,因此对于多个当前显示的显示窗口,可能出现多个第一显示画面经过转换后同时在第二显示画面中显示的情况。例如用户同时打开了多个word文档,则多个word文档的显示内容会被同时显示在第二显示画面中。又例如,用户打开了word文档的同时打开了excel文档,则word文档的显示内容和excel文档的显示内容会被同时显示在第二显示画面中。

本发明的较佳的实施例中,仍然如图1中所示,上述虚拟现实画面显示控制系统中还包括:

第二处理单元7,连接第二显示单元2,第二处理单元7用于运行一虚拟现实应用程序,并将运行虚拟现实应用程序所产生的虚拟现实画面显示在第二显示画面中。

具体地,本实施例中,上述第二处理单元7用于执行一个虚拟现实应用程序,该虚拟现实应用程序可以为上述虚拟现实画面显示控制系统运行所依赖的虚拟现实应用程序,也可以为另一个独立的虚拟现实应用程序。该虚拟现实应用程序运行所产生的显示内容独立于上述第一显示画面经过转换后在第二显示画面中显示的内容。换言之,本实施例中,在上述第一显示画面经过转换后显示在第二显示画面中的同时,在第二显示画面中显示虚拟现实应用程序运行所产生的虚拟现实画面。

本实施例中,上述第二处理单元7同样可以通过计算机设备的处理芯片实现。上述第一处理单元4和第二处理单元7可以被集成在同一个处理芯片中实现。

本发明的较佳的实施例中,仍然如图1中所示,上述虚拟现实画面显示控制系统中还包括:

操作单元8,连接第二显示单元2,操作单元内预设有多种操作方式,操作单元8依据用户通过不同的操作方式对第二显示画面中的显示内容进行的操作产生相应的第二操作指令;

第二显示单元2根据操作单元产生的第二操作指令,将相应的操作结果渲染并显示在第二显示画面中。

具体地,本实施例中,在第二显示画面中还提供给用户对其中的显示内容进行操作的功能。例如上述操作方式可以为对第二显示画面中的显示内容(例如由word文档显示窗口转换并显示在第二显示画面中的显示内容)进行移动或者缩放等操作,由于这些操作主要针对虚拟的三维场景,利用的是三维场景不会受限于显示器物理属性的特点,因此这些操作并不会反应在第一显示画面中,只会在第二显示画面中进行渲染和变换。

进一步地,本发明的一个较佳的实施例中,上述虚拟现实画面显示控制系统也可以应用在建筑行业中,用户可以在第二显示画面中加载建筑模型,从而在虚拟的三维场景中对模型进行观察。

具体地,要实现上述功能,首先在窗口管理单元6中需要创建必要的direct3d设备、渲染管线所必须的缓冲区、着色器以及输入布局等;

随后,二维的目标应用程序加载3d模型后,通过监控单元5获取模型的网格模型、材质以及纹理等结构信息并通过socket通信通道上传至窗口管理单元6。

最后,窗口管理单元6将网格模型的内容填充到顶点缓冲区和索引缓冲区内,并且根据材质和纹理等结构信息创建对应的材质纹理结构,以将整体的3d模型渲染到第二显示画面中显示。用户在观察3d模型的同时可以通过操作单元8中预先定义的一些操作例如旋转和缩放等对第二显示画面中显示的3d模型进行操作。

以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1