人工现实交互平面的制作方法

文档序号:19609507发布日期:2020-01-03 13:56阅读:129来源:国知局
人工现实交互平面的制作方法

本公开总体上涉及人工现实系统,并且更具体地,涉及在人工现实系统中接收人类输入。



背景技术:

本发明的实施例可以包括或结合人工现实系统来实现。人工现实是在呈现给用户之前已经以某种方式进行了调整的现实形式,其可以包括例如虚拟现实(vr)、增强现实(ar)、混合现实(mr)、混合现实或其某种组合和/或衍生物。人工现实内容可以包括完全生成的内容或者与捕捉的内容(例如,现实世界的照片)相结合的生成的内容。人工现实内容可以包括视频、音频、触觉反馈或其某种组合,并且其中的任何一个都可以在单个频道或多个频道(例如,向观众产生三维效果的立体视频)中呈现。此外,在一些实施例中,人工现实可以与例如用于在人工现实中创建内容和/或用于(例如,在人工现实中执行活动)人工现实中的应用程序、产品、附件、服务或其某种组合相关联。提供人工现实内容的人工现实系统可以在各种平台上实现,包括连接到主计算机系统的头戴式显示器(hmd)、独立的hmd、移动装置或计算系统、或者能够向一个或多个观众提供人工现实内容的任何其他硬件平台。



技术实现要素:

在特定实施例中,人工现实系统中的计算装置可以创建透明屏幕,该透明屏幕可以通过向用户提供更好的角度分辨率来允许用户精确地指向水平屏幕(例如,相对于用户的水平或大致水平的屏幕)上的位置。在人工现实系统中,用户可能需要与水平屏幕交互。例如,用户可以与使用人工现实系统通过网络连接的另一用户下棋。计算装置可以虚拟地生成表示左右棋盘的水平屏幕。棋盘可以包括多个棋子。用户可以使用控制器指向棋子,以便将该棋子移动到另一位置。用户可以通过将控制器指向位于第一位置的棋子并点击按钮来选择该棋子。用户可以通过将所选棋子拖动到第二位置来将棋子从棋盘上的第一位置移动到第二位置。用户可以通过释放按钮将该棋子定位在第二位置。然而,用户可能发现很难用控制器指向棋盘上的准确位置,因为离用户较远的一侧看起来比棋盘较近的一侧小。水平屏幕的更远部分看起来更小,不仅因为它们更远,还因为用户对更远部分的视角更窄。

为了在这种情况下向用户提供更好的角度分辨率,计算装置可以生成向用户倾斜的透明交互屏幕,使得交互屏幕的角度分辨率优于水平屏幕的角度分辨率。交互屏幕上的点可以映射到水平屏幕上的点。当用户用控制器指向透明交互屏幕上的第一点时,计算装置可以将水平屏幕上相应的第二点视为所指向的点。为了引导用户指向期望的点,计算装置可以显示从用户的虚拟控制器或手到水平屏幕上指向的第二点的曲线(或指向的内容的任何其他合适的视觉提示)。用户可以通过显示器看到曲线,以提供关于所指向的内容的进一步视觉提示。

当与人工现实系统相关联的计算装置从用户接收到显示水平屏幕的请求时,计算装置可以在人工现实环境中虚拟地生成水平屏幕,其中,水平屏幕通过显示器对用户可见。在上述示例中,计算装置可以生成棋子位于其初始位置的拟物化棋盘。计算装置可以确定用户和水平屏幕之间的水平距离以及控制器和水平屏幕之间的垂直距离。为了确定水平距离和垂直距离,计算装置可以使用来自hmd或控制器上的传感器的测量。在特定实施例中,计算装置可以测量人工现实环境中的水平距离和垂直距离。计算装置可以生成对应于水平屏幕的透明交互屏幕。交互屏幕可以与水平屏幕共享靠近用户的边缘,并且可以向用户倾斜一个角度。交互屏幕和水平屏幕之间的角度可以基于水平距离和垂直距离来确定。交互屏幕的尺寸也可以基于水平距离和垂直距离来确定。当计算装置检测到来自控制器的不可见光线投射击中交互屏幕上的第一点时,计算装置可以将检测到的事件转换成水平屏幕上的第二点被光线投射击中的事件。计算装置可以向用户呈现从控制器到水平屏幕上的第二点的可见曲线。当用户移动时,计算装置可以重新确定水平距离和垂直距离,并且可以调整交互屏幕的尺寸和角度。

