桌面与虚拟世界之间的鼠标共享的制作方法

文档序号:11160773阅读:491来源:国知局
桌面与虚拟世界之间的鼠标共享的制造方法与工艺

诸如头戴式显示器(HMD)系统和手持式移动设备(例如,智能电话、平板计算机等等)之类的混合现实计算设备可以被配置成向用户显示关于在用户的视野中和/或设备的摄像机的视野中的虚拟和/或现实对象的信息。例如,HMD设备可以被配置成使用透视显示系统来显示其中混合有现实世界对象的虚拟环境或者其中混合有虚拟对象的现实世界环境。类似地,移动设备可以使用相机取景器窗口来显示这样的信息。

提供本背景来介绍以下概述和详细描述的简要上下文。本背景不旨在帮助确定所要求保护的主题的范围,也不旨在被看作将所要求保护的主题限于解决以上所提出的问题或缺点中的任一个或全部的实现。

概述

混合现实头戴式显示器(HMD)设备支持三维(3D)虚拟世界应用,通过该三维虚拟世界应用可以与在耦合至个人计算机(PC)的监视器上显示的现实世界桌面交互并且共享鼠标输入。在PC上执行的鼠标输入服务器追踪在监视器上显示的桌面上的鼠标移动。当鼠标的移动超过监视器屏幕的边缘时,鼠标输入服务器控制鼠标并且使鼠标消息免于通过PC系统进行传播。鼠标输入服务器通过网络连接与由应用暴露的鼠标输入客户端通信以向该客户端通知鼠标已经转换到在虚拟世界中操作,并且传递描述鼠标移动和控制操作(诸如按钮按压)的鼠标消息。鼠标输入客户端使用桌面上的最后位置来计算鼠标在虚拟世界中的初始位置,并且利用鼠标消息来计算位置差值以基于鼠标的移动和来自用户的控制输入来动态地控制虚拟世界中的鼠标。

在各种说明性和非限制性示例中,HMD设备可以支持混合现实环境,在混合现实环境中用户看见在监视器上示出的桌面并且使用鼠标与桌面交互。用户可以无缝地将鼠标转换到虚拟世界中以通过光标与虚拟世界对象交互,光标使用与光标离虚拟世界中的用户距离成比例的大小(即,当较近时较大,而较远时较小)以3D动态呈现。在一些场景中,用户可以将窗口或其他对象从桌面拖拽到虚拟世界中以创建虚拟对象,诸如平板、画布或交互式对象。在其他场景中,用户可以采用鼠标来与可作为混合现实环境的一部分被包括的现实世界对象交互。例如,用户可以移动鼠标光标以与现实世界对象碰撞并且点击/选择现实世界表面。

提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并非旨在标识出要求保护的主题的关键特征或必要特征,亦非旨在用作辅助确定要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任一部分中所提及的任何或所有缺点的实现。应当理解,上述主题可被实现为计算机控制的装置、计算机进程、计算系统或诸如一个或多个计算机可读存储介质等制品。通过阅读下面的详细描述并审阅相关联的附图,这些及各种其他特征将变得显而易见。

附图简述

图1示出一个说明性的虚拟现实环境,在HMD设备的用户的视野内呈现了该虚拟现实环境的一部分;

图2示出在HMD设备的用户位于其中的说明性现实世界环境;

图3示出了在HMD设备的视野内显示的说明性混合现实环境;

图4示出了由HMD传感器封装提供的说明性数据;

图5描绘了正被HMD设备捕捉的与现实世界对象相关联的表面重构数据;

图6示出了说明性表面重构流水线的框图;

图7示出了支持鼠标输入客户端的三维(3D)虚拟应用,鼠标输入客户端通过网络连接与在个人计算机(PC)上执行的鼠标输入服务器通信;

图8示出了可以使用鼠标输入客户端和鼠标输入服务器实现的说明性方法;

图9示出了鼠标光标被说明性地从桌面转换到在HMD设备的用户视野内显示的混合现实环境中的虚拟世界中的位置;

图10示出了一对象使用鼠标从桌面被拖拽到在HMD设备的用户视野内显示的混合现实环境中的虚拟世界中;

图11示出了与在HMD设备的用户视野内现实的混合现实环境中的现实世界对象碰撞的鼠标光标;

图12、13和14是可以使用HMD设备执行的说明性方法的流程图;

图15是虚拟现实HMD设备的说明性示例的图形视图;

图16示出虚拟现实HMD设备的说明性示例的功能框图;

图17和18是可用作虚拟现实HMD设备的组件的说明性封闭面罩的图形前视图;

图19示出了在被部分分解时的封闭面罩的视图;

图20示出了封闭面罩的幻影线前视图;

图21示出了封闭面罩的图形后视图;

图22示出了示例性计算系统;以及

图23是可部分地被用于实现本发明的鼠标共享的说明性计算机系统(诸如个人计算机(PC))的简化框图。