在特定实施例中,计算装置可以从用户接收显示水平屏幕的命令。计算装置可以显示用户通过显示器可见的水平屏幕。水平屏幕可以有一个最靠近用户的点。水平屏幕可以包括一个或多个虚拟对象。水平屏幕可以包括一个或多个用户界面组件。计算装置可以通过测量用户位置和最近点之间的距离来确定用户位置和水平屏幕之间的第一水平距离。可以在人工现实环境中确定用户的位置。可以在人工现实环境中确定水平屏幕的位置。计算装置可以确定与用户相关联的控制器和水平屏幕之间的第一垂直距离。控制器的高度可以在人工现实环境中确定。用户可以使用控制器在水平虚拟屏幕上选择虚拟对象或用户界面(ui)组件。计算装置可以创建透明交互屏幕。透明交互屏幕和水平屏幕可以在最近点相交。透明交互屏幕可以从水平屏幕朝用户倾斜一个角度,该角度可以至少基于第一水平距离或第一垂直距离来确定。计算装置可以检测来自控制器的虚拟表示的光线投射击中透明交互屏幕上的第一点的第一事件。计算装置可以响应于检测,将第一事件转换成光线投射击中水平屏幕上的第二点的第二事件。透明交互屏幕上的第一点可以一对一地映射到水平屏幕上的第二点。计算装置可以显示从控制器到水平屏幕上的第二点的曲线。用户可以通过显示器看到曲线。曲线可以是bazier曲线。透明交互屏幕上的第一点可以是bazier曲线的控制点。计算装置可以至少基于第一水平距离和/或第一垂直距离来确定透明交互屏幕的尺寸。计算装置可以检测用户的移动。计算装置可以确定用户和水平虚拟屏幕之间的第二水平距离。计算装置可以确定控制器和水平虚拟屏幕之间的第二垂直距离。计算装置可以至少基于第二水平距离或第二垂直距离来调整透明交互屏幕和水平屏幕之间的角度。当第二水平距离大于第一水平距离时,计算装置可以增加角度。当第二水平距离小于第一水平距离时,计算装置可以减小角度。当第二垂直距离小于第一垂直距离时,计算装置可以增加角度。当第二垂直距离大于第一垂直距离时,计算装置可以减小角度。

本文公开的实施例仅仅是示例,并且本公开的范围不限于此。特定实施例可以包括以上公开的实施例的所有、一些或不包括组件、元件、特征、功能、操作或步骤。特别地,在所附权利要求中公开根据本发明的实施例,涉及一种方法、存储介质、系统和计算机程序产品,其中,可以在另一权利要求类别(例如,系统)中要求保护在一个权利要求类别(例如,方法)中提到的任何特征。仅出于正式原因而选择所附权利要求中的依赖关系或参考文献。然而,可以要求保护从任何先前的权利要求(特别是多个依赖关系)的有意引用产生的任何主题,以便公开并且可以要求保护权利要求及其特征的任何组合,而不管在所附权利要求中选择的依赖性。可以要求保护的主题不仅包括在所附权利要求中阐述的特征的组合,而且还包括在权利要求中的特征的任何其他组合,其中,权利要求中提及的每个特征可以与权利要求中的任何其他特征或者其他特征的组合相结合。此外,本文描述或描绘的任何实施例和特征可以以单独的权利要求和/或与本文描述或描绘的任何实施例或特征或者与所附权利要求的任何特征的任何组合来要求保护。

附图说明

图1示出了示例人工现实系统;

图2示出了具有虚拟对象的示例水平屏幕;

图3示出了提供更好角度分辨率的示例交互屏幕;

图4a至图4b示出了基于与用户相关联的控制器和水平屏幕之间的水平距离确定的示例角度;

图5a至图5b示出了基于与用户相关联的控制器和水平屏幕之间的垂直距离确定的示例角度;

图6示出了在人工现实系统中利用透明交互屏幕为水平屏幕提供更好的角度分辨率的示例方法;

图7示出了示例计算机系统。

具体实施方式

图1示出了示例人工现实系统。人工现实是在呈现给用户105之前已经以某种方式进行了调整的现实形式,其可以包括例如虚拟现实(vr)、增强现实(ar)、混合现实(mr)、混合现实或其某种组合和/或衍生物。人工现实内容可以包括完全生成的内容或者与捕捉的内容(例如,现实世界的照片)相结合的生成的内容。人工现实内容可以包括视频、音频、触觉反馈或其某种组合,并且其中的任何一个都可以在单个频道或多个频道(例如,向观众产生三维效果的立体视频)中呈现。此外,在一些实施例中,人工现实可以与例如用于在人工现实中创建内容和/或用于(例如,在人工现实中执行活动)人工现实中的应用程序、产品、附件、服务或其某种组合相关联。图1所示的示例人工现实系统可以包括头戴式显示器(hmd)101、控制器102和计算装置103。用户105可以佩戴头戴式显示器(hmd)101,其可以向用户105提供视觉人工现实内容。hmd101可以包括可以向用户105提供音频人工现实内容的音频装置。控制器102可以包括触控板和一个或多个按钮。控制器102可以接收来自用户105的输入,并将该输入中继到计算装置103。控制器102还可以向用户105提供触觉反馈。计算装置103可以连接到hmd101和控制器102。计算装置103可以控制hmd101和控制器102以向用户提供人工现实内容,并从用户105接收输入。计算装置103可以是与hmd101相结合的独立主机系统、移动装置或能够向一个或多个用户105提供人工现实内容的任何其他硬件平台,并从用户105接收输入。

在特定实施例中,人工现实系统中的计算装置103可以创建透明屏幕,该透明屏幕可以通过向用户105提供更好的角度分辨率来允许用户105精确地指向水平屏幕(例如,相对于用户的水平或大致水平的屏幕)上的位置。在人工现实系统中,用户105可能需要与水平屏幕交互。例如,用户105可以与使用人工现实系统通过网络连接的另一用户下棋。计算装置103可以虚拟地生成表示拟物化棋盘的水平屏幕。棋盘可以包括多个棋子。用户105可以使用控制器102指向棋子,以便将该棋子移动到另一位置。用户105可以通过将控制器指向位于第一位置的棋子并点击按钮来选择该棋子。用户105可以通过将所选棋子拖动到第二位置来将棋子从棋盘上的第一位置移动到第二位置。用户105可以通过释放按钮将该棋子定位在第二位置。然而,用户可能发现很难用控制器102指向棋盘上的准确位置,因为棋盘远离用户的一侧看起来比棋盘靠近的一侧小。水平屏幕的更远部分看起来更小,不仅因为它们更远,还因为用户对更远部分的视角更窄。为了在这种情况下向用户105提供更好的角度分辨率,计算装置103可以生成朝用户105倾斜的透明交互屏幕,使得交互屏幕的角度分辨率优于水平屏幕的角度分辨率。交互屏幕上的点可以映射到水平屏幕上的点。当用户105用控制器102指向透明屏幕上的第一点时,计算装置可以将水平屏幕上相应的第二点视为所指向的点。为了引导用户105指向期望的点,计算装置103可以显示从用户的控制器或手到水平屏幕上指向的第二点的曲线(或指向的内容的任何其他合适的视觉提示)。用户105可以通过显示器101看到曲线,以提供关于指向的内容的进一步视觉提示。

当与人工现实系统相关联的计算装置103从用户105接收到显示水平屏幕的请求时,计算装置103可以虚拟地在人工现实环境中生成水平屏幕,其中,水平屏幕通过显示器101对用户105可见。在上述示例中,计算装置103可以生成棋子位于其初始位置的拟物化棋盘。计算装置103可以确定用户105和水平屏幕之间的水平距离以及控制器102和水平屏幕之间的垂直距离。在特定实施例中,计算装置103可以通过hmd101和水平屏幕之间的距离来确定垂直距离。为了确定水平距离和垂直距离,计算装置可以使用来自hmd101或控制器102上的传感器的测量。在特定实施例中,计算装置103可以测量人工现实环境中的水平距离和垂直距离。计算装置103可以生成对应于水平屏幕的透明交互屏幕。交互屏幕可以与水平屏幕共享靠近用户105的边缘,并且可以朝用户105倾斜一个角度。交互屏幕和水平屏幕之间的角度可以基于水平距离和垂直距离来确定。交互屏幕的大小也可以基于水平距离和垂直距离来确定。当计算装置103检测到来自控制器102的不可见光线投射击中交互屏幕上的第一点时,计算装置103可以将检测到的事件转换成水平屏幕上的第二点被光线投射击中的事件。计算装置103可以向用户105呈现从控制器102到水平屏幕上的第二点的可见曲线。当用户105移动时,计算装置103可以重新确定水平距离和垂直距离,并且可以调整交互屏幕的尺寸和角度。尽管本公开描述了通过以特定方式利用透明交互屏幕来为人工现实应用程序中的水平屏幕提供更好的角度分辨率,但是本公开考虑了通过以任何合适的方式利用透明交互屏幕来为人工现实应用程序中的水平屏幕提供更好的角度分辨率。

在特定实施例中,计算装置103可以从用户105接收显示水平屏幕的命令。计算装置103可以显示用户105通过显示器101可见的水平屏幕。水平屏幕可以具有最靠近用户105的点。水平屏幕可以包括一个或多个虚拟对象。水平屏幕可以包括一个或多个用户界面组件。计算装置103可以通过测量用户位置和最近点之间的距离来确定用户位置和水平屏幕之间的第一水平距离。用户的位置可以在人工现实环境中确定。水平屏幕的位置可以在人工现实环境中确定。计算装置103可以确定与用户105相关联的控制器102和水平屏幕之间的第一垂直距离。控制器的高度可以在人工现实环境中确定。用户105可以使用控制器102在水平虚拟屏幕上选择虚拟对象或用户界面(ui)组件。计算装置103可以创建透明交互屏幕。透明交互屏幕和水平屏幕可以在最近点相交。透明交互屏幕可以从水平屏幕朝用户倾斜一个角度,该角度可以至少基于第一水平距离或第一垂直距离来确定。计算装置103可以检测来自控制器的虚拟表示的光线投射击中透明交互屏幕上的第一点的第一事件。计算装置103可以响应于检测,将第一事件转换成光线投射击中水平屏幕上的第二点的第二事件。透明交互屏幕上的第一点可以一对一地映射到水平屏幕上的第二点。计算装置103可以显示从控制器到水平屏幕上的第二点的曲线。用户105可以通过显示器看到曲线。曲线可以是bazier曲线。透明交互屏幕上的第一点可以是bazier曲线的控制点。计算装置103可以至少基于第一水平距离或第一垂直距离来确定透明交互屏幕的尺寸。计算装置103可以检测用户的移动。计算装置103可以确定用户和水平虚拟屏幕之间的第二水平距离。计算装置103可以确定控制器102和水平虚拟屏幕之间的第二垂直距离。计算装置103可以至少基于第二水平距离或第二垂直距离来调整透明交互屏幕和水平屏幕之间的角度。当第二水平距离大于第一水平距离时,计算装置103可以增加角度。当第二水平距离小于第一水平距离时,计算装置103可以减小角度。当第二垂直距离小于第一垂直距离时,计算装置103可以增加角度。当第二垂直距离大于第一垂直距离时,计算装置103可以减小角度。