各附图中相同的附图标记指示相同的元素。除非另外指明否则各元素不是按比例绘制的。

详细描述

HMD设备上支持的混合现实或增强现实环境通常组合现实世界元素和计算机生成的虚拟现实元素以实现各种各样的用户体验。在说明性示例中,如图1所示,用户102可以使用HMD设备104来体验在光学显示器上可视地呈现并在一些实现中可以包括音频和/或触觉/触摸感觉的虚拟现实环境100。在该特定非限制示例中,虚拟现实环境100包括具有用户102可看见并与其交互的各种建筑、商店等的城市街道。当用户改变他头部的位置或取向和/或在现实世界空间中移动时,他对虚拟现实环境的视图可以改变。(由图1中的虚线区域110表示的)视野可以调整大小和形状,并且可以控制该设备的其它特性来使得HMD设备体验可视地似真以为用户提供在虚拟世界的强烈存在感。

如图2所示,在使用HMD设备104时用户占据的物理现实世界空间200可以包含各种现实世界对象,包括PC 205、监视器210和工作表面215。其他现实世界对象也可存在于空间200中,如由参考标号220代表性指示的。用户可以使用鼠标225和其他用户接口(未在图2中示出,诸如一些情形中的键盘、语音和姿势)与PC和监视器交互。在这一特定说明性示例中,监视器被纳入混合现实环境300中,如图3所示,并且在HMD设备104上对于用户可以是可见的。

用户通常可以在查看混合现实环境中的监视器210时按照与现实世界环境中基本上相同的方式与PC交互。例如,用户可以使用在监视器210上显示的鼠标光标315与在桌面310上支持的对象、元素、窗口等(代表性地由参考标号305来指示)交互。

如图4所示,HMD设备104配置有传感器封装400。在下文中更详细地描述示例性传感器。传感器封装400可以支持各种功能,包括可用于头部追踪以确定用户头部在物理现实世界空间200内的(三维)3D位置和取向415的表面重构410。在一些实现中,传感器封装可以支持注视追踪420以查明用户注视425的方向,在实现本公开的鼠标共享时用户注视425的方向可以与头部位置和取向数据一起使用。

HMD设备104被配置成通过使用包括集成深度传感器505的传感器封装(如图5所示)来执行头部追踪来获得表面重构数据500。在替换实现中,可以使用合适的立体图分析技术来导出深度数据。图6示出用于获得现实世界空间中的对象的表面重构数据的说明性表面重构数据流水线600。需要强调的是所公开的技术是说明性的,并且根据特定实现的要求可以使用其它技术和方法。原始深度传感器数据602被输入到传感器的3D(三维)姿势估计中(框604)。传感器姿势跟踪可以例如使用在预期表面和当前传感器测量之间的ICP(迭代最近点)算法来实现。每个传感器的深度测量可以使用例如被编码为符号距离场(SDF)的表面被整合(框606)到容积表示中。使用循环,SDF被光线投射(框608)入所估计的系中以提供所述深度图与之对齐的密集表面预测。因而,当用户102环顾虚拟世界时,与现实世界空间200(图2)相关联的表面重构数据可以被收集并且被分析以确定用户头部在空间内的位置和取向。在一些实现中,连同注视检测,头部追踪使得HMD设备104能够查明用户的查看位置。

HMD设备104可以利用3D虚拟世界应用705以支持混合现实环境,如图7所示。该应用可以通过网络连接710与PC 205通信。PC 205暴露鼠标输入服务器715,鼠标输入服务器715与应用705支持的客户端720交互。鼠标输入服务器与在PC上运行的操作系统(OS)725对接以监听来自用户的鼠标输入。图8是可以使用鼠标输入服务器和客户端实现的说明性方法800的流程图。

在步骤805,当鼠标输入客户端720连接到PC 205上的鼠标输入服务器715时,鼠标输入服务器通过其与操作系统725的连接来追踪鼠标移动。在决策框810,如果鼠标没有超过监视器210的屏幕限制,则认为用户仍然在桌面上使用鼠标并且控制返回到步骤805。如果鼠标超过了监视器范围,则在步骤815中,鼠标输入服务器715取得鼠标控制并且阻止鼠标消息传播到在PC 205上执行的其他组件。

在步骤820,鼠标输入服务器715向鼠标输入客户端720通知鼠标在虚拟世界中操作并且它将鼠标消息(诸如鼠标移动和用户输入(例如,按钮点击、滚轮动作等))传递到鼠标输入客户端。在步骤825,鼠标输入客户端720基于监视器210屏幕上的退出点来计算虚拟世界中光标315的初始位置,并且在步骤830,基于鼠标移动的改变来计算光标315的下一位置。光标可以使用与光标离虚拟世界中的用户距离成比例的大小以3D被动态呈现。即,当在虚拟世界中更靠近查看者时通常它被呈现地更大,而在较远离时,它被呈现地更小。此类根据距离的动态呈现可能是有益的,因为在用户查看光标以及虚拟世界中的任何周围元素或对象时不需要改变他的焦点深度。在步骤835,可以实现碰撞,以使得在一些情形中用户可以在混合现实环境中的现实世界对象的表面上点击,如下文更详细描述的。

在步骤840,鼠标输入客户端720计算虚拟世界中的下一光标位置与关联于HMD设备104的查看位置之间的光线。如果计算所得的光线与监视器210的屏幕相交,则在步骤845鼠标输入客户端720向鼠标输入服务器315通知光标315已经在转换回到PC桌面并且将最后的光标位置报告给鼠标输入服务器。在步骤850,鼠标输入客户端720不继续呈现虚拟世界中的光标315并且停止对鼠标输入事件作出响应。在步骤855,鼠标输入服务器715使用由鼠标输入客户端720报告的最后位置来计算桌面上的光标重新进入位置。

图9、10和11示出了PC桌面与虚拟世界之间的鼠标共享的说明性示例。要强调的是,这些示例旨在是说明性的,并且各种各样的不同鼠标共享场景可以使用本发明的技术来实现。

图9示出了在光标315转换离开桌面310并且进入虚拟世界100时由HMD设备104提供的说明性视野900。如这一特定示例中所示,用户已经将光标315移动到在虚拟世界100中的门915上点击。如上所述,光标315可以在虚拟世界中以3D被成比例地呈现(附图中光标的描绘被简化以助于清楚阐述)。

图10示出了用户使用鼠标将对象305从桌面310拖拽到虚拟世界中的说明性视野1000。在一些情形中,当对象被拖拽到虚拟世界中之后当它受到桌面支持时,对象可以表现为如其通常表现得那样。例如,如果对象305是应用窗口,则来自PC的应用可以按照正常方式呈现到窗口中。这一特征因而可使得用户能够扩展桌面的大小。在其他情形中,当对象被拖拽到虚拟世界中时,对象的行为可以被转变(其中此类经转变的行为可以根据特定实现的需要来实现)。在这一特定示例中,对象305用作平板或画布以为用户提供附加工作区域。

在一些情形中,当用户将对象从桌面移动到虚拟世界时,对象可以被固定在其位置处直到用户再次移动它。例如,如果用户拖拽对象并且将对象放置在虚拟世界中毗邻监视器210的位置处,则当用户转动他的头部以查看虚拟世界的另一部分时,该对象可能变得在用户的视野之外。在其他情形中,拖拽动作可以被用于将桌面对象固定或剪辑到视野的一部分,以使得对象保持可见,无论用户的头部位置/取向或者用户在虚拟世界中的位置如何。

图11示出了其中HMD设备104被配置成使得物理空间200(图2)的各部分可查看的说明性视野1100。用户可以看到监视器210、工作表面215和空间200的其他部分,诸如地板、墙壁等。废纸篓对象220也在视野1100中。HMD设备104向用户提供移动光标以与现实世界对象(例如,如所示出的对象220)碰撞以与现实世界对象交互、在表面上点击、作出选择、指向对象等的能力。在一些场景中,响应于鼠标交互,HMD设备104可被配置成将各种视觉处理(诸如突出显示、颜色、动画化、或其他全息或虚拟元素/对象)应用于现实世界对象。

图12和13是可使用HMD设备104来执行的说明性方法的流程图。图14是可以由计算设备(诸如PC 205)执行的说明性方法的流程图。除非明确说明,否则流程图中所示并且在伴随的文本中描述的方法或步骤不限于特定的次序或顺序。此外,一些方法或其步骤可同时发生或被执行,并且取决于给定实现的要求,在这一实现中不是所有方法或步骤均需要被执行,并且一些方法或步骤可以是可选地被使用。

在图12所示的说明性方法1200中,在步骤1205,HMD设备呈现混合现实环境,混合现实环境通常包括虚拟世界中的对象以及现实世界对象(诸如监视器210)。在步骤1210,鼠标消息通过网络连接从在远程计算设备(诸如PC 205)上操作的鼠标输入服务器被接收。当鼠标移动导致光标移动超过监视器边界时,在步骤1215,虚拟世界中的初始光标位置被计算。在步骤1220,鼠标消息被用来基于鼠标移动差值来确定后续光标位置。在步骤1225,按钮按压和其他输入事件从鼠标输入服务器被接收。

在步骤1230,光标被呈现在虚拟世界中,并且使用初始和后续位置以及按钮按压和输入事件来执行各种动作(例如,选择、拖拽、滚动等)。在步骤1235,使用鼠标来支持与虚拟对象和/或现实世界对象的交互。

在步骤1240,使用来自传感器封装(例如,使用表面重构技术)来执行头部追踪。在一些情形中,还可执行注视追踪。在步骤1245,根据头部追踪数据和/或注视追踪数据来确定查看位置。在步骤1250,光线从查看位置被投影,并且如果所投影的光线与监视器相交,则在步骤1255,光标被转换到监视器上的桌面。