在特定实施例中,与人工现实系统相关联的计算装置103可以从用户105接收显示水平屏幕的命令。计算装置103可以显示用户105通过显示器101可见的水平屏幕。作为示例而非通过限制的方式,用户105可能想要使用人工现实系统与她的一个朋友下棋。朋友可能位于远处,并通过网络连接。用户105可以与朋友连接,并使用人工现实系统启动象棋游戏应用程序。与人工现实系统相关联的计算装置103可以接收创建拟物化棋盘的命令,并且在人工现实环境中在地面上显示棋盘。用户105可以通过hmd101或任何其他类型的显示器101看到人工现实环境。在特定实施例中,整个人工现实环境可以由计算装置103虚拟创建。在特定实施例中,人工现实环境可以包括由在hmd101和虚拟创建的棋盘上装备的一个或多个相机捕捉的真实背景。作为另一示例而非通过限制的方式,用户105可能想要通过人工现实系统与他的多个朋友玩扑克游戏。这些朋友可能位于远处,并通过网络访问人工现实系统。当用户在人工现实系统上启动游戏时,计算装置103可以接收创建和显示扑克桌的命令。计算装置103可以虚拟地创建拟物化扑克桌,并通过显示器101显示用户可见的扑克桌。尽管本公开描述了接收命令并以特定方式显示用户通过显示器可见的水平屏幕,但是本公开考虑了接收命令并以任何合适的方式显示用户通过显示器可见的水平屏幕。

在特定实施例中,水平屏幕可以包括一个或多个虚拟对象。用户105可以使用控制器102在水平虚拟屏幕上选择虚拟对象。图2示出了具有虚拟对象的示例水平屏幕。作为示例而非通过限制的方式,继续棋盘的先前示例,棋盘201可以具有多个棋子202。用户105可以使用控制器102来指向棋子202,以将棋子202移动到另一位置。用户105可以通过将控制器102指向位于第一位置的棋子并点击按钮来选择该棋子202。用户105可以通过将所选棋子202拖动到第二位置来将棋子202从棋盘201上的第一位置移动到第二位置。用户105可以通过释放按钮将棋子202定位在第二位置。在特定实施例中,水平屏幕可以包括一个或多个用户界面(ui)组件。用户105可以使用控制器102来选择水平虚拟屏幕上的ui组件。作为示例而非通过限制的方式,继续扑克桌的先前示例,虚拟创建的桌子可以具有将游戏留在桌子角落的按钮。当用户105想要离开游戏时,用户105可以使用控制器102指向按钮,并点击控制器102上的一个按钮。在特定实施例中,水平屏幕可以具有最靠近用户105的点。作为示例而非通过限制的方式,继续棋盘的先前示例,拟物化棋盘可以是方形的。棋盘可以在一侧面向用户。侧面的点可以是离用户105最近的点。作为另一示例而非通过限制的方式,继续扑克桌的先前示例,扑克桌可以不是矩形。该桌子可能仍然具有最接近用户105的点。尽管本公开描述了人工现实系统中的水平屏幕的特定特征,但是本公开考虑了人工现实系统中的水平屏幕的任何合适的特征。

在特定实施例中,计算装置103可以创建透明交互屏幕。由于交互屏幕是透明的,所以用户105可能不知道交互屏幕的存在。在特定实施例中,透明交互屏幕和水平屏幕可以在离用户105最近的边缘相交(换言之,两个屏幕的相应最近的边缘可以彼此对准)。在特定实施例中,透明交互屏幕和水平屏幕可以在离用户105最近的点相交。透明交互屏幕可以从水平屏幕朝用户倾斜一个角度。计算装置103可以确定可以提供最佳角度分辨率的角度。作为示例而非通过限制的方式,继续棋盘的先前示例,棋盘201可以具有比其他边缘更靠近用户105的边缘。计算装置103可以创建透明交互屏幕,该屏幕在最近的边缘与棋盘201相交,并且朝用户105倾斜一个角度。作为另一示例而非通过限制的方式,继续扑克桌的先前示例,扑克桌可以具有与用户105最近的点。计算装置103可以创建透明交互屏幕,该屏幕在最近点处与扑克桌相交,并且朝用户105倾斜一个角度。尽管本公开描述了以特定方式创建透明交互屏幕,但是本公开考虑了以任何合适的方式创建透明交互屏幕。

图3示出了提供更好角度分辨率的示例交互屏幕。计算装置103可以基于来自用户105的命令创建水平屏幕301。计算装置103可以创建透明交互屏幕302,该屏幕可以在最接近用户105的边缘处与水平屏幕301相交。透明交互屏幕302可以朝用户105倾斜特定角度310。在特定实施例中,计算装置103可以检测来自控制器102的虚拟表示的光线投射击中透明交互屏幕302上的第一点303的第一事件。光线投射可以不是真实投射,而是由计算装置103基于给定人工现实环境中控制器的虚拟表示在人工现实中计算的输出。计算装置103可以响应于检测,将第一事件转换成光线投射击中水平屏幕301上的第二点304的第二事件。透明交互屏幕302上的第一点303可以一对一地映射到水平屏幕301上的第二点304。计算装置103可以显示从控制器102到水平屏幕301上的第二点304的曲线305。用户105可以通过显示器看到曲线305。曲线305可以引导用户105识别控制器102当前正指向水平屏幕上的哪个点。曲线可以是bazier曲线。透明交互屏幕302上的第一点303可以是bazier曲线的控制点。

作为示例而非通过限制的方式,继续棋盘的先前示例,用户105可能想要将棋子202从棋盘201上的一点移动到另一点。用户105可以将控制器102指向棋盘201。当来自控制器102的虚拟表示的光线投射击中交互屏幕302上的第一点303时,计算装置103可以将该事件转换成来自控制器102的虚拟表示的光线投射击中棋盘201上的对应点的另一事件。计算装置103可以显示从控制器102到棋盘201上的对应点的曲线305,使得用户105将确切知道控制器102当前正指向棋盘201上的哪个点。基于显示的曲线305,用户105能够相应地移动控制器102,以指向用户105想要移动的棋子202。尽管本公开描述了将来自控制器的光线投射击中交互屏幕上的点的事件转换成光线投射以特定方式击中水平屏幕上的点的另一事件,但是本公开考虑将来自控制器的光线投射击中交互屏幕上的点的事件转换成光线投射以任何合适方式击中水平屏幕上的点的另一事件。

图4a至图4b示出了基于用户位置和水平屏幕之间的水平距离确定的示例角度。在特定实施例中,计算装置103可以通过测量用户位置和最近点之间的距离来确定用户位置和水平屏幕301之间的第一水平距离401a。用户的位置可以在人工现实环境中确定。水平屏幕的位置可以在人工现实环境中确定。在特定实施例中,计算装置103可以通过测量控制器102的位置和水平屏幕301的最近点之间的距离来确定第一水平距离401a。当计算装置103创建透明交互屏幕302时,计算装置103可以基于第一水平距离401a来确定透明交互屏幕302和水平屏幕301之间的角度310a。在特定实施例中,计算装置103还可以基于第一水平距离401a来确定透明交互屏幕302的尺寸。

作为示例而非通过限制的方式,继续棋盘的先前示例,计算装置103可以在房间的桌子上显示虚拟棋盘201。如果桌子远离用户105,则棋盘201可能看起来远离用户105。计算装置103可以测量用户105的位置和棋盘201的最近侧之间的水平距离。计算装置103可以基于测量的水平距离来确定透明交互屏幕302从棋盘201朝用户105倾斜的角度。因为在该示例中水平距离大,所以计算装置103可以确定角度310的大值310a。如果水平距离小,则计算装置可以确定角度310的小值。在特定实施例中,计算装置103可以基于测量的水平距离来确定透明交互屏幕302的尺寸。如果水平距离401a在阈值内,则透明交互屏幕302的尺寸可以与水平屏幕301的尺寸相同。如果水平距离401a大于阈值,则计算装置103可以放大可能与水平距离401a成比例的透明交互屏幕302的尺寸。尽管本公开描述了以特定方式基于水平距离来确定透明交互屏幕和水平屏幕之间的角度,但是本公开考虑了以任何合适的方式基于水平距离来确定透明交互屏幕和水平屏幕之间的角度。

在特定实施例中,计算装置103可以检测用户105的移动。计算装置103可以确定用户105和水平屏幕301之间的第二水平距离401b。计算装置103可以基于第二水平距离401b将透明交互屏幕302和水平屏幕301之间的角度调整到值310b。如果第二水平距离401b小于第一水平距离401a,如图4a至图4b所示,则计算装置103可以将角度减小到310b。如果第二水平距离大于第一水平距离,则计算装置103可以增加角度。作为示例而非通过限制的方式,计算装置103可以检测用户105的移动。如图4b所示,第二水平距离401b小于第一水平距离401a,第一水平距离401a是用户105移动之前的水平距离。在确定第二水平距离401b之后,计算装置可以将角度310减小到更小值310b。尽管本公开描述了以特定方式基于改变的水平距离来调整透明交互屏幕和水平屏幕之间的角度,但是本公开考虑了以任何合适的方式基于改变的水平距离来调整透明交互屏幕和水平屏幕之间的角度。

图5a至图5b示出了基于与用户相关联的控制器和水平屏幕之间的垂直距离确定的示例角度。在特定实施例中,计算装置103可以确定与用户105相关联的控制器102和水平屏幕301之间的第一垂直距离501a。控制器102的高度可以在人工现实环境中确定。计算装置103可以基于第一垂直距离501a将透明交互屏幕302和水平屏幕301之间的角度310确定为值310c。在特定实施例中,计算装置103可以基于第一垂直距离501a确定透明交互屏幕302的尺寸。作为示例而非通过限制的方式,继续扑克桌的先前示例,计算装置103可以显示具有长腿的扑克桌,如图5a所示。在这种情况下,垂直距离501a可以很小。计算装置103可以通过测量控制器102和对应于水平屏幕301的扑克桌之间的垂直距离来确定第一垂直距离501a。当垂直距离501a很小时,角度分辨率可能变得很差。因此,计算装置103可以将透明交互屏幕302和水平屏幕301之间的角度310设置为大值310c。作为另一示例而非通过限制的方式,继续棋盘的先前示例,计算装置103可以在地板上显示棋盘201,如图5b所示。在这种情况下,垂直距离501b可以很大。大的垂直距离501b可以导致更好的角度分辨率。在确定垂直距离501b之后,计算装置103可以将透明交互屏幕302和水平屏幕301之间的角度310设置为小值310d。尽管本公开描述了以特定方式基于垂直距离确定透明交互屏幕和水平屏幕之间的角度,但是本公开考虑了以任何合适的方式基于垂直距离确定透明交互屏幕和水平屏幕之间的角度。