在图13所示的说明性方法1300中,在步骤1305,鼠标输入客户端在运行在HMD设备上的应用中操作。在步骤1310,鼠标消息通过网络连接从在计算设备(诸如PC 205)上运行的鼠标输入服务器被接收。在步骤1315,基于从监视器210上支持的桌面的退出位置来确定光标的初始位置。在步骤1320,鼠标移动被用于确定虚拟世界中的后续光标位置。在步骤1325,初始和后续光标位置在HMD设备中被呈现。在步骤1330,使用来自HMD设备上的传感器封装的传感器数据来确定查看位置。在步骤1335,当从查看位置投影的光线与监视器相交时,光标被转换到桌面。

在图14所示的说明性方法1400中,在步骤1405,在计算设备(诸如PC 205)上运行的鼠标输入服务器追踪描述鼠标移动和输入的鼠标消息。例如,鼠标输入服务器可具有到在计算平台上运行的操作系统的挂钩(hook)以追踪鼠标消息。如果没有鼠标输入客户端被检测到,则鼠标输入服务器通常仅仅监听鼠标消息但不采取其他动作。当客户端通过网络连接被连接时,鼠标输入服务器可以执行追踪。在步骤1410,当鼠标移动指示光标移动离开监视器210边缘时,鼠标输入服务器取得鼠标消息的控制并且阻止鼠标消息转播到在设备上运行的其他系统。

在步骤1415,鼠标消息通过网络连接被发送到HMD设备104上的鼠标输入客户端。在步骤1420,鼠标输入服务器从鼠标输入客户端接收光标转换到监视器上的桌面的消息。在步骤1425,基于虚拟世界中最后报告的光标位置来确定桌面上的初始光标位置。在步骤1430,对鼠标消息的控制被释放,并且光标被启用以在桌面上正常操作。

现转至各说明性实现细节,根据本布置的透视、混合现实显示设备可以采用任何合适的形式,包括但不限于诸如HMD设备104和/或其它便携式/移动设备之类的近眼设备。图15示出了透视混合现实显示系统1500的一个特定说明性示例,而图16显示了系统1500的功能框图。显示系统1500包括形成透视显示子系统1504的一部分的一个或多个透镜1502,以便图像可以使用透镜1502(例如,使用到透镜1502上的投影、并入透镜1502中的一个或多个波导系统和/或以任何其他合适的方式)来显示。显示系统1500进一步包括被配置成获取正在被用户查看的背景场景和/或物理空间的图像的一个或多个面向外的图像传感器1506,并可包括被配置成检测声音(诸如来自用户的语音命令)的一个或多个话筒1508。面向外的图像传感器1506可包括一个或多个深度传感器和/或一个或多个二维图像传感器。在替换布置中,代替纳入透视显示子系统,混合现实显示系统可以通过面向外的图像传感器的取景器模式来显示混合现实图像。

显示系统1500还可以进一步包括被配置成检测用户的每一眼睛的注视方向或焦点的方向或位置的注视检测子系统1510,如上文所描述的。注视检测子系统1510可以配置来以任何合适方式确定用户每只眼睛的注视方向。例如,在所示的说明性示例中,注视检测子系统1510包括被配置成导致光的闪烁从用户的每一眼球反射的一个或多个闪光源1512(诸如红外光源),以及被配置成捕捉用户的每一眼球的图像的一个或多个图像传感器1514(诸如面向内的传感器)。根据使用(诸)图像传感器1514收集的图像数据所确定的用户眼球的闪烁和/或用户瞳孔的位置中变化可以用于确定注视方向。

此外,从用户眼睛投射的注视线与外部显示器交叉的位置可以用于确定用户注视的对象(例如,所显示的虚拟对象和/或真实的背景对象)。注视检测子系统1510可以具有任何合适数量和布置的光源以及图像传感器。在一些实现中,可以省略注视检测子系统1510。

显示系统1500还可以包括附加传感器。例如,显示系统1500可以包括全球定位系统(GPS)子系统1516,以允许确定显示系统1500的位置。这可以帮助标识可以位于用户的毗邻物理环境中的现实世界的对象(诸如建筑物等等)。

显示系统1500还可以包括一个或多个运动传感器1518(例如惯性、多轴陀螺仪或加速度传感器),以在用户戴着作为增强现实HMD设备的部分的所述系统时检测用户头的移动和位置/朝向/姿势。运动数据可以潜在地与眼睛跟踪闪烁数据和面向外的图像数据一起被使用来用于注视检测以及用于图像稳定化,以帮助校正来自(诸)面向外图像传感器1506的图像中的模糊。运动数据的使用可以允许注视位置的变化被跟踪,即使不能解析来自(诸)面向外的图像传感器1506的图像数据。