在特定实施例中,计算装置103可以检测用户的移动。作为移动的结果,垂直距离可能会改变。计算装置103可以确定控制器102和水平虚拟屏幕301之间的第二垂直距离。作为示例而非通过限制的方式,如果用户105从图5a所示的情形移动到图5b所示的情形,则垂直距离可以变得更大。在确定第二垂直距离501b时,计算装置103可以将透明交互屏幕302和水平屏幕301之间的角度310从值310c减小到更小值310d。作为另一示例而非通过限制的方式,如果用户105从图5b所示的情形移动到图5a所示的情形,则垂直距离可以变得更小。在确定第二垂直距离501a时,计算装置103可以将透明交互屏幕302和水平屏幕301之间的角度310从值310d增加到更大值310c。在特定实施例中,计算装置103可以基于改变的垂直距离来调整透明交互屏幕302的尺寸。尽管本公开描述了以特定方式基于改变的垂直距离来调整透明交互屏幕和水平屏幕之间的角度,但是本公开考虑以任何合适的方式基于改变的垂直距离来调整透明交互屏幕和水平屏幕之间的角度。

图6示出了用于利用透明交互屏幕为人工现实系统中的水平屏幕提供更好的角度分辨率的示例方法600。该方法可以在步骤610处开始,其中,计算装置103可以显示用户通过显示器可见的水平屏幕,其中,水平屏幕具有最接近用户的点。在步骤620处,计算装置103可以确定用户位置和水平屏幕之间的第一水平距离。在步骤630处,计算装置103可以确定与用户相关联的控制器和水平屏幕之间的第一垂直距离,其中,控制器接收来自用户的输入并将该输入传送给计算装置。在步骤640处,计算装置103可以创建透明交互屏幕,其中,透明交互屏幕基于水平屏幕的最近点定位,其中,透明交互屏幕从水平屏幕朝用户倾斜一个角度,并且其中,该角度至少基于第一水平距离或第一垂直距离来确定。在步骤650处,计算装置103可以检测来自控制器的虚拟表示的光线投射击中透明交互屏幕上的第一点的第一事件。在步骤660处,计算装置103可以响应于检测,将第一事件转换成光线投射击中水平屏幕上的第二点的第二事件,其中,透明交互屏幕上的第一点一对一地映射到水平屏幕上的第二点。在适当的情况下,特定实施例可以重复图6的方法的一个或多个步骤。尽管本公开将图6的方法的特定步骤描述并示出为以特定顺序发生,但是本公开考虑了以任何合适顺序发生的图6的方法的任何合适步骤。此外,尽管本公开描述并示出了用于在人工现实系统中利用透明交互屏幕来为水平屏幕提供更好的角度分辨率的示例方法(包括图6的方法的特定步骤),但是本公开考虑了用于在人工现实系统中利用透明交互屏幕来为水平屏幕提供更好的角度分辨率的任何适当方法(包括任何适当步骤),在适当的情况下,这些步骤可以包括图6的方法的所有步骤、一些步骤或不包括任何步骤。此外,尽管本公开描述并示出了执行图6的方法的特定步骤的特定组件、装置或系统,但是本公开考虑了执行图6的方法的任何适当步骤的任何适当组件、装置或系统的任何适当组合。

图7示出了示例计算机系统。在特定的实施方式中,一个或多个计算机系统700执行在本文中描述或示出的一个或多个方法的一个或多个步骤。在特定的实施方式中,一个或多个计算机系统700提供在本文中描述或示出的功能。在特定的实施方式中,在一个或多个计算机系统700上运行的软件执行在本文中描述或示出的一个或多个方法的一个或多个步骤,或者提供在本文中描述或示出的功能。特定的实施方式包括一个或多个计算机系统700的一个或多个部分。在本文中,在适当的情况下,计算机系统的引用可以包括计算装置,反之亦然。此外,在适当的情况下,计算机系统的引用可以包括一个或多个计算机系统。

本公开考虑任何适当数量的计算机系统700。本公开考虑采用任何合适的物理形式的计算机系统700。作为示例,并非通过限制的方式,计算机系统700可为嵌入式计算机系统、片上系统(soc)、单板计算机系统(sbc)(诸如,例如模块上计算机(com)或模块上系统(som))、台式电脑系统、膝上型或笔记本式电脑系统、交互式自助服务机、主机、计算机系统的网格、移动电话、个人数字助理(pda)、服务器、平板电脑系统、增强/虚拟现实装置、或其中的两个或多个的组合。在适当的情况下,计算机系统700可包括一个或多个计算机系统700;可为单一式或分布式;跨过多个位置;跨过多台机器;或者位于云中,其在一个或多个网络中可包括一个或多个云元件。在适当的情况下,一个或多个计算机系统700可执行在本文中描述或示出的一个或多个方法的一个或多个步骤,无需大量空间或时间限制。作为示例,并非通过限制的方式,一个或多个计算机系统700可实时或以成批的方式执行在本文中描述或示出的一个或多个方法的一个或多个步骤。在适当的情况下,一个或多个计算机系统700可在不同的时间或者在不同的位置处执行在本文中描述或示出的一个或多个方法的一个或多个步骤。