另外,运动传感器1518,以及话筒1508和注视检测子系统1510,还可以被用作用户输入设备,以便用户可以通过眼睛、颈部和/或头部的姿势,以及在一些情况中通过语音命令,与显示系统1500进行交互。可以理解,图15和16中所示出的并在附随的文本中描述的传感器只是出于示例的目的被包括,而不旨在以任何方式作出限制,因为可以使用任何其他合适的传感器和/或传感器的组合来满足增强现实HMD设备的特定实现的需求。例如,生物特征传感器(例如用于检测心脏和呼吸速率、血压、大脑活动、体温等)或环境传感器(例如用于检测温度、湿度、海拔、UV(紫外线)光等级等)可以在一些实现中被使用。

显示系统1500可以进一步包括通过通信子系统1526与传感器、注视检测子系统1510、显示子系统1504,和/或其他组件进行通信的具有逻辑子系统1522和数据存储子系统1524的控制器1520。通信子系统1526还可以便利于显示系统与位于远程的资源,例如处理、存储、功率、数据和服务结合操作。就是说,在一些实现中,HMD设备可以被作为一种系统的部分来操作,该系统可以在不同的组件和子系统间分布资源和能力。

存储子系统1524可以包括存储在其上的指令,这些指令能被逻辑子系统1522执行例如用以:接收并解释来自传感器的输入、标识用户的移动、使用表面重构和其它技术标识真实对象,以及基于到对象的距离模糊/淡出所述显示以便允许所述对象被用户看到,以及其它任务。

显示系统1500被配置有一个或多个音频换能器1528(例如扬声器、耳机等),这样,音频可以被用作增强现实体验的部分。功率管理子系统1530可以包括一个或多个电池1532和/或保护电路模块(PCMs)以及相关联的充电接口1534和/或用于对显示系统1500中的组件供电的远程电源接口。

可以理解,所描绘的显示设备104和1500是出于示例的目的描述的,并由此不旨在是限制性的。进一步理解,显示设备可包括除所示出的那些之外的额外的和/或替代的传感器、相机、话筒、输入设备、输出设备等等,而不会背离本安排的范围。另外,显示设备及其各种传感器和子组件的物理配置可以采取各种不同的形式,而不会背离本安排的范围。

图17-21示出可被用作HMD设备的组件的增强现实显示系统1700的说明性替换实现。在该示例中,系统1700使用透视密封面罩1702,该密封面罩1702被配置成保护透视显示子系统所利用的内部光学器件组装件。面罩1702通常与HMD设备的其他组件(未示出)对接,其他组件为诸如头部安装/维持系统和其他子系统(包括传感器、电源管理、控制器等),如结合图15和16说明性地描述的。包括卡扣、夹箍、螺钉和其他紧固件等的合适接口元件(未示出)也可被纳入在面罩1702中。

面罩分别包括透视前护罩1704和透视后护罩1706,透视前护罩1704和透视后护罩1706可使用透明材料来建模以促成到光学显示器和周围的现实世界环境的未经遮挡的视觉。可向前护罩和后护罩应用诸如染色、映射、抗反射、抗雾和其他涂覆之类的处理,并且还可利用各种色彩和饰面。前护罩和后护照被固定到底座1805,如图18中的部分剖视图中所描绘的,其中护照盖1810被示出为与面罩1702分解。

密封面罩1702可在HMD设备被佩戴并在操作中被使用时,以及在正常处理以用于清理等器件物理地保护敏感的内部组件,包括光学器件显示子部件1902(在图19中的分解视图中示出的)。面罩1702还可保护光学器件显示子部件1902远离各环境元件,并在HMD设备被掉落或撞击、被碰撞等情况下免遭损坏。光学器件显示子部件1902按使得各护罩在掉落或碰撞之际被偏转时不接触该子部件的方式被安装在封闭面罩内。

如图19和21所示,后护罩1706按人体工程学上正确的形式被配置成与用户的鼻子和鼻托2104(图21)对接,并且可包括其他舒适特征(例如,作为分立组件来建模和/或添加)。在一些情况下,封闭面罩1702还可将某一水平的光学屈光度曲率(即,眼睛处方)纳入成型的护罩中。

图22示意性地示出了在实现以上描述的配置、布置、方法和过程中的一者或多者时可使用的计算系统2200的非限制性实施例。HMD设备104可以是计算系统2200的一个非限制性示例。计算系统2200以简化形式示出。可理解,可以使用实际上任何计算机架构,而不偏离本布置的范围。在不同的实施例中,计算系统2200可以采取显示设备、可穿戴计算设备、大型计算机、服务器计算机、台式计算机、膝上型计算机、平板计算机、家庭娱乐计算机、网络计算设备、游戏设备、移动计算设备、移动通信设备(例如智能电话)等等的形式。

计算系统2200包括逻辑子系统2202和存储子系统2204。计算系统2200可任选地包括显示子系统2206、输入子系统2208、通信子系统2210和/或在图22中未示出的其他组件。

逻辑子系统2202包括被配置成执行指令的一个或多个物理设备。例如,逻辑子系统2202可以被配置为执行作为一个或多个应用、服务、程序、例程、库、对象、组件、数据结构或其它逻辑构造的一部分的指令。可以实现这样的指令为执行任务、实现数据类型、变换一个或多个组件的状态或以其它方式达到所需的结果。

逻辑子系统2202可包括被配置成执行软件指令的一个或多个处理器。作为补充或替换,逻辑子系统2202可包括被配置成执行硬件或固件指令的一个或多个硬件或固件逻辑机器。逻辑子系统2202的处理器可以是单核或多核的,而其上执行的程序可以被配置为进行串行、并行或分布式处理。逻辑子系统2202可任选地包括分布在两个或更多设备之间的独立组件,这些独立组件可位于远程和/或被配置用于进行协调处理。逻辑子系统2202的各方面可由以云计算配置进行配置的可远程访问的联网计算设备来虚拟化和执行。

存储子系统2204包括一个或多个物理设备,该一个或多个物理设备被配置成保持逻辑子系统2202可执行来实现本文中所述的方法和过程的数据和/或指令。在实现此类方法和过程时,存储子系统2204的状态可以被变换(例如,以保持不同的数据)。

存储器子系统2204可包括可移动介质和/或内置设备。存储子系统2204可包括光学存储器设备(例如,CD(压缩盘)、DVD(数字多功能盘)、HD-DVD(高清DVD)、蓝光盘等)、半导体存储器设备(例如,RAM(随机存取存储器)、ROM(只读存储器)、EPROM(可擦除可编程ROM)、EEPROM(电可擦除ROM)等)和/或磁性存储设备(例如,硬盘驱动器、软盘驱动器、磁带驱动器、MRAM(磁致电阻RAM)等)等等。存储子系统2204可包括易失性、非易失性、动态、静态、读/写、只读、随机存取、顺序存取、位置可寻址、文件可寻址、和/或内容可寻址设备。

可领会,存储子系统2204包括一个或多个物理设备,并排除传播信号自身。然而,在一些实现中,本文描述的指令的各方面可经由通信介质通过纯信号(例如,电磁信号、光学信号等)来传播,而不是被存储在存储设备上。此外,与本布置有关的数据和/或其他形式的信息可以通过纯信号来传播。

在一些实施例中,逻辑子系统2202和存储子系统2204的各方面可以被一起集成到一个或多个硬件-逻辑组件中,通过所述组件来执行在此所述的功能性。这样的硬件逻辑组件可包括:例如,现场可编程门阵列(FPGA)、程序和应用专用集成电路(PASIC/ASIC)、程序和应用专用标准产品(PSSP/ASSP)、片上系统(SOC)系统以及复杂可编程逻辑设备(CPLD)。

在被包括时,显示子系统2206可用于呈现由存储子系统2204保存的数据的视觉表示。此视觉表示可采用图形用户界面(GUI)的形式。由于目前描述的方法和过程改变了由存储子系统保持的数据,并由此变换了存储子系统的状态,因此同样可以转变显示子系统2206的状态以视觉地表示底层数据的改变。显示子系统2206可包括利用几乎任何类型的技术的一个或多个显示设备。在一些情况下,可将此类显示设备与逻辑子系统2202和/或存储子系统2204一起组合在共享封装中,或者在其他情况下,此类显示设备可以是外围触摸显示设备。

在包括输入子系统2208时,输入子系统2208可包括一个或多个用户输入设备(诸如键盘、鼠标、触摸屏或游戏控制器)或与其对接。在一些实施例中,输入子系统可包括所选择的自然用户输入(NUI)组件或与其对接。这样的组件可以是集成的或外围的,且输入动作的转导和/或处理可以在板上或板外被处理。示例性NUI组件可包括用于语言和/或语音识别的话筒;用于机器视觉和/或姿势识别的红外、色彩、立体显示和/或深度相机;用于运动检测和/或意图识别的头部跟踪器、眼睛跟踪器、加速计和/或陀螺仪;以及用于评估脑部活动的电场感测组件。

在包括通信子系统2210时,通信子系统2210可以被配置成将计算系统2200与一个或多个其他计算设备通信耦合。通信子系统2210可以包括与一个或多个不同通信协议兼容的有线和/或无线通信设备。作为非限制性示例,通信子系统可被配置成用于经由无线电话网络或者有线或无线局域网或广域网来进行通信。在一些实施例中,通信子系统可允许计算系统2200使用诸如因特网这样的网络将消息发送至其他设备以及/或者从其他设备接收消息。