在特定的实施方式中,计算机系统700包括处理器702、存储器704、储存器706、输入/输出(i/o)接口708、通信接口710以及总线712。虽然本公开描述和显示了在特定的设置中具有特定数量的特定组件的特定计算机系统,但是本公开考虑在任何合适的设置中具有任何合适的数量的任何合适的组件的任何合适的计算机系统。

在特定的实施方式中,处理器702包括用于执行指令的硬件,例如,构成计算机程序的那些指令。作为示例,并非通过限制的方式,为了执行指令,处理器702可从内部寄存器、内部高速缓存、存储器704或储存器706中检索(或提取)指令;将这些指令解码并且执行这些指令;并且然后将一个或多个结果写入内部寄存器、内部高速缓存、存储器704或储存器706中。在特定的实施方式中,处理器702可以包括用于数据、指令或地址的一个或多个内部高速缓存。本公开考虑处理器702在适当的情况下包括任何合适数量的任何合适的内部高速缓存。作为示例,并非通过限制的方式,处理器702可以包括一个或多个指令高速缓存、一个或多个数据高速缓存、以及一个或多个转译后备缓冲器(tlb)。在指令高速缓存内的指令可以是在存储器704或储存器706内的指令的副本,并且指令高速缓存可以加速由处理器702检索那些指令。在数据高速缓存内的数据可以是在存储器704或储存器706内的数据的副本,用于要起作用的在处理器702上执行的指令;在处理器702上执行的先前指令的结果由在处理器702上执行的后续指令访问或者写入存储器704或储存器706内;或者其他合适的数据。数据高速缓存可以加速处理器702的读取或写入操作。tlb可以加速处理器702的虚拟地址转译。在特定的实施方式中,处理器702可以包括用于数据、指令或地址的一个或多个内部寄存器。在适当的情况下,本公开考虑处理器702包括任何合适数量的任何合适的内部寄存器。在适当的情况下,处理器702可以包括一个或多个算术逻辑单元(alu);是多核处理器;或者包括一个或多个处理器702。虽然本公开描述和显示了特定的处理器,但是本公开考虑任何合适的处理器。

在特定的实施方式中,存储器704包括主存储器,用于储存要执行的处理器702的指令或者要起作用的处理器702的数据。作为示例,并非通过限制的方式,计算机系统700可将指令从储存器706或另一源(例如,另一计算机系统700)中装载到存储器704中。然后,处理器702可将指令从存储器704中装载到内部寄存器或内部高速缓存中。为了执行这些指令,处理器702可从内部寄存器或内部高速缓存中检索指令,并且将这些指令解码。在执行指令期间或之后,处理器702可将一个或多个结果(这些结果可为中间或最终结果)写入内部寄存器或内部高速缓存中。然后,处理器702可将这些结果中的一个或多个写入存储器704中。在特定的实施方式中,存储器704仅仅执行在一个或多个内部寄存器或内部高速缓存内或者在存储器704内(与储存器706相反或者在别处)的指令,并且仅仅操作在一个或多个内部寄存器或内部高速缓存内或者在存储器704内(与储存器706相反或者在别处)的数据。一个或多个内存总线(这些总线均可包括地址总线和数据总线)可使处理器702与存储器704耦接。如下所述,总线712可包括一个或多个内存总线。在特定的实施方式中,一个或多个内存管理单元(mmu)位于处理器702与存储器704之间,并且有助于访问由处理器702请求的存储器704。在特定的实施方式中,存储器704包括随机存取存储器(ram)。在适当的情况下,该ram可为易失性存储器。在适当的情况下,该ram可为动态ram(dram)或静态ram(sram)。此外,在适当的情况下,该ram可为单端口或多端口ram。本公开考虑任何合适的ram。在适当的情况下,存储器704可以包括一个或多个存储器704。虽然本公开描述和显示了特定的存储器,但是本公开考虑任何合适的存储器。

在特定的实施方式中,储存器706包括用于数据或指令的大容量储存器。作为示例,并非通过限制的方式,储存器706可包括hdd、软盘驱动器、闪速存储器、光盘、磁光盘、磁带或通用串行总线(usb)驱动器或其中的两个或多个的组合。在适当的情况下,储存器706可包括可移动或不可移动的(或固定的)介质。在适当的情况下,储存器706可位于计算机系统700的内部或外部。在特定的实施方式中,储存器706是非易失性固态存储器。在特定的实施方式中,储存器706包括只读存储器(rom)。在适当的情况下,该rom可为掩膜编程的rom、可编程的rom(prom)、可擦prom(eprom)、电可擦prom(eeprom)、电可改写rom(earom)、或闪速存储器或其中的两个或多个的组合。本公开考虑采用任何合适的物理形式的大容量储存器706。在适当的情况下,储存器706可以包括促进在处理器702与储存器706之间通信的一个或多个储存控制单元。在适当的情况下,储存器706可以包括一个或多个储存器706。虽然本公开描述和显示了特定的储存器,但是本公开考虑任何合适的储存器。