图23是可用来实现本发明的鼠标共享的诸如PC、客户端机器或服务器之类的说明性计算机系统2300的简化框图。计算机系统2300包括处理器2305、系统存储器2311以及将包括系统存储器2311的各种系统组件耦合至处理器2305的系统总线2314。系统总线2314可以是若干类型的总线结构中的任一种,包括使用各种总线体系结构中的任一种的存储器总线或存储器控制器、外围总线、或局部总线。系统存储器2311包括只读存储器(ROM)2317和随机存取存储器(RAM)2321。基本输入/输出系统(BIOS)2325被存储在ROM 2317中,该基本输入/输出系统包含诸如在启动期间帮助在计算机系统2300内的元件之间传输信息的基本例程。计算机系统2300还可包括对内置硬盘(未示出)读写的硬盘驱动器2328、对可移动磁盘2333(例如,软盘)读写的磁盘驱动器2330、以及对诸如CD(压缩盘)、DVD(数字多功能盘)或其它光学介质等可移动光盘2343读写的光盘驱动器2338。硬盘驱动器2328、磁盘驱动器2330,以及光盘驱动器2338分别通过硬盘驱动器接口2346、磁盘驱动器接口2349,以及光盘驱动器接口2352连接到系统总线2314。驱动器及其相关联的计算机可读存储介质为计算机系统2300提供了对计算机可读指令、数据结构、程序模块,及其他数据的非易失性存储。虽然这个说明性的示例包括硬盘、可移动磁盘2333以及可移动光盘2343,但是其它类型的可存储可被诸如磁带盒、闪存卡、数字视频盘、数据磁带、随机存取存储器(“RAM”)、只读存储器(“ROM”)等访问的数据的计算机可读存储介质也可在本发明的鼠标共享的一些应用中使用。此外,如在此使用的,术语计算机可读介质包括媒体类型的一个或多个实例(例如,一个或多个磁盘、一个或多个CD等)。出于本说明书和权利要求书的目的,短语“计算机可读存储介质”及其变型不包括波、信号和/或其他瞬态和/或无形通信介质。

可以有若干个程序模块存储在硬盘、磁盘2333、光盘2343、ROM 2317,或RAM 2321上,包括操作系统2355、一个或多个应用程序2357、其他程序模块2360、以及程序数据2363。用户可通过诸如键盘2366和如鼠标等定点设备2368等的输入设备向计算机系统2300中输入命令和信息。其它输入设备(未显示)可包括话筒、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、跟踪球、触摸垫、触摸屏、触敏设备、语音命令模块或设备、用户运动或用户姿势捕捉设备等。这些及其他输入设备常常通过耦合到系统总线2314的串行端口接口2371连接到处理器2305,但是,但也可以通过其他接口,如并行端口、游戏端口或通用串行总线(USB)端口、来进行连接。监视器2373或其他类型的显示设备也可以通过诸如视频适配器2375之类的接口,连接到系统总线2314。除监视器2373以外,个人计算机通常包括如扬声器和打印机等其它外围输出设备(未示出)。图23中显示的说明性示例还包括主机适配器2378、小型计算机系统接口(SCSI)总线2383以及连接到SCSI总线2383的外置存储设备2376。

计算机系统2300可使用到诸如远程计算机2388等一个或多个远程计算机的逻辑连接在联网环境中操作。远程计算机2388可以被选为另一台个人计算机、服务器、路由器、网络PC、对等设备或其它公共网络节点,并通常包括以上对计算机系统2300描述的许多或所有元件,虽然在图23中只示出单个代表性远程存储器/存储设备2390。图23中所描绘的逻辑连接包括局域网(LAN)2393和广域网(WAN)2395。此类联网环境通常被部署在例如办公室、企业范围的计算机网络、内联网和因特网中。

当在LAN联网环境中使用时,计算机系统2300通过网络接口或适配器2393连接到局域网2396。当在WAN联网环境中使用时,计算机系统2300通常包括宽带调制解调器2398、网络网关或用于通过诸如因特网等广域网2395建立通信的其它装置。或为内置或为外置的宽带调制解调器2398经由串行端口接口2371连接到系统总线2314。在联网环境中,与计算机系统2300有关的程序模块或其部分可被储存在远程存储器存储设备2390中。注意,图23中显示的网络连接是说明性的,并且取决于本发明鼠标共享的应用的具体要求,用于建立计算机之间的通信链路的其它手段可被使用。

本发明的桌面与虚拟世界之间的鼠标共享的各示例性实施例现在是通过说明的方式而不是作为所有实施例的穷尽性列表来提出的。一示例包括物理环境中的用户可操作的头戴式显示器(HMD)设备,包括:一个或多个处理器;透视显示器,所述透视显示器被配置成用于向用户呈现混合现实环境,用户对所呈现的混合现实环境的查看位置至少部分地取决于用户头部在物理环境中的姿态而可变;以及存储计算机可读指令的一个或多个存储器设备,所述计算机可读指令在被所述一个或多个处理器执行时执行一种方法,该方法包括以下步骤:在HMD设备的视野内呈现混合现实环境,所述混合现实环境包括虚拟世界中支持的对象以及现实世界中支持的对象,通过网络连接从在远程计算设备上运行的鼠标输入服务器接收鼠标消息,所述鼠标消息描述操作地连接到所述计算设备的鼠标的移动,所述鼠标控制能够在虚拟世界以及在现实世界中的监视器中显示的光标,当所述鼠标的移动导致所述光标移动超过所述监视器边界时,计算所述光标在虚拟世界中的初始位置,使用所述鼠标消息来计算所述光标在虚拟世界中的后续位置,以及使用计算所得的初始和后续位置在虚拟世界中呈现所述光标。

在另一示例中,该HMD进一步包括确定来自所述鼠标消息的鼠标移动之间的差值并且使用所述差值来计算所述光标在虚拟世界中的后续位置。在另一示例中,该HMD进一步包括接收所述鼠标消息中的按钮按压事件,并且在呈现混合现实环境时使用所述按钮按压事件作为输入。在另一个示例中,该HMD还包括:获得描述与该HMD设备的用户邻接的物理空间的传感器数据;使用该传感器数据来重构所述物理空间的几何形状;以及使用经重构的几何形状来追踪所述物理空间中的用户头部以确定所述查看位置。在另一示例中,传感器数据包括深度数据,并且该HMD进一步包括使用深度传感器来生成该传感器数据,并应用表面重构技术来重构所述物理空间几何形状。在另一示例中,所述HMD进一步包括通过计算所述光标的下一位置与所述查看位置之间的光线来确定所述光标是否转换到桌面,并且如果所述光线与现实世界监视器相交,则通知所述计算设备所述光标已经转换到所述监视器上支持的桌面。在另一示例中,该HMD进一步包括当所述光标已经转换到所述桌面时不继续在虚拟世界中呈现所述光标。在另一示例中,该HMD进一步包括网络接口,通过该网络接口鼠标消息从计算设备被传递并且通过该网络接口计算设备被通知光标已经转换到桌面。在另一示例中,该HMD进一步包括使用鼠标使得对象能够从桌面被移动到虚拟世界。在另一示例中,该HMD进一步包括用于在确定查看位置时检测用户的注视方向的传感器封装。在另一示例中,该HMD进一步包括使用光标实现与一个或多个虚拟对象的交互。在另一示例中,该HMD进一步包括实现光标与现实世界对象之间的碰撞。

又一示例包括一种用于在计算设备与在头戴式显示器(HMD)设备上执行的应用之间传递鼠标信息的方法,该应用支持HMD设备上的包括虚拟世界和现实世界的混合现实环境,该方法包括:在所述应用中运行鼠标输入客户端;通过网络连接从在所述计算设备上执行的鼠标输入服务器接收鼠标消息,所述鼠标消息描述操作地耦合至具有相关联的监视器的计算设备的鼠标的移动,所述鼠标输入服务器在所述鼠标的移动导致鼠标光标移动超过所述监视器边缘以退出现实世界并且进入虚拟世界时发送鼠标消息;使用从现实世界的退出位置来确定所述鼠标光标在虚拟世界中的初始位置;以及利用所述鼠标移动来确定虚拟世界中的后续鼠标光标位置。

在另一示例中,该方法进一步包括在虚拟世界中在HMD设备上的初始位置以及后续鼠标光标位置处呈现所述鼠标光标。在另一示例中,该方法进一步包括利用传感器数据来确定HMD设备的用户的查看位置,并且当从所述查看位置投影的光线与所述监视器相交时将所述光标转换回到由所述监视器支持的桌面。在另一示例中,该方法进一步包括使用表面重构数据流水线对HMD设备位于其中的物理环境进行建模并且至少部分地使用被建模的物理环境来确定查看位置,该表面重构数据流水线实现一种创建被集成的多个交叠表面的容积方法。

又一示例包括一种计算设备,包括:一个或多个处理器;到监视器的接口,所述监视器显示桌面;鼠标接口,用于连接到鼠标并且从鼠标接收指示鼠标移动的信号以及来自计算设备的用户的对鼠标控制的输入;网络接口,用于通过网络连接与远程头戴式显示器(HMD)设备通信;以及存储计算机可读指令的一个或多个存储器设备,所述计算机可读指令在被所述一个或多个处理器执行时实现一种鼠标输入服务器,该鼠标输入服务器被配置成用于:追踪描述鼠标移动和输入的鼠标消息,当鼠标移动指示与鼠标相关联的光标正移动超过监视器边缘时,取得对鼠标消息的控制并且阻止鼠标消息到在计算设备上操作的系统的传播,以及通过网络连接将鼠标消息发送到HMD设备。

在另一示例中,HMD设备被配置成用于在光学显示器上呈现混合现实环境,该混合现实环境包括虚拟世界中的对象以及现实世界中的对象,鼠标消息被HMD设备用来至少在虚拟世界中呈现光标。在另一示例中,该计算设备进一步包括通过与在计算设备上执行的操作系统交互来追踪鼠标消息。在另一示例中,计算设备进一步包括从HMD设备接收鼠标光标已经转换到桌面的消息,并且使用鼠标光标在虚拟世界中的最后报告位置来计算桌面上的初始光标位置。

尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。

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