在特定的实施方式中,i/o接口708包括硬件和/或软件,其提供一个或多个接口,用于在计算机系统700与一个或多个i/o装置之间进行通信。在适当的情况下,计算机系统700可包括这些i/o装置中的一个或多个。这些i/o装置中的一个或多个能够在个人与计算机系统700之间进行通信。作为示例,并非通过限制的方式,i/o装置可包括键盘、按键、麦克风、显示器、鼠标、打印机、扫描仪、扬声器、静物照相机、唱针、平板电脑、触摸式屏幕、轨迹球、摄影机、另一合适的i/o装置或其中的两个或多个的组合。i/o装置可包括一个或多个传感器。本公开考虑任何合适的i/o装置以及用于这些i/o装置的任何合适的i/o接口708。在适当的情况下,i/o接口708可包括一个或多个装置或软件驱动器,其能够允许处理器702驱动这些i/o装置中的一个或多个。在适当的情况下,i/o接口708可包括一个或多个i/o接口708。虽然本公开描述和显示了特定的i/o接口,但是本公开考虑任何合适的i/o接口。

在特定的实施方式中,通信接口710包括硬件和/或软件,其提供一个或多个接口,用于在计算机系统700与一个或多个其他计算机系统700或一个或多个网络之间进行通信(例如,基于分组的通信)。作为示例,并非通过限制的方式,通信界面710可包括网络接口控制器(nic)、或用于与以太网或其他有线网络或无线nic(wnic)进行通信的网络适配器、或用于与无线网络(例如,wi-fi网络)进行通信的网络适配器。本公开考虑任何合适的网络以及用于该网络的任何合适的通信接口710。作为示例,并非通过限制的方式,计算机系统700可与自组织网络、个人区域网络(pan)、局域网(lan)、广域网(wan)、城域网(man)、或互联网的一个或多个部分或其中的两个或多个的组合进行通信。这些网络中的一个或多个的一个或多个部分可为有线或无线部分。作为示例,计算机系统700可与无线pan(wpan)(诸如,例如bluetoothwpan)、wi-fi网络、wi-max网络、蜂窝电话网络(诸如,例如全球移动通讯系统(gsm)网络)、或其他合适的无线网络或其中的两个或多个的组合进行通信。在适当的情况下,计算机系统700可以包括用于这些网络中的任一个的任何合适的通信接口710。在适当的情况下,通信接口710可以包括一个或多个通信接口710。虽然本公开描述和显示了特定的通信接口,但是本公开考虑任何合适的通信接口。

在特定的实施方式中,总线712包括硬件和/或软件,其使计算机系统700的组件彼此耦接。作为示例,并非通过限制的方式,总线712可包括加速图形端口(agp)或其他图形总线、增强型工业标准架构(eisa)总线、前端总线(fsb)、超传输(ht)互连、工业标准结构(isa)总线、无限带宽互连、低脚位(lpc)总线、内存总线、微通道结构(mca)总线、外围部件互连(pci)总线、pci高速(pcie)总线、串行高级技术附件(sata)总线、视频电子标准协会本地(vlb)总线、或另一合适的总线或其中的两个或多个的组合。在适当的情况下,总线712可包括一个或多个总线712。虽然本公开描述和显示了特定的总线,但是本公开考虑任何合适的总线或互连。

在本文中,在适当的情况下,计算机可读永久性储存介质的引用可包括基于半导体的或者其他集成电路(ic)(例如,现场可编程门阵列(fpga)或专用ic(asic))、硬盘驱动器hdd、混合硬盘驱动器(hhd)、光盘、光盘驱动器(odd)、磁光盘、磁光驱动器、软盘、软盘驱动器(fdd)、磁带、固态驱动器(ssd)、ram驱动器、安全数字卡、安全数字卡或驱动器、另一合适的计算机可读永久性储存介质、或者其中的一个合适的组合。在适当的情况下,计算机可读永久性储存介质可为易失性、非易失性或者易失性和非易失性的组合。

在本文中,除非另有明确规定或者在上下文中另有明确规定,否则“或”具有包括而非排除的意思。因此,在本文中,除非另有明确规定或者在上下文中另有明确规定,否则“a或b”表示“a和/或b”。此外,除非另有明确规定或者在上下文中另有明确规定,否则“和”具有共同和单独的意思。因此,在本文中,除非另有明确规定或者在上下文中另有明确规定,否则“a和b”表示“共同或单独的a和b”。

本公开的范围包括本领域的技术人员会理解的在本文中描述或示出的示例实施方式的所有变化、替换、变动、变更以及修改。本公开的范围不限于在本文中描述或示出的示例实施方式。此外,虽然本公开描述和显示了在本文中相应的实施方式包括特定的组件、元件、特征、功能、操作或步骤,但是这些实施方式中的任一个可以包括本领域的技术人员会理解的在本文中的任何地方描述或示出的任何组件、元件、特征、功能、操作或步骤的任何组合或排列。此外,只要适合于、被设置为、能够、被配置为、启用、可用于或者有效地执行一个特定的功能的设备、系统、或装置或系统的组件这样适合、设置、能够、配置、启用、可用或者有效,就无论是否激活、打开或开启该设备、系统、组件或该特定的功能,在所附权利要求中引用该设备、或系统、或组件都包括该设备、系统、组件。此外,尽管本公开将特定实施例描述或示出为提供特定优点,但是特定实施例可以不提供这些优点、提供某些或全部这些优点。

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