CN116594497A - 虚拟现实中的滚动和导航 - Google Patents

虚拟现实中的滚动和导航 Download PDF

Info

Publication number
CN116594497A
CN116594497A CN202310140660.9A CN202310140660A CN116594497A CN 116594497 A CN116594497 A CN 116594497A CN 202310140660 A CN202310140660 A CN 202310140660A CN 116594497 A CN116594497 A CN 116594497A
Authority
CN
China
Prior art keywords
user
scrolling
input gesture
processors
navigation command
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.)
Pending
Application number
CN202310140660.9A
Other languages
English (en)
Inventor
阿卡尔·古普塔
坦娅·瑞尼·琼科
杰奎琳·法辛保尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meta Platforms Technologies LLC
Original Assignee
Meta Platforms Technologies LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Meta Platforms Technologies LLC filed Critical Meta Platforms Technologies LLC
Publication of CN116594497A publication Critical patent/CN116594497A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/163Wearable computers, e.g. on a belt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction 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/04815Interaction 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction 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/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction 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/0485Scrolling or panning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本主题技术的各方面涉及用于导航浏览共享人工现实环境的系统、方法和机器可读介质。各方面可以包括,接收对该共享人工现实环境中的虚拟对象的指示。各方面还可以包括,接收指示与该虚拟对象相关联的导航命令的输入手势。各方面还可以包括,确定该输入手势的至少一种类型,该输入手势的类型包括屈曲和伸展、旋前和旋后、或桡侧和尺侧。各方面还可以包括确定控制方法。各方面可以包括确定滚动参数。各方面可以包括,基于该输入手势的类型、该控制方法和该滚动参数,来识别导航命令。各方面可以包括将该导航命令应用于该虚拟对象。

Description

虚拟现实中的滚动和导航
相关申请的交叉引用
本申请要求于2022年2月11日提交的第17/670,228号美国非临时申请的优先权的权益,该申请的内容通过引用全部并入本文。
技术领域
本公开总体上涉及用于计算机生成的共享人工现实环境的导航(navigation)和滚动,并且更具体地涉及用户滚动浏览这种环境中的虚拟对象的可滚动列表。
背景技术
计算机生成的共享人工现实环境中的交互涉及,与该共享人工现实环境中的各种类型的人工现实/虚拟内容、人工现实/虚拟元素、和/或人工现实/虚拟应用的交互。该共享人工现实环境的用户可能期望在该共享人工现实环境中所呈现的多个选项之间进行选择。例如,该共享人工现实环境中的虚拟对象可以包括可滚动列表。在该共享人工现实环境中利用自然手势自然地滚动浏览该可滚动列表从而浏览内容的能力可以提高关于用于控制该环境中的滚动和导航的用户移动的用户体验。
发明内容
本主题公开提供了用于导航浏览诸如共享虚拟现实环境等人工现实环境(例如,滚动浏览虚拟区域或虚拟对象)的系统和方法。例如,该共享虚拟现实环境的用户可以使用移动来滚动浏览特定虚拟对象的可滚动列表或特定虚拟区域的可滚动列表。上述移动可以是腕部移动或其他合适的移动。也就是说,例如,用户可以经由空中滚动技术来移动其腕部,该空中滚动技术可以由手在该共享虚拟现实环境中的虚拟表示来反映。各种腕部移动可以与所提供的输入手势的不同类型相对应,这些类型例如为屈曲和伸展、旋前和旋后、桡侧和尺侧等。可以基于定义导航命令的所选择的腕部移动,根据一种或多种控制方法和/或一个或多个滚动参数(例如,用于模拟经由输入手势滚动时的动量的传递函数)来执行滚动的方法。用于在本公开的环境中滚动和/或导航的各种机制可以例如通过提供更自然和直观的滚动技术,改进虚拟内容的滚动或导航。因此,有利地,用户可以体验用于人工现实环境的导航的一个或多个改进的虚拟接口。
根据本公开的一个实施例,提供了一种用于导航浏览共享人工现实环境的、计算机实现的方法。该方法包括:确定接收对共享人工现实环境中的虚拟对象的指示。该方法还包括:经由虚拟接口,接收指示与虚拟对象相关联的导航命令的输入手势。该方法还包括:确定该输入手势的至少一种类型。该输入手势的类型包括以下中的至少一者:屈曲和伸展、旋前和旋后、或桡侧和尺侧。该方法还包括:确定控制方法。该方法还包括:确定滚动参数。该方法还包括:基于该输入手势的类型、该控制方法和该滚动参数,来识别该导航命令。该方法包括:将该导航命令应用于该虚拟对象。
根据本公开的一个实施例,提供了一种系统,该系统包括处理器和存储器,该存储器包括存储在其上的多个指令,该多个指令在被该处理器执行时使得该处理器执行用于导航浏览共享人工现实环境的方法。该方法包括:确定接收对该共享人工现实环境中的虚拟对象的指示。该方法还包括:经由虚拟接口,接收指示与虚拟对象相关联的导航命令的输入手势。该方法还包括:确定输入手势的至少一种类型。输入手势的类型包括以下中的至少一者:屈曲和伸展、旋前和旋后、或桡侧和尺侧。该方法还包括:确定控制方法。该方法还包括:确定滚动参数。该方法还包括:基于该输入手势的类型、该控制方法和该滚动参数,来识别该导航命令。该方法包括:将该导航命令应用于该虚拟对象。
根据本公开的一个实施例,提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质包括多个指令(例如,所存储的指令序列),该多个指令在被处理器执行时使得该处理器执行用于导航浏览共享人工现实环境的方法。该方法包括:确定接收对该共享人工现实环境中的虚拟对象的指示。该方法还包括:经由虚拟接口,接收指示与该虚拟对象相关联的导航命令的输入手势。该方法还包括:确定该输入手势的至少一种类型。该输入手势的类型包括以下中的至少一者:屈曲和伸展、旋前和旋后、或桡侧和尺侧。该方法还包括:确定控制方法。该方法还包括:确定滚动参数。该方法还包括:基于该输入手势的类型、该控制方法和该滚动参数,来识别该导航命令。该方法包括:将该导航命令应用于该虚拟对象。
根据本公开的一个实施例,提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质包括多个指令(例如,所存储的指令序列),该多个指令在被处理器执行时使得该处理器执行用于导航浏览共享人工现实环境的方法。该方法包括:确定接收对该共享人工现实环境中的虚拟对象的指示。该方法还包括:经由虚拟接口,接收指示与该虚拟对象相关联的导航命令的输入手势。该方法还包括:确定该输入手势的至少一种类型。该输入手势的类型包括以下中的至少一者:屈曲和伸展、旋前和旋后、或桡侧和尺侧。该方法还包括:确定控制方法。该方法还包括:确定滚动参数。该方法还包括:根据该输入手势,基于该滚动参数生成对该共享人工现实环境中的该虚拟对象的可滚动列表进行滚动浏览的动量。该方法还包括:基于该输入手势的类型、该控制方法和该滚动参数,来识别该导航命令。该方法包括:将该导航命令应用于该虚拟对象。该方法包括:基于该导航命令和双捏合输入手势,来选择该可滚动列表中的项目。
附图说明
为了容易地识别对任何特定元件或动作的论述,附图标记中的一个或多个最高有效位是指第一次引入该元件的图号。
图1是可以实现本主题技术的各方面的设备运行环境的框图。
图2A和图2B是示出了根据本公开某些方面的虚拟现实头戴式视图器(virtualreality headset)的示意图。
图2C示出了根据本公开某些方面的用于与人工现实环境交互的多个控制器。
图3是示出了本技术的一些实施方式可在其中运行的环境的概况图。
图4示出了根据本公开某些方面的示例人工现实可穿戴设备。
图5是示出了可以实现本主题技术的各方面的示例计算机系统(例如,表示客户端和服务器这两者)的框图。
图6至图8示出了根据本公开某些方面的人工现实环境中的用户导航的示例视图。
图9是根据本公开某些方面的用于导航浏览共享人工现实环境的示例流程图。
图10是示出了可以实现本主题技术的各方面的示例计算机系统的框图。
在一个或多个实施方式中,并不是每个附图中所描绘的所有部件都是必需的,并且一个或多个实施方式可以包括附图中未示出的附加部件。可以在不脱离本主题公开的范围的情况下,对这些部件的布置和类型进行各种变型。在本公开的范围内,可以利用附加部件、不同的部件或更少的部件。
具体实施方式
在以下详细描述中,阐述了许多具体细节以提供对本公开的全面理解。然而,对于本领域普通技术人员将显而易见的是,可以在没有这些具体细节中的一些具体细节的情况下,对本公开的各实施例进行实践。在其他实例中,没有详细示出众所周知的结构和技术,以免模糊本公开。
所公开的系统解决了与计算机技术相关联的人工现实中的问题,即,在计算机生成的共享人工现实环境内,对用于导航的用户输入的响应性的技术问题。所公开的系统通过提供也植根于计算机技术的解决方案(即,通过向人工现实环境的用户提供例如基于感测到的腕部移动输入手势的自然导航(例如,滚动)技术),来解决该技术问题。所公开的系统还改进了用于生成人工现实环境的计算机的功能,这是因为所公开的系统使该计算机能够改善人工现实兼容用户设备与该计算机之间的通信。本发明被集成到基于计算机的图形用户界面(graphic user interface)的实际应用中,该基于计算机的图形用户界面实现了对虚拟区域、虚拟对象和/或虚拟元素的导航和滚动。特别地,所公开的系统基于改进的、控制方法/机制的数量和/或质量,来提供更快响应的、更自然的和更有效的滚动,这些控制方法/机制将输入腕部姿势更快速且准确地转换为用户所期望的人工现实环境中的导航命令,从而例如滚动浏览该人工现实环境中的虚拟列表元素。
本公开各方面针对创建和管理人工现实环境。例如,人工现实环境可以是共享人工现实环境、虚拟现实(virtual reality,VR)环境、增强现实(augmented reality,AR)环境、混合现实(mixed reality,MR)环境、混合现实(hybrid reality)环境、非沉浸式环境、半沉浸式环境、和/或完全沉浸式环境等。人工现实环境也可以包括人工协作游戏、人工协作工作、和/或包括这些人工现实环境中的各种人或用户之间的交互模式的其他环境。本公开的人工现实环境可以提供使用户能够经由用户腕部中的功能扩展(例如,经由捏合、转动、和/或倾斜等)在环境中导航(例如,滚动)的元素。例如,用户腕部倾斜的程度可以与在人工现实环境中滚动浏览可滚动列表的速度相对应(例如,更大的倾斜度引起更快的滚动,而更小的倾斜度引起更慢的滚动)。如本文所使用的,“真实世界”对象是非计算机生成的,而人工或VR对象是计算机生成的。例如,真实世界空间是占据计算机外部的位置的物理空间,并且真实世界对象是具有物理属性的计算机外部的物理对象。例如,人工或VR对象可以被渲染,并且是计算机生成的人工现实环境的一部分。
所公开技术的多个实施例可以包括人工现实系统,或者结合人工现实系统来实现。人工现实、扩展现实或超现实(extra reality)(统称为“XR”)是在呈现给用户之前已经以某种方式进行了调整的现实形式,该现实形式例如可以包括虚拟现实(VR)、增强现实(AR)、混合现实(MR)、混合现实(hybrid reality)、或它们的某种组合和/或衍生物。人工现实内容可以包括完全生成内容或与所采集的内容(例如,现实世界照片)相结合的生成内容。人工现实内容可以包括视频、音频、触觉反馈、或它们的某种组合,以上中的任何一种可以在单个通道中或在多个通道(例如,向观看者产生三维效果的立体视频)中呈现。另外,在一些实施方式中,人工现实可与应用、产品、附件、服务、或它们的某种组合相关联,应用、产品、附件、服务、或它们的某种组合例如用于在人工现实中创建内容及/或在人工现实中使用(例如,在人工现实中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,这些平台包括连接到主计算机系统的头戴式显示器(head-mounted display,HMD)、独立HMD、移动设备或计算系统、“洞穴式(cave)”环境或其他投影系统、或能够向一个或多个观看者提供人工现实内容的任何其他硬件平台。
如本文所使用的,“虚拟现实”或“VR”是指由计算系统控制用户视觉输入的沉浸式体验。“增强现实”或“AR”是指这样的系统:在该系统中,真实世界的图像通过计算系统之后、用户观看这些真实世界的图像。例如,在背面具有摄像头的平板电脑可以采集多幅真实世界的图像,然后该平板电脑可以在该平板电脑的与该摄像头相对的一侧的屏幕上显示这些图像。该平板电脑可以在这些图像通过系统时,处理并且调整或“增强”这些图像,例如通过添加虚拟对象来调整或“增强”这些图像。AR还指这样的系统:在该系统中,进入用户眼睛的光部分由计算系统产生,且部分构成从现实世界中的对象反射出的光。例如,AR头戴式视图器可以被成形为一副具有穿透式显示器的眼镜,该具有穿透式显示器的眼镜允许来自真实世界的光穿过一波导,该波导同时出射来自该AR头戴式视图器中的投影机的光,从而允许该AR头戴式视图器呈现与用户可看到的真实对象混合的虚拟对象。AR头戴式视图器可以是具有视频直通(video pass-through)的阻光头戴式视图器。如本文中所使用的,“人工现实”、“超现实”或“XR”是指VR、AR、MR、或它们的任意组合或混合中的任何一者。
以下参考附图更详细地论述了几种实施方式。图1是可以实现本主题技术的各方面的设备运行环境的框图。该设备运行环境可以包括计算系统100的多个硬件部件,该多个硬件部件可以为共享人工现实环境(例如,协作人工现实环境)创建、管理和提供多种交互模式,以例如用于经由XR元素的导航和/或滚动等。这些交互模式可以包括针对计算系统100的每个用户的、各种输入手势的各种模式、控制模式、滚动参数等。在各种实施方式中,计算系统100可以包括单个计算设备或多个计算设备102,该多个计算设备102通过有线信道或无线信道进行通信,以分发处理和共享输入数据。
在一些实施方式中,计算系统100可以包括独立头戴式视图器,该独立头戴式视图器能够在无需外部处理或传感器的情况下,为用户提供计算机创建或增强的体验。在其他实施方式中,计算系统100可以包括多个计算设备102,例如头戴式视图器和核心处理部件(例如,控制台、移动设备、或服务器系统),其中一些处理操作在该头戴式视图器上执行而其他处理操作被转移到该核心处理部件。下面关于图2A和图2B描述了示例头戴式视图器。在一些实施方式中,位置和环境数据可以仅由结合在头戴式视图器中的多个传感器收集,而在其它实施方式中,多个非头戴式视图器的计算设备102中的一个或多个可以包括可追踪环境或位置数据(例如,用于实现计算机视觉功能的环境或位置数据)的多个传感器部件。附加地或替代地,这种传感器可以被整合为腕式传感器,该腕式传感器可以用作用于检测或确定用户输入手势的腕部可穿戴设备。例如,这些传感器可以包括惯性测量单元(inertial measurement unit,IMU)、眼动追踪传感器、肌电图(electromyography,EMG)传感器(例如,用于将神经肌肉信号转换成特定手势)、飞行时间传感器、和/或光/光学传感器等,以确定输入手势、用户手/腕部正如何移动、和/或环境和位置数据。
计算系统100可以包括一个或多个处理器110(例如,中央处理单元(centralprocessing unit,CPU)、图形处理单元(graphical processing unit,GPU)、全息处理单元(holographic processing unit,HPU)等)。该一个或多个处理器110可以是单个处理单元或多个处理单元,该多个处理单元位于一设备中或者分布在多个设备上(例如,分布在多个计算设备102中的两个或更多个上)。计算系统100可以包括一个或多个输入设备104,该一个或多个输入设备104向处理器110提供输入,从而向处理器通知多个动作。这些动作可以由硬件控制器传送,该硬件控制器对接收到的来自输入设备104的信号进行解释,并使用通信协议向处理器110传送该信息。作为一示例,硬件控制器可以对来自输入设备104的信号进行转换,以例如基于传递函数来模拟相对于XR滚动的点击力矩(click moment)或翻阅动量(flip momentum)。每个输入设备104例如可以包括鼠标、键盘、触摸屏、触摸板、可穿戴输入设备(例如,触觉手套、手镯、戒指、耳环、项链、手表等)、摄像头(或其他基于光的输入设备,例如红外传感器)、传声器、和/或其他用户输入设备。
处理器110可以例如通过使用内部总线或外部总线而耦接到其他硬件设备,上述总线例如为,外设部件互连标准(PCI)总线、小型计算机系统接口(SCSI)总线、和/或无线连接等。处理器110可以与用于设备(例如,用于显示器106)的硬件控制器通信。显示器106可以用于显示文本和图形。在一些实施方式中,显示器106包括输入设备,该输入设备作为该显示器的一部分(例如,当该输入设备是触摸屏或配备有眼动方向监测系统(eyedirection monitoring system)时)。在一些实施方式中,显示器与输入设备分开。显示器的示例为,液晶显示器(liquid crystal display,LCD)显示屏,发光二极管(LED)显示屏,和/或投影、全息或增强现实显示器(例如,平视显示设备或头戴式设备)等。其它的输入/输出(I/O)设备108也可以耦接到处理器,该I/O设备108例如为网络芯片或网卡、视频芯片或视频卡、音频芯片或音频卡、USB、火线或其它外部设备、摄像头、打印机、扬声器、CD-ROM驱动器、DVD驱动器、磁盘驱动器等。
计算系统100可以包括通信设备,该通信设备能够与多个其他本地计算设备102或一网络节点无线地通信或基于有线地通信。该通信设备可以例如使用TCP/IP协议通过网络与另一设备或服务器通信。计算系统100可以利用该通信设备来跨多个网络设备而分发操作。例如,该通信设备可以用作通信模块。该通信设备可以被配置为发送或接收用于确定XR环境中的导航命令的输入手势、或用于确定用于XR对象(例如,包括可滚动列表)的导航命令的输入手势。
处理器110可以访问存储器112,该存储器112可以被包含在计算系统100的多个计算设备102中的一个计算设备上,或者可以分布在计算系统100的多个计算设备102中的一个计算设备上、或其他外部设备上。存储器包括用于易失性或非易失性存储的一个或多个硬件设备,并且可以包括只读存储器和可写存储器这两者。例如,存储器可以包括以下中的一种或多种:随机存取存储器(random access memory,RAM)、各种高速缓冲存储器、CPU寄存器、只读存储器(read-only memory,ROM)和可写非易失性存储器,该可写非易失性存储器例如为闪存、硬盘驱动器、软盘、光盘(CD)、数字视频光盘(DVD)、磁存储设备、磁带驱动器等。存储器不是脱离底层硬件的传播信号;因此存储器是非暂态的。存储器112可以包括存储程序和软件的程序存储器114,上述程序和软件例如为操作系统118、XR工作系统120和其他应用程序122(例如,XR游戏)。存储器112还可以包括数据存储器116,该数据存储器116可以包括待提供给程序存储器114的信息、或待提供给计算系统100中的任何元件的信息。
一些实施方式可以与许多其他计算系统环境或配置一起运行。可适用于与该技术一起使用的计算系统、环境和/或配置的示例包括但不限于,XR头戴式视图器、个人计算机、服务器计算机、手持式或膝上型设备、蜂窝电话、可穿戴电子设备、游戏控制台、平板设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费类电子设备、网络个人计算机(personal computer,PC)、小型计算机、大型计算机、和/或包括以上多个系统或设备中的任何系统或设备的分布式计算环境等。
图2A和图2B是示出了根据本公开某些方面的虚拟现实头戴式视图器的示意图。图2A是虚拟现实头戴式显示器(HMD)200的示意图。虚拟现实HMD 200包括前部刚性体205和带210。前部刚性体205包括一个或多个电子显示元件(例如,电子显示器245)、惯性运动单元(inertial motion unit,IMU)215、一个或多个位置传感器220、定位器225、以及一个或多个计算单元230。位置传感器220、IMU 215和计算单元230可以位于虚拟现实HMD 200内部,并且可以对用户不可见。在各种实施方式中,IMU 215、位置传感器220和定位器225可以以三个自由度(three degrees of freedom,3DoF)、六个自由度(six degrees of freedom,6DoF)等来追踪虚拟现实HMD 200在真实世界中和虚拟环境中的移动和位置。例如,定位器225可以发射红外光束,这些红外光束在虚拟现实HMD200周围的真实对象上产生多个光点。作为另一示例,IMU 215例如可以包括一个或多个加速度计、陀螺仪、磁力计、其他非基于摄像头的位置、力或方位传感器、或它们的多种组合。与虚拟现实HMD 200集成在一起的一个或多个摄像头(未示出)可以检测该多个光点,例如以用于计算机视觉算法或模块。虚拟现实HMD 200中的计算单元230可以使用检测到的该多个光点,来推测虚拟现实HMD 200的位置和移动、以及识别虚拟现实HMD 200周围的真实对象的形状和位置。
电子显示器245可以与前部刚性体205集成在一起,并且可以如计算单元230所指示的向用户提供图像光。在各种实施方式中,电子显示器245可以是单个电子显示器或多个电子显示器(例如,每个用户眼睛一显示器)。电子显示器245的示例包括:液晶显示器(LCD)、有机发光二极管(organic light-emitting diode,OLED)显示器、有源矩阵有机发光二极管(active-matrix organic light-emitting diode,AMOLED)显示器、包括一个或多个量子点发光二极管(quantum dot organic light-emitting diode,QOLED)子像素的显示器、投影机单元(例如,微型LED、激光器等)、一些其他显示器、或它们的某种组合。
在一些实施方式中,虚拟现实HMD 200可以耦接到诸如个人计算机(PC)(未示出)等核心处理部件、和/或一个或多个外部传感器(未示出)。外部传感器可以对虚拟现实HMD200进行监测(例如,经由从虚拟现实HMD 200发射的光来监测),PC可以使用虚拟现实HMD200结合来自IMU 215和位置传感器220的输出,来确定HMD 200的位置和移动。
图2B是混合现实HMD系统250的示意图,该混合现实HMD系统250包括混合现实HMD252和核心处理部件254。混合现实HMD 252和核心处理部件254可以经由如链路256所指示的无线连接(例如,60GHz链路)进行通信。在其他实施方式中,混合现实HMD系统250仅包括头戴式视图器而没有外部计算设备,或者包括混合现实HMD252与核心处理部件254之间的其他有线或无线连接。混合现实HMD系统250还可以包括腕部可穿戴设备,该腕部可穿戴设备例如用于将腕部输入手势转换成用于XR环境中的滚动的导航命令。混合现实HMD 252包括穿透式显示器258和框架260。框架260可以容纳各种电子部件(未示出),这些电子部件例如为光投影机(例如,激光器(LASER)、LED等)、摄像头、眼动追踪传感器、微机电系统(MEMS)部件、联网部件等。这些电子部件可以被配置为实现用于将手部动作和位置转换成XR导航命令的基于计算视觉的手部追踪。
投影机可以例如经由多个光学元件耦接到穿透式显示器258,以向用户显示媒体。这些光学元件可以包括用于将来自投影机的光引导到用户的眼睛的一个或多个波导组件、一个或多个反射器(reflector)、一个或多个透镜、一个或多个反射镜、一个或多个准直器、一个或多个光栅等。可以将图像数据从核心处理部件254经由链路256而传输到混合现实HMD 252。混合现实HMD 252中的控制器可以将图像数据转换成来自投影机的多个光脉冲,这些光脉冲可以经由这些光学元件作为输出光而传输到用户的眼睛。该输出光可以与穿过穿透式显示器258的光混合,从而使输出光能够呈现看起来如同其存在于真实世界中一样的虚拟对象。
与虚拟现实HMD 200类似,混合现实HMD系统250也可以包括运动和位置追踪单元、摄像头、光源等,上述运动和位置追踪单元、摄像头、光源等允许混合现实HMD系统250例如以3DoF或6DoF追踪其自身,追踪用户的多个部位(例如,手、脚、头部、或其他身体部位),将虚拟对象绘制为在混合现实HMD 252移动时看起来如同静止一样,并且使虚拟对象对手势和其他真实世界对象作出反应。例如,混合现实HMD系统250可以追踪作为输入手势的用户腕部移动的运动和位置,以用于以映射到该输入手势的方式执行导航(例如,滚动XR对象)。作为一示例,混合现实HMD系统250可以包括用于追踪每个用户的相对手部位置的坐标系,以用于确定用户期望如何利用XR滚动来滚动浏览人工现实环境。以这种方式,混合现实HMD系统250可以使用户能够具有对受控导航的自然响应和直观感觉,并利用他们的手进行滚动。基于手的滚动可以基于单种控制方法或多种控制方法的混合,例如,轻拂(flick)和拖拽位置控制的组合。
图2C示出了控制器270a和270b,在一些实施方式中,用户可以单手或双手握住控制器270a-270b,以与由虚拟现实HMD 200和/或HMD 250呈现的人工现实环境交互。控制器270a-270b可以直接与HMD通信,也可以经由外部设备(例如,核心处理部件254)与HMD通信。控制器可以具有其自身的IMU单元、位置传感器,和/或可以发射另外的光点。虚拟现实HMD200或250、外部传感器、或控制器中的传感器可以追踪控制器的光点,以确定控制器的位置和/或方位(例如,以3DoF或6DoF追踪控制器)。虚拟现实HMD 200中的计算单元230或核心处理组件254可以结合IMU输出和位置输出、使用该追踪来监测用户的手部位置和运动。例如,计算单元230可以使用监测到的手部位置来实现对可滚动列表的位置控制、速率控制、推动、和/或它们的组合。作为一示例,计算单元230可以计算用于遍历可滚动列表中的多项项目的参数。
位置控制可以指,用户手部的角度正被用于设置可滚动列表的位置。计算单元230可以计算列表遍历的开始和释放、滚动浏览该列表的速度、以及列表移动的动量。例如,列表移动的动量可以指计算单元230对传递函数的计算,该传递函数用于利用用户控制的“轻拂”浏览该列表的模拟惯性来模拟遍及该可滚动列表的移动。计算单元230可以经由IMU输出(或经由控制器270a-270b的其他传感器输出)计算用户手部位置的变化,以用于定义输入手势。例如,计算单元230可以实现基于计算机视觉/传感器的手部追踪,该手部追踪用于确定用户已用其一只手或两只手做出了捏合动作以及向下移动。这种腕部动作可以被定义为输入手势,该输入手势被转换成用于选择可滚动XR对象并且向下滚动浏览该XR对象的列表的导航命令。如本文所论述的,计算单元230可以支持混合控制方法,该混合控制方法实现诸如拖拽和轻拂等两种或更多种不同的动作,以用于滚动。
计算单元230还可以被配置为实现自然或非自然滚动模式,该自然或非自然滚动模式可以被定义为模拟的触摸屏滚动或非模拟的触摸屏滚动。计算单元230还可以结合来自控制器270a和270b的感测到的动量来应用传递函数。例如,控制器270a和270b可以确定用户用其手做出的轻拂手势的对应动量,该对应动量可以模拟沿特定方向轻拂XR列表的动作。传递函数(例如,线性传递函数或二次传递函数)可以定义经轻拂的列表在停止之前在特定方向上移动多少的动量或惯性。计算单元230还可以计算用户手部的位置变化,以用于追踪其他类型的手部/腕部输入手势,例如用户利用基于环的输入手势来定义滚动。也就是说,当用户以圆圈的形式来移动其手或手指时,用户以圆圈的形式移动其手或手指可以被转换成用于滚动浏览XR列表的导航命令。计算单元230可以实现屈曲和伸展输入手势、旋前和旋后输入手势、桡侧(radial)和尺侧(ulnar)输入手势的任何组合。
控制器270a和270b还可以包括各种按钮(例如,按钮272A至272F)和/或控制杆(例如,控制杆274A和274B),用户可以对这些按钮和/或控制杆进行致动,以提供输入以及与对象交互。如以下所论述的,控制器270a和270b还可以具有尖端276A和276B,尖端276A和276B在处于记录控制器(scribe controller)模式时,可以用作人工现实环境中的书写工具的尖端。在各种实施方式中,虚拟现实HMD 200或混合现实HMD系统250还可以包括用于监视用户交互和意图的指示的附加子系统,例如手部追踪单元、眼动追踪单元、音频系统、各种网络部件等。例如,在一些实施方式中,代替控制器或除了控制器之外而包括在虚拟现实HMD200或混合现实HMD系统250中或来自外部摄像头的一个或多个摄像头可以监测用户手部的位置和姿势,以确定手势和其他的手部动作和身体动作。例如,这种基于摄像头的手部追踪可以被称为计算机视觉。虚拟现实HMD 200或混合现实HMD系统250的传感子系统可以用于定义沿一轴线(例如,三个不同的轴线)的动作(例如,用户手部/腕部动作),可以沿该轴线执行屈曲和伸展输入手势、旋前和旋后输入手势、桡侧和尺侧输入手势,以用于确定对应的导航命令。
图3是示出了环境300的概述的框图,所公开技术的一些实施方式可在该环境300中操作。环境300可以包括一个或多个客户端计算设备,例如人工现实设备302、移动设备304、平板电脑312、个人计算机314、膝上型计算机316、和/或台式计算机318等。人工现实设备302可以是虚拟现实HMD 200、混合现实HMD系统250、腕部可穿戴设备、或与对人工现实或虚拟现实环境进行呈现或与人工现实或虚拟现实环境进行交互兼容的某种其他XR设备。人工现实设备302和移动设备304可以经由网络310无线通信。在一些实施方式中,这些客户端计算设备中的一些客户端计算设备可以是虚拟现实HMD200或混合现实HMD系统250。这些客户端计算设备可以使用通过网络310到一个或多个远程计算机(例如,服务器计算设备)的逻辑连接而在联网环境中运行。
在一些实施方式中,环境300可以包括诸如边缘服务器等服务器,该边缘服务器接收多个客户端请求,并通过其他服务器协调实现这些请求。服务器可以包括服务器计算设备306a和306b,服务器计算设备306a和306b可以在逻辑上形成单个服务器。替代地,服务器计算设备306a和306b均可以是一分布式计算环境,该分布式计算环境包含位于同一物理位置处或地理上不同的物理位置处的多个计算设备。该多个客户端计算设备和服务器计算设备306a和306b均可以充当一个或多个其他服务器/客户端设备的服务器或客户端。服务器计算设备306a和306b可以连接到数据库308,或者可以包括其自身的存储器。每个服务器计算设备306a、306b可以对应于一组服务器,并且该组服务器中的每个服务器可以共享一数据库,或者可以具有其自己的数据库。数据库308可以在逻辑上形成单个单元,或者可以是包括多个计算设备的分布式计算环境的一部分,该多个计算设备位于其对应服务器内、位于同一物理位置处、或位于在地理上不同的物理位置处。
数据库308或服务器计算设备306a和306b的存储器可以存储滚动或导航信息,例如指示各种控制方法的数据。对于诸如腕式传感器等特定XR设备,用户可以执行诸如特定腕部手势等输入手势;可以根据控制方法和/或滚动参数将该输入手势转换成导航(例如,滚动)命令。控制方法可以用于将数值角度(例如,用户的手部相对于可滚动列表的角度)映射到腕部移动,该腕部移动由腕式传感器确定。特别地,位置控制方法可以指,手部的角度驱动可滚动列表的位置的控制方法。速率控制可以指,手部的角度驱动滚动浏览可滚动列表的速度的控制杆型控制方法。另一控制方法可以基于可滚动列表中的各个元素的不连续推动,例如,每推动一次移动可滚动列表中的一个实例或多个项目,一次移动三个项目;或基于由腕式传感器经由手部移动而检测到的不连续推动来移动某个其他离散量。
可以通过由特定XR设备感测到的对用户手部位置和/或移动的检测,来实现控制方法的各种混合。例如,该特定XR设备可以基于手部的相对角度和/或移动,确定应触发不连续推动控制方法,并且还在手部做出捏合和保持动作时,确定应触发速率控制方法。自然控制方法或混合控制方法中的任一种也可以与滚动参数相结合,该滚动参数例如为以下之间的布尔选择:自然滚动或(or)不自然滚动、和/或无状态捏合或(or)有状态捏合等。自然滚动可以指追踪自然手部/手指动作的触摸屏型滚动,而有状态捏合可以指通过利用一捏合的用户手部控制来保持XR对象(例如,可滚动列表)并且利用另一捏合来释放该可滚动列表。也就是说,有状态捏合可以使XR用户能够通过利用其手部做出的单次捏合动作,来体验对保持和释放XR元素的感知和控制。输入手势的有状态参数/特性或无状态参数/特性可以改变如下内容:如何实现输入手势、以及该输入手势如何用于解释应用到人工现实环境的对应导航命令。
网络310可以是局域网(local area network,LAN)、广域网(wide area network,WAN)、网状网络、混合网络、或其他有线或无线网络。网络310可以是互联网或某种其他公共或专用网络。客户端计算设备可以经由网络接口例如通过有线或无线通信连接到网络310。连接可以是包括网络310或单独的公共或专用网络的任何类型的局域网、广域网、有线网络、或无线网络。在一些实施方式中,服务器计算设备306a和306b可以用作例如经由网络310实现的社交网络的一部分。社交网络可以维护社交图谱并基于该社交图谱执行各种动作。社交图谱可以包括由多条边(表示交互、活动、或相关性)互连的一组节点(表示社交网络系统对象,也被称为社交对象)。社交网络系统对象可以是社交网络系统用户、非人实体、内容项目、组、社交网络系统页面、位置、应用、主题、概念表示、或其他社交网络系统对象,该其他社交网络对象例如为电影、乐队、书等。
内容项目可以是任何数字数据,例如文本、图像、音频、视频、链接、网页、细节(例如,由客户端设备提供的诸如情绪指示符、状态文本片段、位置指示符等标记)、或其它多媒体。在各种实施方式中,内容项目可以是社交网络项目或社交网络项目的部分,例如帖子、爱好、提及(mention)、新闻项、事件、分享(share)、评论、消息、其他通知等。在社交图谱的背景中,主题和概念包括表示任何人、地点、事物或想法的多个节点。社交网络系统可以使用户能够输入和显示与用户的兴趣有关的信息、年龄/出生日期、位置(例如,经度/纬度、国家、地区、城市等)、教育信息、生命阶段、关系状态、名称、通常使用的设备的型号、被标识为用户熟悉的语言、职业、联系信息、或用户资料中的其他人口统计或生物信息。在各种实施方式中,可以通过社交图谱中的多个节点之间的节点或边来表示任何这种信息。
社交网络系统可以使用户能够上传或创建图片、视频、文档、歌曲、或其他内容项目,并且可以使用户能够创建和安排事件。在各种实施方式中,可以通过社交图谱中的多个节点之间的节点或边来表示内容项目。社交网络系统可以使用户能够执行上传或创建内容项目、与内容项目或其他用户交互、表达兴趣或意见、或执行其他动作。社交网络系统可提供各种手段来与社交网络系统内的非用户对象交互。在各种实施方式中,可以通过社交图谱中的多个节点之间的节点或边来表示动作。例如,用户可以形成或加入组,或者变成社交网络系统内的页面或实体的爱好者。此外,用户可以创建、下载、查看、上传、链接到、标记、编辑或播放社交网络系统对象。用户可以在社交网络系统的背景之外与社交网络系统对象交互。例如,新闻网站上的文章可能有一个用户可点击的“喜欢”按钮。在这些实例中的每个实例中,可以通过社交图谱中将用户的节点连接到对象的节点的边,来表示该用户与该对象之间的交互。作为另一示例,用户可以使用位置检测功能(例如,移动设备上的全球定位系统(Global Positioning System,GPS)接收器)而到特定位置“签到”,并且在社交图谱中,边可以将该用户的节点与该位置的节点连接。
社交网络系统可以向用户提供各种通信信道。例如,社交网络系统可以使用户能够向一个或多个其他用户发送电子邮件、即时消息、或文本/SMS消息。社交网络系统可以使用户能够将消息发布到用户墙或用户资料、或另一用户墙或另一用户资料。社交网络系统可以使用户能够将消息发布到组或粉丝页面。社交网络系统可以使用户能够对由用户或另一用户创建或上传的图像、涂鸦墙(wall post)或其他内容项目进行评论。并且,社交网络系统可以允许用户(经由其化身或真实生活表现)与虚拟环境中(例如,在人工现实工作环境中)的对象或其他化身等交互。在一些实施例中,用户可以将一状态消息发布到用户资料,该状态消息指示当前事件、心理状态、想法、感受、行动、或任何其他当前时间相关表达。社交网络系统可以使多个用户不仅能够在社交网络系统内通信而且能够与社交网络系统外通信。例如,第一用户可以在社交网络系统内向第二用户发送消息,可以通过社交网络系统向第二用户发送电子邮件,可以向社交网络系统外的第二用户发送源自该社交网络系统的电子邮件,可以在社交网络系统内向第二用户发送即时消息,可以向社交网络系统外的第二用户发送源自该社交网络系统的即时消息,可以在多个用户之间提供语音或视频消息传递,或者可以提供虚拟环境(在该虚拟环境中,用户可经由其自己的化身或其他数字表示进行通信和交互)。此外,第一用户可以对第二用户的资料页面进行评论,或者可以对与第二用户相关联的对象进行评论,该对象例如为,由第二用户上传的内容项目。
社交网络系统使用户能够将其自己与社交网络系统中的其他用户关联,并且建立与这些用户的连接。当两个用户(例如,社交图谱节点)在社交网络系统中明确建立社交连接时,这两个用户在社交网络系统的背景内变为“朋友”(或者“连接”)。例如,“Jane Smith”所接受的、从“John Doe”到“Jane Smith”的朋友请求是社交连接。该社交连接可以是社交图谱中的边。与无关联的多个用户可获得的关于彼此的信息相比,成为朋友、或处于社交图谱上的朋友边的阈值数量内可以允许多个用户访问更多关于彼此的信息。例如,成为朋友可以允许用户查看另一用户的资料、查看另一用户的朋友、或查看另一用户的照片。类似地,成为社交网络系统内的朋友可以允许用户有更多的机会与另一用户例如通过电子邮件(社交网络系统内部和外部)、即时消息、文本消息、电话、或任何其他通信接口而通信。成为朋友可以允许用户访问,以查看、评论、下载、认可(endorse)另一用户所上传的内容项目,或以其他方式与另一用户所上传的内容项目交互。可以通过表示两个社交网络系统用户的节点之间的边,来表示在社交网络系统的背景内建立连接、访问用户信息、通信和交互。
除了在社交网络系统中明确建立连接之外,出于确定社交背景(该社交背景在确定交流主题时使用)的目的,具有共同特性的多个用户可以被认为是有联系的(例如,软连接或隐式连接)。在一些实施例中,属于公共网络的用户被认为是有联系的。例如,上同一所学校的多个用户、为同一家公司工作的多个用户、或者属于同一社交网络系统组的多个用户可以被认为是有联系的。在一些实施例中,具有共同生物特性的多个用户被认为是有联系的。例如,用户出生或居住的地理区域、用户的年龄、用户的性别、和用户的关系状态可以用于确定多个用户是否是有联系的。在一些实施例中,具有共同兴趣的用户被认为是有联系的。例如,用户的电影偏好、音乐偏好、政治观点、宗教观点、或任何其他兴趣可以用于确定多个用户是否是有联系的。在一些实施例中,已经在社交网络系统内进行了同一行为的多个用户被认为是有联系的。例如,认可或推荐同一对象的多个用户、对同一内容项目进行评论的多个用户、或对同一事件进行回应(RSVP)的多个用户可以被认为是有联系的。社交网络系统可以利用社交图谱来确定与特定用户有联系或相似的多个用户,以便确定或评估该多个用户之间的社交背景。社交网络系统可以利用这种社交背景和共同属性,来促进内容分发系统和内容缓存系统可预测地选择用于缓存在缓存设备(该缓存设备与特定社交网络账号相关联)中的内容项目。
在特定实施例中,计算系统的一个或多个对象(例如,内容或其他类型的对象)可以与一个或多个隐私设置相关联。该一个或多个对象可以存储在任何合适的计算系统或应用程序上,或以其他方式与任何合适的计算系统或应用程序相关联,该任何合适的计算系统或应用程序例如为,社交网络系统、客户端系统、第三方系统、社交网络应用程序、消息传递应用程序、照片共享应用程序或任何其他合适的计算系统或应用程序。尽管本文所论述的示例是在在线社交网络的背景中,但这些隐私设置可以应用到任何其他合适的计算系统。对象的隐私设置(或“访问设置”)可以以任何合适的方式存储,例如以与该对象相关联的方式、以授权服务器上的索引的方式、以另一合适的方式、或它们的任何合适的组合存储。对象的隐私设置可以指定,可以如何在在线社交网络内访问、存储或以其他方式使用(例如,查看、共享、修改、复制、执行、显现、或识别)该对象(或与该对象相关联的特定信息)。当对象的隐私设置允许特定用户或其他实体访问该对象时,该对象可以被描述为相对于该用户或其他实体是“可见的”。作为一示例而非通过限制,在线社交网络的用户可以指定用户资料页面的隐私设置,该隐私设置标识可以访问用户资料页面上的工作经历信息的一组用户,由此排除其他用户访问该信息。
在特定实施例中,对象的隐私设置可以指定,不允许访问与该对象相关联的某些信息的用户的“被阻挡列表”或其他实体的“被阻挡列表”。在特定实施例中,该被阻挡列表可以包括第三方实体。该被阻挡列表可以指定对象对其不可见的一个或多个用户或实体。作为一示例而非通过限制,用户可以指定不可访问与该用户相关联的相册的一组用户,从而将这些用户排除在访问该相册之外(同时还可以允许不在所指定的该组用户内的某些用户访问该相册)。在特定实施例中,隐私设置可以与特定社交图谱元素相关联。社交图谱元素(例如,节点或边)的隐私设置可以指定,可以如何使用在线社交网络访问该社交图谱元素、与该社交图谱元素相关联的信息、或与该社交图谱元素相关联的对象。作为一示例而非通过限制,与特定照片相对应的特定概念节点可以具有这种隐私设置:该隐私设置指定了该照片仅可被该照片中所标记的用户、以及该照片中所标记的用户的朋友访问。在特定实施例中,隐私设置可以允许用户选择让或不让社交网络系统存储/记录这些用户的内容、信息或动作,或者可以允许用户选择让或不让与其他系统(例如,第三方系统)共享这些用户的内容、信息或动作。尽管本公开描述了以特定方式使用特定隐私设置,但本公开考虑了以任何合适的方式使用任何合适的隐私设置。
在特定实施例中,隐私设置可以基于社交图谱的一个或多个节点或边。可以针对社交图谱的一条或多条边或边类型、或关于社交图谱的一个或多个节点或节点类型,来指定隐私设置。应用于连接两个节点的特定边的隐私设置可以控制,与这两个节点相对应的两个实体之间的关系是否对在线社交网络的其他用户可见。类似地,应用于特定节点的隐私设置可以控制,与该节点相对应的用户或概念是否对在线社交网络的其他用户可见。作为一示例而非通过限制,第一用户可以向社交网络系统共享一对象。该对象可以与一概念节点相关联,而该概念节点通过边连接到第一用户的用户节点。第一用户可以指定应用于连接到该对象的概念节点的特定边的隐私设置,或者可以指定应用于连接到该概念节点的所有边的隐私设置。作为另一示例而非通过限制,第一用户可以共享一组特定对象类型的对象(例如,一组图像)。第一用户可以将关于该特定对象类型的所有对象(其与第一用户相关联)的隐私设置指定为具有特定隐私设置(例如,指定,由第一用户发布的所有图像仅对第一用户的朋友和/或这些图像中所标记的用户可见)。
在特定实施例中,社交网络系统可以向第一用户呈现“隐私向导”(例如,在网页、模块、一个或多个对话框、或任何其他合适的界面内呈现“隐私向导”),以帮助第一用户指定一个或多个隐私设置。该隐私向导可以显示多个指令、合适的隐私相关信息、当前隐私设置、用于接受来自第一用户的一个或多个输入(其指定对隐私设置的改变或确认)的一个或多个输入字段、或它们的任何合适的组合。在特定实施例中,社交网络系统可以向第一用户提供“控制面板(dashboard)”功能,该“控制面板”功能可以向第一用户显示该第一用户的当前隐私设置。可以在任何合适的时间(例如,在来自第一用户的调用该控制面板功能的输入之后,在发生特定事件或触发动作之后),向第一用户显示该控制面板功能。该控制面板功能可以允许第一用户在任何时间以任何合适的方式(例如,将第一用户重定向到隐私向导)来修改第一用户的多个当前隐私设置中的一个或多个。
与对象相关联的隐私设置可以指定允许访问或拒绝访问的任何合适的粒度。作为一示例而非通过限制,可以针对特定用户(例如,仅我、我的室友、我的上司)、特定分离程度(degree-of-separation)内的用户(例如,朋友、朋友的朋友)、用户组(例如,游戏俱乐部、我的家庭)、用户网(例如,特定雇主的雇员、特定大学的学生或校友)、所有用户(“公共”)、无任何用户(“私有”)、第三方系统的用户、特定应用(例如,第三方应用、外部网站)、其他合适的实体、或它们任何合适的组合,来指定访问或拒绝访问。尽管本公开描述了允许访问或拒绝访问的特定粒度,但是本公开考虑了允许访问或拒绝访问的任何合适粒度。
图4示出了根据本公开某些方面的示例人工现实可穿戴设备。例如,人工现实可穿戴设备可以是腕部可穿戴设备,例如XR腕式传感器400。XR腕式传感器400可以被配置为感测用户的手部的位置和移动,以便将这种感测到的位置和移动转换成输入手势。例如,输入手势可以是用户腕部的微移动。作为一示例,腕部移动可以包括转动、捏合、保持向下、保持向上、滑动、轻拂、其他合适的腕部移动等。XR腕式传感器400可以概括地表示尺寸适于用户的身体部位(例如,腕部)的可穿戴设备。如图4所示,XR腕式传感器400可以包括框架402和传感器组件404,该传感器组件404耦接到框架402且被配置为通过观测局部环境来收集关于该局部环境的信息。传感器组件404可以包括摄像头、IMU眼动追踪传感器、肌电图(EMG)传感器、飞行时间传感器、和/或光/光学传感器等,以追踪腕部移动。
以这种方式,XR腕式传感器400可以确定/检测用户输入手势,解释用户腕部的位置和移动数据,并且基于一个或多个指定控制方法和/或一个或多个滚动参数等将腕部输入手势转换成导航命令。XR腕式传感器400还可以包括一个或多个音频设备,例如输出音频转换器408a和408b、以及输入音频转换器410。输出音频转换器408a和408b可以向用户提供音频反馈和/或内容,而输入音频转换器410可以采集用户环境中的音频。XR腕式传感器400还可以包括其他类型的屏幕或视觉反馈设备(例如,集成到框架402的一侧中的显示屏)。在一些实施例中,XR腕式传感器400可以改为采用另一形式,例如头带、帽子、发带、腰带、手表、踝带、戒指、颈带、项链、胸带、眼镜框架、和/或任何其他合适类型或形式的装置。XR腕式传感器400的其它形式可以是具有与该XR腕式传感器400不同的装饰性外观、但执行类似功能(用于感测用于人工现实环境中的XR导航和滚动的腕部输入手势)的不同腕带。
图5是示出了可以实现本主题技术的各方面的示例计算机系统500(例如,表示客户端和服务器这两者)的框图。根据本公开某些方面,系统500可以被配置用于导航浏览共享人工现实环境。在一些实施方式中,系统500可以包括一个或多个计算平台502。该一个或多个计算平台502可以与人工现实/XR平台的服务器部件相对应,该人工现实/XR平台的服务器部件可以与图3中的服务器计算设备306a和306b相似或相同,并且可以包括图1中的处理器110。该一个或多个计算平台502可以被配置为存储、接收、确定和/或分析用户偏好(例如,导航偏好)和/或用户信息,以改善共享人工现实环境中的滚动并提高共享人工现实环境的整体用户体验。例如,该一个或多个计算平台502可以被配置为执行一个或多个算法(例如,映射算法、传递函数算法、机器学习算法等),以转换例如经由基于计算机视觉的用户手部追踪(例如,虚拟现实HMD 200、混合现实HMD系统250)或经由来自XR腕式传感器400的腕部移动追踪而感测到的腕部移动(例如,屈曲和伸展、旋前和旋后、桡侧和尺侧等),从而实现共享人工现实环境中的导航命令。
作为一示例,腕部移动可以是用户微手势,该用户微手势是可检测的以用于实现用于有关XR元素滚动的导航命令,XR元素例如为XR虚拟区域、XR对象、和/或虚拟可滚动列表等。可以由腕部姿势模块508来检测这种腕部移动和手势。该一个或多个计算平台502可以维护例如电子存储器526中的用于表示导航(例如,滚动)技术的数据、或者可以将用于表示导航(例如,滚动)的数据存储在电子存储器526中,该导航技术用于使XR用户能够选择各种自然直观滚动技术。这种滚动技术可以包括:相对于参考角度处的固定中间点的用户手势,这些手势例如为用于模拟方向键功能或模拟就地抓取可滚动列表的捏合(例如,在固定中间点上方的、用于将可滚动列表向上推动一次的拇指到食指捏合手势或其他腕部捏合姿势,以及在该固定中间点下方的、用于将可滚动列表向下推动一次的拇指到食指捏合手势);在连续滚动模式下经由增加/减小角度的腕部姿势(相对于参考角度)来提高/降低滚动速度;通过倾斜户手部来模拟拖拽列表;以及以特定速度释放手势以轻拂列表等。可以通过将用户手部角度(相对于参考角度/固定中间点)映射到导航命令而不是使用光线投射法(例如,从用户的手部进行光线投射,以确定标线(reticle)在XR用户界面上的位置以形成一种XR触摸屏手指),来实现用于经由本文所描述的腕部姿势模拟滚动功能的滚动技术。
该一个或多个计算平台502可以被配置为,根据客户端/服务器架构、对等架构和/或其他架构与一个或多个远程平台504通信。该一个或多个远程平台504可以被配置为,经由一个或多个计算平台502和/或根据客户端/服务器架构、对等架构和/或其他架构,与其他远程平台通信。用户可以经由一个或多个远程平台504访问对共享人工现实环境和/或个人人工现实进行托管的系统500。以这种方式,该一个或多个远程平台504可以被配置为,使得例如经由虚拟现实HMD 200、混合现实HMD系统250、和/或图2C中的控制器270a和270b,输出该一个或多个远程平台504的一个或多个客户端设备上的共享人工现实环境的个性化版本。作为一示例,该一个或多个远程平台504可以例如经由多个外部资源524,访问用于在该一个或多个远程平台504的一个或多个对应用户的共享人工现实中使用的、人工现实内容和/或人工现实应用。该一个或多个计算平台502、多个外部资源524和一个或多个远程平台504可以经由网络310通信和/或相互可访问。
该一个或多个计算平台502可以由多个机器可读指令506来配置。该多个机器可读指令506可以被该一个或多个计算平台执行,以实现一个或多个指令模块。这些指令模块可以包括计算机程序模块。正被实现的多个指令模块可以包括以下中的一者或多者:腕部姿势模块508、计算机视觉模块510、控制方法模块512、捏合模块514、滚动模块516、传递函数模块518、XR模块520、和/或其它指令模块。
如本文所论述的,例如针对该一个或多个远程平台504的每个XR兼容设备,腕部姿势模块508可以例如基于由该一个或多个远程平台504的传感器部件(例如,传感器组件404)所进行的腕部移动检测,将输入手势转换成XR环境中的导航(例如,滚动命令)。该XR兼容设备可以是或包括虚拟现实HMD 200和混合现实HMD系统250、XR腕式传感器400、或某种其他类型的XR可适用设备。基于来自该一个或多个远程平台504的感测数据,腕部姿势模块508可以例如根据该一个或多个计算平台502实现(例如,经由XR模块520实现)的坐标系,来确定输入手势的角度、相对坐标、转动、和/或其他位置/移动参数。例如,该感测数据可以是IMU数据、眼动追踪数据、EMG数据、飞行时间数据、和/或光学数据等,以便表征在做出输入手势(例如,用户的手势)时以及期间、该输入手势的物理参数。腕部姿势模块508可以根据实际感测到的手部移动和位置来输出用户手部的计算机化呈现,并且可以根据来自控制方法模块512的一个或多个指定控制方法、以及来自滚动模块516的一个或多个滚动参数,将该用户手部的计算机化呈现映射到导航/滚动命令。作为一示例,腕部姿势可以包括屈曲和伸展、旋前和旋后、桡侧和尺侧等。例如,屈曲可以被可视化为腕部正以向下120°的角度屈曲。旋前可以被可视化为腕部的转动,例如当手握紧成拳头时腕部的侧外旋。尺侧偏移可以被可视化为腕部的挥手性运动,例如在手指保持在一起的情况下、腕部正被移动到向右45°的角度。
计算机视觉模块510可以实现与腕部可穿戴传感器执行的功能类似的功能,例如追踪输入手势。例如,计算机视觉模块510可以是头戴式传感器(例如,虚拟现实HMD200、混合现实HMD系统250)的一部分,以便例如经由眼动追踪部件对用户手部位置和移动进行光学追踪。计算机视觉模块510可以确定用户的各个部位(例如,他们的手、手臂、和/或腿等)的相对位置。以这种方式,计算机视觉模块510可以使XR模块520能够生成共享人工现实环境中的XR表示,例如用户表示或用户的化身。另外,计算机视觉模块510可以例如基于对用户在真实世界中的位置和移动的视觉追踪,生成感测数据,使得可以由计算机视觉模块510追踪和反映在共享人工现实环境中的位置变化和移动变化。计算机视觉模块510可以类似地追踪用户位置和移动(例如,用户腕部的位置和移动),以便实现导航命令,例如基于该腕部如何移动来滚动XR元素中的可滚动元素。也就是说,腕部移动可以是基于一个或多个控制方法以及一个或多个滚动参数而转换成导航命令的输入手势。
控制方法模块512可以指定正被用于导航命令的转换的一个或多个控制方法。这些控制方法可以包括位置控制方法、速率控制方法、不连续推动方法、混合控制方法等。位置控制方法可以指这种控制方法:其中手部的角度驱动可滚动列表的位置。速率控制可以指控制杆型控制方法,其中手部的角度驱动滚动浏览可滚动列表的速度。作为一示例,这些控制方法可以用于任务的滚动,例如快速滚动并选择熟悉位置处的项目、和/或悠闲地浏览连续内容等。用户的手部/腕部在根据指定的控制方法做出输入手势时的姿势可以基于手臂在前面的姿势、手臂在侧面的姿势、或某种其他合适的姿势。这些控制方法可以由控制方法模块512指定,以通过滚动模块516实现各种滚动技术。例如,这些滚动技术可以包括捏合位移推动、捏合速度推动、速率控制、位置控制、有状态控制杆类型A、有状态控制杆类型B、拖拽和轻拂、和/或环形滚动等。
捏合推动滚动技术可以指,使用用户拇指到食指捏合动作的位移距离或该捏合动作的速度来控制对可滚动XR元素的推动,例如向下或向上推动可滚动列表中的一个项目。有状态控制杆类型可以指,使用腕部的特定定义的相对角度来控制可滚动列表的滚动、和/或抓取/释放。拖拽和轻拂可以指:利用位置控制来拖拽XR元素;以及对XR元素进行“轻拂”,例如类似于转动的轮盘的运动。环形滚动可以指,腕部正用于基于以圆圈移动手部以上下滚动可滚动列表(例如,顺时针移动使得列表向上滚动,而逆时针移动使得列表向下滚动)的导航。控制方法模块512可以将多个控制方法指定为,用于用户在人工现实环境的XR区域中执行导航和滚动的多个方法的组合或混合。例如,混合控制方法可以是位置控制直到用户的腕部运动的速度/速率超过某个阈值,在该阈值处执行惯性轻拂以实现一不同的控制方法。也就是说,控制方法模块512可以被配置有用于切换多种控制方法(例如,用于执行轻拂而不是先前所使用的控制方法)的某个阈值。例如,所配置的阈值可以是速度阈值或位移阈值(例如,不同位移处的导航技术)。附加地或替代地,控制方法模块512可以配置有用于混合控制方法的多种不同类型的手势,例如短时间捏合和长时间捏合、轻捏和重捏等。
捏合模块514可以识别用户捏合动作,这些用户捏合动作用于根据所选择或所配置的一种或多种控制方法和/或一个或多个滚动参数,转换成或确定导航命令。可以由诸如XR腕式传感器400等腕部可穿戴设备来检测用户捏合动作。例如,XR腕式传感器400可以包括两个IMU,例如,一个IMU位于用户手背上且一个IMU位于腕部上。这些IMU可以被配置为,在用户捏合时例如经由一闭合信号来检测捏合。例如,IMU可以检测用户向下(例如,在向下的方向上)的用户捏合移动、以及用户向上(例如,在向上的方向上)的捏合移动。还可以检测其他捏合移动以便用户控制滚动。作为一示例,用户可以使用捏合作为输入手势,例如使用保持在特定方向上的捏合来拖拽XR元素。特别地,用户可以保持向下的捏合以连续地向下滚动XR可滚动对象(例如,可滚动列表),或者用户可以进行不连续的捏合动作以不连续地向下移动(例如,不连续推动)列表中的多个实例,例如一次向下捏合使得列表向下移动一个项目实例。
以这种方式,用户可以根据所配置的一种或多种控制方法,使用捏合作为用于导航命令的输入手势。例如,用户可以使用利用捏合动作(例如使用捏合的捏合动作)的混合控制方法,来执行拖拽和轻拂这两者。控制方法可以根据一阈值在拖拽和轻拂之间切换,因此捏合可以被解释为拖拽命令和轻拂命令这两者。用户还可以使用混合控制方法以利用速率控制和位置控制这两者来滚动。也就是说,用户手部的角度和移动都可以用于设置可滚动列表的位置和移动速率。捏合模块514还可以根据这种有状态性特性是否已被滚动模块516设置为滚动参数,来检测有状态或无状态捏合。对于有状态捏合,捏合模块514可以将对捏合开始和捏合释放的相应使用解释为执行不同的功能。例如,捏合模块514可以检测到用户所做出的捏合开始手势以激活滚动技术,并且可以检测到用户所做出的一不同的捏合释放手势以停止滚动可滚动列表,这可以涉及用户在人工现实环境中控制可滚动列表的XR模拟。对于无状态捏合,可以仅使用捏合开始手势。例如,捏合模块514可以检测到用户做出捏合开始手势,以对是否激活可滚动列表的滚动进行切换,或可以检测到捏合以推动可滚动列表。用户捏合的移动方向或转动方向可以根据所指定的腕部姿势,这些所指定的腕部姿势例如为,用于屈曲的向上和向下弯曲、用于旋前的关于绕圈运动的转动(例如,转动拳头)、用于尺骨偏差的沿圆挥手、绕圈的手部移动、或任何其他合适的腕部姿势。
滚动模块516可以识别XR滚动的其他可配置的滚动参数或特性。例如,这些滚动参数可以包括有状态/无状态捏合、自然/非自然滚动、传递函数的类型(例如,经由传递函数模块518)、和/或选择机制等。传递函数的类型可以用于滚动模块516基于特定输入手势(例如,用户轻拂可滚动列表)确定滚动的动量(例如,模拟移动惯性)。选择机制可以指,用户在多个特定滚动参数之间切换或选择特定滚动参数的方式。滚动模块516可以实现这种滚动技术:这些滚动技术有利地支持共享人工现实环境中的自然且直观的一维和二维XR滚动和选择。有利地,本文所描述的滚动技术可以很好地适用于:用户的手臂在不同位置处(例如,在正面或侧面处)时的不连续任务和连续任务、短滚动距离和长滚动距离、快速滚动任务和慢速滚动任务、最小化用户界面等。滚动模块516还可以对于捏合模块514的捏合检测中的错误进行调整,这些错误例如基于多个IMU(例如,一个IMU位于手背上且一个IMU位于腕部上)或XR腕式传感器400的其他传感器(例如,连接到XR腕式传感器400的带的多条线,这些线闭合以生成指示捏合动作的信号)的捏合检测的不确定性。一些滚动技术可能对捏合检测中的错误更敏感,例如校正以解决检测中的潜在错误(例如,用户闭合或完成特定捏合动作的不准确检测)。有状态捏合检测可以基于用户能够经由捏合动作抓取和释放而更具表达性。通常,滚动模块516可以将用户腕部动作的角度或速度映射到滚动移动。
传递函数模块518可以控制共享人工现实环境中和个性化人工现实环境中的输出。传递函数模块518可以解决XR腕式传感器400中的噪声伪影。在考虑噪声之后,传递函数模块518可以基于用户做出的腕部输入手势,模拟特定的滚动动量(例如,点击力矩)。例如,如果用户做出轻拂输入手势,传递函数模块518则基于与该轻拂输入手势相对应的“动量”,来确定例如滚动浏览可滚动列表的力矩。传递函数模块518可以基于传递函数确定动量的程度或动量参数。传递函数模块518可以选择最优传递函数,例如线性传递函数、二次传递函数、或实现滚动浏览可滚动列表的更“可控”动量的其他传递函数。作为一示例,该最优传递函数可以考虑用户滚动到长的可滚动列表的特定点的平衡、精度和速度。例如,由传递函数模块518实现的传递函数可以使用户能够在开始滚动浏览列表时做出相对大的轻拂手势,并且然后随着可滚动列表中的项目到达期望点而开始减速。
在到达期望点之前,传递函数模块518可以应用所选择的传递函数以产生减速且对于用户而言更可控的滚动的动量。所选择的传递函数可以基于传递函数模块518关于用户在预测列表中可能停止的位置的预测知识,该预测知识可以基于过去的用户历史(例如,先前的用户滚动)、可滚动列表的特性、滚动背景、和/或机器学习算法等。通常,传递函数模块518可以通过实现较慢的轻拂以引起较慢的动量以及较快的轻拂以引起较快的动量,来改进用于传递函数在滚动中的应用。有利地,传递函数模块518可以通过确定与所更好选择的传递函数相对应的更直观和自然的滚动体验,来改善滚动的用户体验。特别地,所选择的传递函数可以平衡:传递函数模块518如何将用户做出的特定速度的轻拂转化或转换成特定的动量水平。所选择的传递函数可以与可滚动列表的背景相对应,该可滚动列表的背景例如为,该列表中包含哪些项目、该列表是否作为XR游戏的一部分而正被滚动、该列表的多个项目在语义上有何不同等。由传递函数模块518应用的传递函数可以允许用户以与其在触摸屏设备上滚动的方式相类似的直观方式,在XR环境中导航或滚动。
例如,XR模块520可以用于经由一个或多个计算平台502为一个或多个远程平台504渲染共享人工现实环境。XR模块520可以生成导航的XR表示或滚动动作的XR表示,例如滚动条、和/或方向键等。这种XR表示可以被暂时渲染为XR视觉元素或者完全不被渲染。XR模块520还可以在导航或滚动命令正被执行时,使用户接收滚动反馈,例如视觉、触觉或用于指示的其他类型的信号。例如,XR模块520可以使XR腕式传感器400或其它XR兼容设备在用户做出捏合动作以开始保持XR元素或做出另一捏合动作以释放XR元素时振动。XR模块520还可以提供追踪或指示用户做出的输入手势的类型或其他特性的XR视觉元素。
作为一示例,XR视觉元素可以包括环状XR元素,该环状XR元素反映了当用户腕部关于圆周运动转动以滚动或导航时的腕部“环状运动”。作为一示例,XR视觉元素可以包括手部XR元素,该手部XR元素反映了当用户做出用于选择导航命令的捏合输入姿势时的开捏合运动、闭捏合运动或在开捏合和闭捏合之间的捏合运动。XR模块520可以渲染用于各种导航或滚动任务的XR对象,这些导航或滚动任务例如为不连续滚动任务和连续滚动任务、不同的滚动距离(例如,控制杆型推动、2D或3D导航输入等)、导航浏览视频等。作为一示例,XR模块520和滚动模块516可以基于各种输入手势,在XR应用程序(例如,VR游戏)中实现导航和滚动。例如,用户可以使用不同角度和移动的各种腕部输入手势(例如,轻拂动作、拖拽动作等)、以及捏合动作,以便选择和执行游戏功能。例如,对于魔法主题XR游戏,用户可以捏合以选择魔药(potion),或可以执行特定腕部输入手势以施魔法(spell)或远程瞬移(teleportation)。用户还可以使用利用速率控制和/或位置控制(或本文所描述的任何其他技术)的特定输入手势,来控制用户在游戏或其他XR应用程序(例如,基于工作区的应用程序)的不同XR区域之间如何移动、何时移动以及移动多快。
在一些实施方式中,该一个或多个计算平台502、该一个或多个远程平台504和/或该多个外部资源524可以经由一个或多个电子通信链路可操作地连接。例如,这些电子通信链路可以至少部分地经由诸如互联网和/或其他网络等网络310来建立。将理解的是,这不旨在进行限制,并且本公开的范围包括该一个或多个计算平台502、该一个或多个远程平台504和/或该多个外部资源524可以经由一些其他通信媒介可操作地连接的多种实施方式。
给定的远程平台504可以包括多个客户端计算设备,例如人工现实设备302、移动设备304、平板电脑312、个人计算机314、膝上型计算机316和台式计算机318,该多个客户端计算设备均可以包括被配置为执行多个计算机程序模块的一个或多个处理器。这些计算机程序模块可以被配置为使与给定的远程平台504相关联的专家或用户能够与系统500和/或多个外部资源524对接,和/或提供本文中归属于一个或多个远程平台504的其他功能。作为非限制性的示例,给定的远程平台504和/或给定的计算平台502可以包括以下中的一者或多者:服务器、台式计算机、膝上型计算机、手持式计算机、平板计算平台、上网本、智能电话、游戏控制台、和/或其他计算平台。该多个外部资源524可以包括:系统500外部的信息源、与系统500一起参与的外部实体、和/或其它资源。例如,该多个外部资源524可以包括外部设计的XR元素和/或由第三方设计的XR应用程序。在一些实施方式中,本文中归属于该多个外部资源524的功能中的一些功能或全部功能可以由包括在系统500中的多个资源提供。
该一个或多个计算平台502可以包括电子存储器526、诸如处理器110等处理器、和/或其他部件。该一个或多个计算平台502可以包括通信线路、或用于实现与网络和/或其他计算平台交换信息的端口。图5中对一个或多个计算平台502的图示不旨在是限制的。该一个或多个计算平台502可以包括多个硬件部件、软件部件和/或固件部件,该多个硬件部件、软件部件和/或固件部件协同运行以提供本文中归属于该一个或多个计算平台502的功能。例如,该一个或多个计算平台502可以由作为该一个或多个计算平台502的协同运行的大量计算平台来实现。
电子存储器526可以包括对信息进行电子存储的非暂态存储介质。电子存储器526中的电子存储介质可以包括系统存储器和/或可移动存储器中的一者或两者,该系统存储器与一个或多个计算平台502一体地(即,基本不可移除)提供,该可移动存储器可以例如经由端口(例如,USB端口、火线端口等)或驱动器(例如,磁盘驱动器等)可移除地连接到一个或多个计算平台502。电子存储器526可以包括以下一种或多种:光学可读存储介质(例如,光盘等)、磁性可读存储介质(例如,磁带、磁性硬盘驱动器、软盘驱动器等)、基于电荷的存储介质(例如,电子可擦除可编程只读存储器(EEPROM)、RAM等)、固态存储介质(例如,闪存驱动器等)、和/或其他电子可读存储介质。电子存储器526可以包括一个或多个虚拟存储资源(例如,云存储、虚拟专用网络、和/或其他虚拟存储资源)。电子存储器526可以存储软件算法、由一个或多个处理器110确定的信息、从一个或多个计算平台502接收的信息、从一个或多个远程平台504接收的信息、和/或使一个或多个计算平台502能够如本文描述的那样工作的其它信息。
该一个或多个处理器110可以被配置为在该一个或多个计算平台502中提供信息处理能力。就这一点而言,该一个或多个处理器110可以包括以下中的一者或多者:数字处理器、模拟处理器、被设计为处理信息的数字电路、被设计为处理信息的模拟电路、状态机、和/或用于电子地处理信息的其他机制。尽管图1将该一个或多个处理器110显示为单个实体,但这仅仅是出于说明的目的。在一些实施方式中,该一个或多个处理器110可以包括多个处理单元。这些处理单元可以在物理上位于同一设备内,或者该一个或多个处理器110可以表示协同运行的多个设备的处理功能。一个或多个处理器110可以被配置为执行模块508、510、512、514、516、518、520、和/或其它模块。一个或多个处理器110可以被配置为通过软件、硬件、固件,通过软件、硬件和/或固件的某种组合,和/或通过用于在该一个或多个处理器110上配置处理能力的其它机制,来执行模块508、510、512、514、516、518、520、和/或其它模块。如本文所使用的,术语“模块”可以指,执行归属于该模块的功能的任何部件或部件集合。这些部件可以包括在执行处理器可读指令期间的一个或多个物理处理器、这些处理器可读指令、电路、硬件、存储介质、或任何其他部件。
应理解的是,尽管图5中将模块508、510、512、514、516、518和/或520示出为在单个处理单元内实现,但在该一个或多个处理器110包括多个处理单元的实施方式中,模块508、510、512、514、516、518和/或520中的一者或多者可以从其他模块远程地实现。对由本文所描述的不同模块508、510、512、514、516、518和/或520提供的功能性的描述出于说明性目的且不旨在进行限制,这是因为模块508、510、512、514、516、518和/或520中的任何一者可以提供比所描述的功能更多或更少的功能。例如,可以去除模块508、510、512、514、516、518和/或520中的一者或多者,并且可以由模块508、510、512、514、516、518和/或520中的其他模块提供所去除模块的功能中的一些功能或全部功能。作为另一示例,该一个或多个处理器110可以被配置为执行一个或多个附加模块,该一个或多个附加模块可以执行以下归属于模块508、510、512、514、516、518和/或520中的一者的功能中的一些功能或全部功能。
本文所描述的技术可以被实现为由一个或多个物理计算设备所执行的一种或多种方法;本文所描述的技术可以被实现为存储多个指令的一个或多个非暂态计算机可读存储介质,这些指令在被一个或多个计算设备执行时使得执行上述一种或多种方法;或者,本文所描述的技术可以被实现为一个或多个物理计算设备,该一个或多个物理计算设备专门配置有使得执行上述一个或多个方法的硬件和软件的组合。
图6至图8示出了根据本公开某些方面的、人工现实环境中的用户导航的示例视图600、700和800。示例视图600可以示出使用用于速率控制(作为控制方法)的输入手势,该速率控制基于该输入手势中用户腕部的相对角度。示例视图700可以示出使用用于包括推动控制和速率控制的混合控制方法的输入手势,该推动控制和速率控制基于该输入手势中用户腕部的绝对角度。示例视图700可以示出使用用于利用轻拂的位置控制(拖拽)(作为混合控制方法)的输入手势,该位置控制(拖拽)基于该输入手势中用户腕部的位置。示例视图600、700和800以各种配置显示了XR可滚动列表602、702和802;也就是说,可滚动列表602、702和802可以以不同的滚动范围级别滚动。因此,可滚动列表602、702和802各自显示作为可滚动列表602、702和802的一部分的不同实例或XR项目。为了导航可滚动列表602、702和802,用户可以使用输入手势来向上滚动浏览或向下滚动浏览可滚动列表602、702和802。
尽管图6至图8示出向上滚动和向下滚动,但应注意的是,也可以是其他方向和类型的滚动或导航,例如向左滚动或向右滚动、绕圈滚动等。可以经由手部XR对象606、706和806反映或显示用户所选择和/或执行的输入手势。附加地或替代地,可以以非XR格式呈现手部。也就是说,可以在没有用户界面干预的情况下检测手势。由用户执行的手势可以包括任何种类的系统可检测的特定手势或微手势。可以经由手部XR对象606、706、806来选择特定实例或XR项目,并且可以通过对所选择的、可滚动列表602、702和802中的一个或多个实例(例如,图7中的词“建立”)进行突出显示,来指示该特定实例或XR项目。在一些实施例中,可以选择突出显示的词作为最喜欢的词(favorite word),该最喜欢的词可以被反映在XR文本窗口604、704、804中。替代地,突出显示可以仅用于指示当用户执行了一不同的选择手势时将被选择的内容。例如,在图6中,可滚动列表602中突出显示了词“约定(appoint)”,但在XR文本窗口604中当前最喜欢的词显示为“参加”。如果用户做出与选择命令相对应的输入手势,则最喜欢的词将改变为“约定”。用户可以使用与导航/滚动命令相对应的输入手势来滚动可滚动列表602、702和802。用户做出的输入手势可以基于相关联的所配置的一种或多种控制方法和一个或多个滚动参数而被转换成导航/滚动命令。这种转换可以通过附录A所解释的屈曲/伸展类型输入手势来图示。
例如,图6的示例视图600可以描绘正被使用的相对速率控制(例如,混合控制方法)。也就是说,由用户做出的作为输入手势的捏合动作的角度可以与滚动速度相对应、和/或可以用于选择滚动速度,该滚动速度基于该角度(例如,瞬时角度)与中间点/阈值角度之间的相对差值。可以通过较早做出的捏合手势的位置来确定该中间点/阈值。作为一示例,可以基于手部的当前位置与用户开始做出捏合动作时的手部位置之间的差异,来计算滚动速度。图7的示例视图700可以示出利用速率控制的位移推动。也就是说,每个不连续捏合动作或由用户腕部做出的保持闭合捏合可以用作输入手势,以分别经由不连续推动或连续滚动来滚动浏览列表。每次单独的捏合可以使得不连续推动滚动浏览可滚动列表700中的一个项目、两个项目或某种其他设定的不连续数量的项目/实例,而保持的捏合动作可以使得可滚动列表700被连续滚动浏览,直到用户释放该保持的捏合动作。例如,图8的示例视图800可以示出正被使用的拖拽控制和轻拂控制。也就是说,例如,拖拽捏合动作可以用于滚动浏览列表,而轻拂捏合动作可以用于利用经由可应用的传递函数而控制的力矩来轻拂可滚动列表(例如,好像该列表是正在转动的轮盘一样)以浏览其组成项目。与图6和图7中的导航/滚动命令相比,拖拽控制和轻拂控制可以是直观的,但需要更多的移动以用于滚动。
另外,捏合动作可以是有状态的或无状态的,例如取决于是否可以检测到捏合开始和释放。有状态捏合可以指,开始捏合以保持可滚动列表602、702和802,并且释放捏合以释放可滚动列表602、702和802;而无状态捏合意味着使用多次捏合来保持或释放可滚动列表602、702和802。而且,捏合动作可以用作不连续的捏合以充当诸如图7等中的方向键。此外,要么用户可以保持捏合以连续滚动,要么用户可以进一步捏合且移位超过或低于阈值距离以激活或去激活连续滚动。替代地,对于捏合动作,可以使用多个阈值而不使用捏合来实现类似的方向键技术。作为一示例,用户可以做出向上或向下推动动作以使得滚动移动,例如每当手部越过位移阈值时推动列表。如果用户将其手部保持在该移位位置达限定的时间量,则这可以引起诸如利用速率控制的连续滚动。
其他类型的用户导航也是可以的,并且本文中对其进行了描述。在附录A中,进一步说明和描述了用于用户导航的手部/腕部移动的特定步骤。本文所描述的用户导航和滚动的类型可以是交互方法(例如,特定腕部姿势和控制方法组合/混合)和滚动参数考虑因素的组合。如本文所论述的,该交互方法可以是一种手部移动,例如屈曲/伸展对旋前/旋后对桡侧偏移/尺侧偏移。这些滚动参数可以包括诸如对齐(snap)开/关、自然/非自然滚动、传递函数类型、和无状态/有状态捏合等设置。自然滚动可以指可滚动内容是否在与用户手部相同的方向上移动,而非自然滚动是指可滚动内容在与用户手部相反的方向上移动。对齐开可以指列表中的中间项目正被自动突出显示,并且可滚动列表602、702和802还将所突出显示的项目对齐到可滚动列表602、702和802停止移动时的位置(对齐关关闭该突出显示和对齐功能)。有状态捏合可以指在当前正在发生捏合时保持可滚动列表602、702和802,并且在当前未发生捏合时释放。相比之下,无状态捏合可以指每当用户用其手部做出捏合动作时、可滚动列表602、702和802从被正被控制/保持切换到被释放。传递函数(例如,线性传递函数或二次传递函数)可以指,例如通过将手部角度映射到速度而对滚动动量的模拟。可以调整许多这种设置以改变适用于用户的导航类型。一些控制方法引入附加的设置和参数。例如,速率控制可以使用相对的或固定的中心、以及线性传递函数或二次传递函数。
这些设置可以任何组合使用。例如,用户可以根据利用二次传递函数的速率控制而做出屈曲/伸展类型的输入手势。该滚动方法可以在自然滚动和对齐设置打开的情况下,使相对中心设置关闭。这可以实现基于角度的速率控制。利用这种技术,浏览可滚动列表602、702和802的滚动速度随着用户手部屈曲/伸展而增加。这种速率控制通过基于手部屈曲/伸展程度而使滚动速度更大,来模仿油门踏板的功能。如果使用非自然滚动并且利用该滚动方法打开相对中心,则速率控制变成相对速率控制,使得浏览可滚动列表602、702和802的滚动速度大于手部相对于用户开始捏合动作(或位移动作)的位置而屈曲/伸展的速度。
二次传递函数可以指定用于将手部角度映射到速度的二次内插,而线性传递函数指定用于同一动作的线性内插。另一滚动方法涉及根据利用线性传递函数的速率控制而使用旋前/旋后类型的输入手势。该滚动方法可以具有在非自然滚动打开的情况下,关闭的相对中心和对齐设置。这可以实现基于相对角度的速率控制,其中滚动速率基于手部屈曲/伸展相对于基线角度的相对角度。可以基于用户旋前/旋后的方向来控制滚动的方向。就这一点而言,该滚动方法可以类似于经由气体旋钮(gas knob)的滚动控制。另一滚动方法可涉及用户根据利用线性传递函数的速率控制而做出桡侧/尺侧类型的输入手势。
该滚动方法可以具有在自然滚动打开的情况下,关闭的相对中心和对齐设置。这可产生与气体旋钮类似的滚动技术,但浏览可滚动列表602、702和802的滚动速度基于手部偏离多少,例如类似于屈曲越大滚动速度越快的气塞杆。另一滚动方法可以涉及用户根据利用有状态捏合、自然滚动且不利用对齐的位置控制而做出屈曲/伸展类型的输入手势。也就是说,用户可以在轻拂未被使能的情况下保持和释放可滚动列表602、702和802。例如,用户捏合以“抓取”列表并且释放捏合以“停止(drop)列表”,同时作为基于角度的位置控制的一部分,可滚动列表602、702和802被移位达与手部角度从其开始位置的移位量成比例的量。另一滚动方法可以涉及用户根据利用无状态捏合、自然滚动以及对齐的位置控制来做出旋前/旋后类型的输入手势。例如,用户可以捏合以“抓取”列表并再次捏合以“停止列表”,同时作为基于角度的位置控制的一部分,可滚动列表602、702和802被移位达与手部角度从其开始位置的移位量成比例的量。这种位置控制可能需要抓取和释放列表。例如,如果可滚动列表602、702和802相对较长,则用户可能不能在其屈曲/伸展范围内完全滚动浏览列表。在这种情况下,作为重复滚动手势的一部分,用户可能需要多次抓取和释放列表。
另一滚动方法可以涉及用户根据利用有状态捏合、非自然滚动和对齐的位置控制做出桡侧/尺侧类型的输入手势。另一滚动方法可以涉及用户根据利用自然滚动和对齐的惯性控制而做出屈曲/伸展类型的输入手势。作为一示例,该基于角度的惯性控制可以模拟正停留在表面上的可滚动列表602、702和802。改变手部角度使表面“倾斜”,使得可滚动列表602、702和802的内容在对应方向上滑动。如果用户手部返回到中间,则该列表将继续移动一段时间,直到模拟的“摩擦”将其减速到停止为止;模拟的摩擦例如可以基于传递函数来预先确定。为了更快速地停止可滚动列表602、702和802的移动,用户可以在相反的方向上短暂地使其手部成角度。另一滚动方法可以涉及用户根据利用非自然滚动以及对齐打开的惯性控制而做出旋前/旋后类型的输入手势。滚动可以再次模拟倾斜表面,使得改变手部角度使表面“倾斜”,从而使得可滚动列表602、702和802的内容在对应方向上滑动。另一滚动方法可以涉及用户根据利用自然滚动以及对齐打开的位置控制而做出环形类型的输入手势。
也就是说,用户可以以回转形状移动其处于回转形状的多根手指,例如在空中画圆。在基于环形的位置控制的情况下,列表被移位与手部从其开始位置顺时针或逆时针移位的量成比例的量。由于用户的手可以转动任意多次,因此无需抓取或释放可滚动列表602、702、802。基于自然或非自然滚动,滚动浏览可滚动列表602、702和802的方向可以对应于基于环形的手部转动移动,或直观地与基于环形的手部转动移动相反。附加地或替代地,可滚动列表602、702和802的位移可以是手部转动位移的函数。而且,可以开启非自然滚动并且可以关闭对齐。另一滚动方法可以涉及用户根据利用无状态捏合的速率推动控制方法而做出屈曲/伸展类型的输入手势。速率推动控制方法可以表示,每次推动,可滚动列表602、702、802被推动一离散数量的实例/项目。例如,捏合速率推动可以使可滚动列表602、702和802向上或向下推动一次,尽管推动可以递增一不同的数字,例如每次推动两个项目、和/或每次推动五个项目等。
用户可以在捏合位置中屈曲或伸展其手部,以指示推动的方向。在不捏合的情况下,用户还可以比某个阈值更快地屈曲或伸展他们的手。该动作可以类似于沿可滚动列表602、702和802挥手。用户还可以使用用于无捏合速率推动的旋前/旋后,该无捏合速率推动例如基于每当用户在对应方向上以快于某个量转动其手时推动可滚动列表602、702和802。另一滚动技术可以涉及用户根据利用自然滚动和对齐的位移推动控制方法而做出屈曲/伸展类型的无捏合输入手势。每当用户的手的屈曲/伸展角度超过某个正阈值或负阈值时,该无捏合位移推动可以使可滚动列表602、702和802向上或向下推动指定的推动增量。此外,用户可以针对利用非自然滚动和对齐的捏合位移推动而使用旋前/旋后输入手势。也就是说,每个捏合动作可以使得可滚动列表602、702和802基于腕部转动方式而被向上或向下推动。滚动技术和方法可以是涉及本文所论述的多种控制方法的混合(例如,屈曲/伸展、旋前/旋后、偏移等)的混合。
一种混合滚动方法可以涉及用户根据混合控制而使用屈曲/伸展类型的输入手势,该混合控制包括用于更精确的短距离滚动的速率控制和无捏合位移推动,该混合控制可以引起一种控制杆型滚动。作为一示例,该控制杆滚动可以涉及接近0的角度的“中间区域”、位于“中间区域”的两侧的两个“推动区域”,以及“推动区域”之外的所有角度值作为“滚动区域”。如果用户将其手部屈曲/伸展到推动区域中,则这将使得可滚动列表602、702和802被向上推动或向下推动指定的增量,并且只要用户的手被保持在该推动区域中,则可滚动列表602、702和802以每秒或其他指定延迟继续推动该增量。如果手甚至进一步屈曲/伸展,则可滚动列表602、702和802可以开始利用速率控制连续滚动。类似的控制杆滚动技术使用旋前/旋后作为输入技术。例如,该控制杆滚动可以涉及用户将其手部转动到推动区域中和/或甚至进一步转动超过一阈值转动,以引起利用速率控制的连续滚动。
可以利用无状态捏合来实现其他控制杆滚动技术。例如,用户可以利用本文所描述的中间区域和滚动区域利用自然滚动和对齐来使用屈曲/伸展作为输入手势。由于无状态捏合配置,用户将捏合以激活滚动并且再次捏合以去激活滚动区域中的滚动。例如,用户可以捏合以切换任何区域中的滚动。在滚动时,如果用户将其手部屈曲/伸展到滚动区域中,则可滚动列表602、702和802将根据指定的推动增量来推动。如果用户将其手部保持在滚动区域中,则可滚动列表602、702和802可以开始利用速率控制滚动。这种屈曲/伸展无状态控制杆型滚动技术也可以利用非自然滚动来实现。作为一示例,对于另一控制杆滚动技术,每次新的用户捏合动作可以定义新的中心点。也就是说,用户在捏合之后短暂地将其手部向上或向下推动然后将手部返回到中心,将以指定增量推动列表一次。另外,捏合、移动手部并将手部保持在那里可以使得可滚动列表602、702和802在该方向上连续滚动,直到手部返回到捏合的点(例如,该新的中心点)。
作为一示例,另一控制杆滚动技术可以使用户能够在推动区域中捏合,以在适当的方向上将列表移动一个单位。用户可以在滚动域区中捏合以开始利用速率控制滚动可滚动列表602、702和802,直到用户将其手部返回到中心点。作为一示例,另一控制杆滚动技术可以使用户能够通过利用其向上或向下成角度的手部进行捏合而使用位移推动,以向上或向下推动可滚动列表602、702和802。可以使用多次捏合来多次推动可滚动列表602、702和802。在捏合之后,用户可以甚至进一步使手成角度,以开始利用速率控制连续滚动可滚动列表602、702和802,直到手返回到开始捏合的位置。
替代的混合滚动技术还利用与上述类似的中间区域和滚动区域且使用有状态捏合和非自然滚动来使用屈曲/伸展作为输入手势。因此,用户可以在滚动区域中捏合以使得可滚动列表602、702和802推动达指定的增量。用户可以保持捏合动作以开始利用速率控制滚动可滚动列表602、702和802。另一混合滚动技术应用“拖拽和轻拂”混合控制方法,例如以用于高效的长距离滚动。拖拽和轻拂控制方法可以涉及用户根据利用有状态捏合、自然滚动、对齐和附加轻拂功能的位置控制而做出屈曲/伸展类型的输入手势。作为一示例,利用有状态捏合拖拽/轻拂,用户可以捏合并保持以“抓取”可滚动列表602、702和802,并通过改变用于位置控制的用户的手部的角度来拖拽可滚动列表602、702和802。
如果当用户释放时,手部移动得比特定速率快,则可滚动列表602、702、802将不会停止,而是保持以其先前速度移动,以例如类似于或根据指定传递函数的模拟的“摩擦”而逐渐减速。尽管可滚动列表602、702和802根据指定的惯性(例如,传递函数)而减速,但可滚动列表602、702和802可以例如利用另一捏合而由用户再次抓取,该另一捏合可以模仿触摸屏型滚动。在可滚动列表602、702和802以模拟摩擦移动的同时再次抓取可滚动列表602、702和802可以基于保持捏合或另一捏合,而保持捏合还是另一捏合取决于是否应用有状态或无状态捏合设置。另外,可以基于旋前/旋后类型的输入手势来执行拖拽和轻拂导航命令。
图9示出了根据本公开某些方面的用于在共享人工现实环境中导航浏览共享人工现实环境的示例流程图(例如,过程900)。出于解释的目的,本文参考以上多个附图中的一个或多个来描述示例过程900。还出于解释的目的,示例过程900的步骤在本文中被描述为串行或线性地发生。然而,示例过程900的多个实例可以并行发生。出于解释本主题技术的目的,将参考以上多个附图中的一个或多个来论述过程900。
在步骤902处,可以接收对共享人工现实环境中的虚拟对象的指示。根据一方面,接收输入手势包括:由腕式传感器感测手部动作。例如,虚拟对象包括以下中的至少一者:可滚动列表、可滚动对象、虚拟区域、或突出显示的虚拟对象。在步骤904处,可以接收指示与虚拟对象相关联的导航命令的输入手势。例如,第一坐标与用户表示在共享人工现实环境中的位置相对应。根据一方面,感测手部动作包括:感测由第一手部做出的第一动作以及由第二手部做出的第二动作。第二动作包括由第一动作触发的对输入手势的修改。根据一方面,感测手部动作包括:经由用于一导航命令的虚拟接口感测第一手部做出的第一动作并且经由用于另一导航命令的另一虚拟接口感测第二手部做出的第二动作。
在步骤906处,可以确定输入手势的至少一种类型。例如,输入手势的类型包括以下中的至少一者:屈曲和伸展、旋前和旋后、或桡侧和尺侧。根据一方面,确定输入手势的至少一种类型包括,将由腕式传感器所感测的动作与来自头戴式传感器的光学信号进行比较。在步骤908处,可以确定控制方法。根据一方面,确定控制方法包括:确定以下中的至少一者:位置控制、速率控制、或不连续推动。在步骤910处,可以确定滚动参数。根据一方面,确定滚动参数包括:确定以下中的至少一者:捏合参数、自然滚动参数、传递函数、选择参数、维度参数、不连续参数、连续参数、滚动速度参数、或滚动距离参数。在步骤912处,可以基于输入手势的类型、控制方法和滚动参数,来识别导航命令。根据一方面,应用导航命令包括:基于由导航命令定义的滚动技术,来移动虚拟对象的至少一部分。输入手势对应于空中腕部移动。
在步骤914处,可以将导航命令应用于虚拟对象。根据一方面,过程900还可以包括:基于与输入手势相对应的腕部移动的速度或角度,来确定导航命令的滚动速度。根据一方面,过程900还可以包括:基于滚动参数,根据输入手势生成滚动浏览共享人工现实环境中的虚拟对象的可滚动列表的动量。根据一方面,过程900还可以包括:基于导航命令和双捏合输入手势,来选择可滚动列表中的项目。
图10是示出了可以实现本主题技术的各方面的示例性计算机系统1000的框图。在某些方面,可以使用硬件、或者软件和硬件的组合,要么在专用服务器中、要么集成到另一实体中、要么跨多个实体分布来实现计算机系统1000。
计算机系统1000(例如,服务器和/或客户端)包括总线1008或用于传送信息的其他通信机制、以及与总线1008耦接以用于处理信息的处理器1002。作为示例,计算机系统1000可以用一个或多个处理器1002而得以实现。该一个或多个处理器1002中的每个处理器可以是通用微处理器、微控制器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)、可编程逻辑器件(Programmable Logic Device,PLD)、控制器、状态机、门控逻辑、分立的硬件部件、或者可执行对信息的计算或其它操作的任何其它合适的实体。
除了硬件之外,计算机系统1000还可以包括创建所讨论的计算机程序的执行环境的代码,例如,存储在所包括的存储器1004中的构成以下内容的代码:处理器固件、协议栈、数据库管理系统、操作系统、或它们中的一个或多个的组合,该存储器1004例如为随机存取存储器(RAM)、闪存、只读存储器(ROM)、可编程只读存储器(Programmable Read-OnlyMemory,PROM)、可擦除PROM(Erasable PROM,EPROM)、寄存器、硬盘、可移动盘、紧凑型光盘只读存储器(CD-ROM)、DVD或任何其他合适的存储设备,该存储器1004耦接到总线1008以用于存储待被处理器1002执行的信息和指令。处理器1002和存储器1004可以由专用逻辑电路补充或者被并入专用逻辑电路中。
指令可以存储在存储器1004中,并且可以在一个或多个计算机程序产品中被实现,该一个或多个计算机程序产品即为多个计算机程序指令的一个或多个模块,这些计算机程序指令被编码在计算机可读介质上、以用于由计算机系统1000执行或控制该计算机系统1000的操作,并且根据本领域技术人员所众所周知的任何方法,这些计算机程序指令包括但不限于诸如面向数据的语言(例如,SQL、dBase)、系统语言(例,如C、扩充C的面向对象编程语言(Objective-C)、C++、汇编)、结构性语言(例如,Java、.NET)以及应用程序语言(例如,PHP、Ruby、Perl、Python)等计算机语言。指令还可以在诸如阵列语言、面向方面语言、汇编语言、创作语言(authoring language)、命令行接口语言、编译语言、并发语言、波形括号语言(curly-bracket language)、数据流语言、数据结构化语言、声明性语言、深奥的语言(esoteric language)、扩展语言(extension language)、第四代语言、函数式语言、交互模式语言、解释型语言、交互式语言(iterative language)、基于列表的语言(list-basedlanguage)、小语言(little language)、基于逻辑的语言、机器语言、宏语言、元编程语言、多范式语言(multiparadigm language)、数值分析、非基于英语的语言(non-English-based language)、基于类的面向对象语言、基于原型的面向对象语言、越位规则语言(off-side rule language)、过程式语言、反射式语言(reflective language)、基于规则的语言、脚本语言、基于堆栈的语言、同步式语言、语法处理语言(syntax handling language)、视觉语言、Wirth语言和基于XML的语言等计算机语言中实现。存储器1004还可以用于在执行待由处理器1002执行的指令期间,存储临时变量或其它中间信息。
如本文所讨论的计算机程序不一定对应于文件系统中的文件。可以将程序存储在保存有其他程序或数据的文件的一部分(例如,存储在标记语言文档中的一个或多个脚本)中、专用于所讨论程序的单个文件中、或者多个协同文件(例如,存储有一个或多个模块、一个或多个子程序或代码的一个部分或多个部分的多个文件)中。可以将计算机程序部署为在一台计算机或多台计算机上执行,该多台计算机位于一个站点处、或跨多个站点而分布且通过通信网络互连。本说明书中描述的过程和逻辑流可以由一个或多个可编程处理器执行,该一个或多个可编程处理器执行一个或多个计算机程序,以通过对输入数据进行操作并生成输出来执行功能。
计算机系统1000还包括诸如磁盘或光盘等数据存储设备1006,该数据存储设备1006耦接到总线1008以用于存储信息和指令。计算机系统1000可以经由输入/输出模块1010耦接到各种设备。输入/输出模块1010可以是任何输入/输出模块。示例性输入/输出模块1010包括诸如USB端口等数据端口。输入/输出模块1010被配置为连接到通信模块1012。示例性通信模块1012包括网络接口卡,例如以太网卡和调制解调器。在某些方面,输入/输出模块1010被配置为连接到多个设备,例如输入设备1014和/或输出设备1016。示例性输入设备1014包括键盘和定点设备(例如,鼠标或追踪球),用户可以通过键盘和定点设备向计算机系统1000提供输入。其他类型的输入设备也可以用于提供与用户的交互,这些输入设备例如为触觉输入设备、视觉输入设备、音频输入设备或脑机接口设备。例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈,并且可以以包括声音输入、语音输入、触觉输入或脑电波输入的任何形式来接收来自用户的输入。示例性输出设备1016包括用于向用户显示信息的显示设备,例如液晶显示器(liquid crystaldisplay,LCD)监视器。
根据本公开的一方面,可以响应于处理器1002执行存储器1004中包含的一个或多个指令的一个或多个序列,使用计算机系统1000来实现以上所描述的系统。可以将这些指令从另一机器可读介质(例如,数据存储设备1006)读入到存储器1004中。对包含在主存储器1004中的指令序列的执行,使得处理器1002执行本文描述的过程步骤。还可以采用多处理配置中的一个或多个处理器来执行包含在存储器1004中的指令序列。在替代方面,可以使用硬连线电路来代替软件指令,或者可以将硬连线电路与软件指令组合使用,以实施本公开的各种方面。因此,本公开各方面不限于硬件电路和软件的任何特定组合。
本说明书中所描述的主题的各方面可以在计算系统中实现,该计算系统包括后端部件(例如,数据服务器),或者包括中间软件部件(例如,应用服务器),或者包括前端部件(例如,具有图形用户界面或网页浏览器的客户端计算机,用户可以通过该图形用户界面或网页浏览器与本说明书中所描述的主题的实施方式进行交互),或者本说明书中所描述的主题的各方面可以在一个或多个这种后端部件、一个或多个这种中间软件部件或一个或多个这种前端部件的任意组合中实现。该系统的各部件可以通过数字数据通信的任何形式或媒介(例如,通信网络)互连。通信网络例如可以包括LAN、WAN和互联网等中的任何一种或多种。此外,通信网络例如可以包括但不限于以下网络拓扑中的任何一种或多种,这些网络拓扑包括总线网络、星形网络、环形网络、网状网络、星形总线网络、或者树形或分层网络等。通信模块例如可以是调制解调器或以太网卡。
计算系统1000可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是借助于运行在各自的计算机上且彼此之间具有客户端-服务器关系的计算机程序而产生的。例如,计算机系统1000可以是但不限于台式计算机、膝上型计算机或平板计算机。计算机系统1000还可嵌入在另一设备中,该另一设备例如但不限于,移动电话、个人数字助理(PDA)、移动音频播放器、全球定位系统(Global Positioning System,GPS)接收机、视频游戏控制台、和/或电视机顶盒。
如本文所使用的术语“机器可读存储介质”或“计算机可读介质”是指,参与向处理器1002提供指令以用于执行的任何一个或多个介质。这种介质可以采取许多形式,这些形式包括但不限于非易失性介质、易失性介质和传输介质。例如,非易失性介质包括光盘或磁盘,例如数据存储设备1006。易失性介质包括动态存储器,例如,存储器1004。传输介质包括同轴电缆、铜线和光纤,上述同轴电缆、铜线和光纤包括导线,该导线包括总线1008。例如,机器可读介质的常见形式包括软盘(floppy disk)、软盘(flexible disk)、硬盘、磁带、任何其他磁介质、CD-ROM、DVD、任何其他光学介质、穿孔卡、纸带、具有孔图案的任何其他物理介质、RAM、PROM、EPROM、FLASH EPROM、任何其他存储器芯片或卡带、或计算机可以读取的任何其他介质。机器可读存储介质可以是机器可读存储设备、机器可读存储基体(machine-readable storage substrate)、存储器设备、引起机器可读传播信号的物质的组合、或者它们中的一种或多种的组合。
当用户计算系统1000读取XR数据并提供人工现实时,可以从XR数据中读取信息并且将该信息存储在存储器设备(例如,存储器1004)中。另外,可以经由网络访问从存储器1004服务器、总线1008或数据存储器1006读取数据并将该数据加载到存储器1004中。尽管数据被描述为在存储器1004中被找到,但将理解的是,数据不必存储在存储器1004中,并且数据可以存储在处理器1002可访问或分布在若干介质之中的其他存储器(例如,数据存储器1006)中。
本文所描述的技术可以被实现为由一个或多个物理计算设备执行的一种或多种方法;本文所描述的技术可以被实现为存储多个指令的一个或多个非暂态计算机可读存储介质,这些指令在被一个或多个计算设备执行时,使得执行上述一种或多种方法;或者,本文所描述的技术可以被实现为一个或多个物理计算设备,该一个或多个物理计算设备专门配置有使得执行上述一种或多种方法的硬件和软件的组合。
如本文所使用的,在一系列项目之后的短语“中的至少一个”,与用于分隔这些项目中任何一个的术语“和”或“或”一起在整体上修饰列表,而不是修饰该列表的每个元素(即,每个项目)。短语“中的至少一个”并不要求选择至少一个;而是,该短语的意思是包括这些项目中的任何一项中的至少一个,和/或这些项目的任何组合中的至少一个,和/或这些项目中的每项中的至少一个。作为示例,短语“A、B和C中的至少一个”或“A、B或C中的至少一个”均指的是:仅A、仅B或仅C;A、B和C的任意组合;和/或,A、B和C的每项中的至少一个。
就在说明书或权利要求书中使用术语“包括”或“具有”等而言,这种术语旨在以类似于术语“包括”在用作权利要求中的过渡词时被解释为“包括”的方式是开放性的。词语“示例性”在本文中用于表示“用作示例、实例或说明”。本文被描述为“示例性”的任何实施例不一定被解释为比其他实施例优选或有利。
除非特别说明,否则对单数形式的元素的提及并非旨在意味着“一个且仅有一个”,而是“一个或多个”。本领域普通技术人员已知或以后将知晓的、贯穿本公开所描述的各种配置的元素的所有结构和功能等同物均通过引用明确地并入本文,并且旨在被本主题技术所包含。此外,本文所公开的任何内容不旨在奉献给公众,无论这种公开是否明确记载以上描述中。
虽然本说明书包含许多细节,但是这些细节不应被解释为对可能被主张的内容的范围的限制,而应被解释为对该主题的特定实施方式的描述。在本说明书中在不同实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反地,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独实现或以任何合适的子组合实现。此外,尽管特征可能在以上被描述为在某些组合中起作用并且甚至最初被要求为如此,但是在一些情况下,来自所主张的组合的一个或多个特征可以从该组合中去除,并且所主张的组合可以针对子组合或子组合的变型。
已经在特定方面描述了本说明书的主题,但其他方面可以被实现并且位于所附权利要求的范围内。例如,尽管在附图中以特定顺序描绘了操作,但是这不应当被理解为要求以所示的特定顺序或以连续顺序执行这些操作,或者不应当被理解为要求执行所有示出的操作以实现期望的结果。权利要求中所描述的动作可以以不同的顺序执行,并且仍然可以实现期望的结果。作为一个示例,附图中所描绘的过程不一定要求所示的特定顺序或连续顺序来实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,不应将上述多个方面中的各个系统部件的分开理解为要求在所有方面中都进行这样的分开,而应理解的是,所描述的程序组件和系统通常可以在一个软件产品中集成在一起或封装在多个软件产品中。其它变化在所附权利要求书的范围内。

Claims (20)

1.一种用于导航浏览共享人工现实环境的计算机实现的方法,所述方法包括:
接收对所述共享人工现实环境中的虚拟对象的指示;
经由虚拟接口,接收指示与所述虚拟对象相关联的导航命令的输入手势;
确定所述输入手势的至少一种类型,其中,所述输入手势的所述至少一种类型包括以下中的至少一者:屈曲和伸展、旋前和旋后、或桡侧和尺侧;
确定控制方法;
确定滚动参数;
基于所述输入手势的所述至少一种类型、所述控制方法和所述滚动参数,识别所述导航命令;以及
将所述导航命令应用于所述虚拟对象。
2.根据权利要求1所述的计算机实现的方法,其中,接收所述输入手势包括:通过腕式传感器感测手部动作,其中,所述虚拟对象包括以下中的至少一者:可滚动列表、可滚动对象、虚拟区域、或突出显示的虚拟对象。
3.根据权利要求2所述的计算机实现的方法,其中,感测所述手部动作包括:感测第一手部的第一动作、和第二手部的第二动作,其中,所述第二动作包括由所述第一动作触发的对所述输入手势的修改。
4.根据权利要求2所述的计算机实现的方法,其中,感测所述手部动作包括:经由用于所述导航命令的所述虚拟接口感测第一手部的第一动作,并且经由用于另一导航命令的另一虚拟接口感测第二手部的第二动作。
5.根据权利要求1所述的计算机实施的方法,其中,确定所述输入手势的所述至少一种类型包括:将腕式传感器所感测的动作与来自头戴式传感器的光学信号进行比较。
6.根据权利要求1所述的计算机实现的方法,其中,确定所述控制方法包括:确定以下中的至少一者:位置控制、速率控制、或不连续推动。
7.根据权利要求1所述的计算机实现的方法,其中,确定所述滚动参数包括:确定以下中的至少一者:捏合参数、自然滚动参数、传递函数、选择参数、维度参数、不连续参数、连续参数、滚动速度参数、或滚动距离参数。
8.根据权利要求1所述的计算机实现的方法,其中,应用所述导航命令包括:基于由所述导航命令定义的滚动技术,移动所述虚拟对象的至少一部分,其中,所述输入手势与空中腕部移动相对应。
9.根据权利要求1所述的计算机实现的方法,还包括:
基于所述滚动参数,根据所述输入手势生成对所述共享人工现实环境中的所述虚拟对象的可滚动列表进行滚动浏览的动量;以及
基于所述导航命令和双捏合输入手势,选择所述可滚动列表的项目。
10.根据权利要求1所述的计算机实现的方法,还包括:基于与所述输入手势相对应的腕部移动的速度或角度,确定所述导航命令的滚动速度。
11.一种用于导航浏览共享人工现实环境的系统,包括:
一个或多个处理器;以及
存储器,所述存储器包括存储在其上的多个指令,所述多个指令在被所述一个或多个处理器执行时使得所述一个或多个处理器执行:
接收对所述共享人工现实环境中的虚拟对象的指示;
经由虚拟接口,接收指示与所述虚拟对象相关联的导航命令的输入手势;
确定所述输入手势的至少一种类型,其中,所述输入手势的所述至少一种类型包括以下中的至少一者:屈曲和伸展、旋前和旋后、桡侧和尺侧;
确定控制方法;
确定滚动参数;
基于所述输入手势的所述至少一种类型、所述控制方法和所述滚动参数,识别所述导航命令;
将所述导航命令应用于所述虚拟对象;以及
基于所述导航命令和双捏合输入手势,选择所述虚拟对象的可滚动列表中的项目。
12.根据权利要求11所述的系统,其中,使得所述一个或多个处理器执行接收所述输入手势的所述多个指令使得所述一个或多个处理器执行:通过腕式传感器感测手部动作,其中,所述虚拟对象包括以下中的至少一者:所述可滚动列表、可滚动对象、虚拟区域、或突出显示的虚拟对象。
13.根据权利要求12所述的系统,其中,使得所述一个或多个处理器执行感测所述手部运动的所述多个指令使得所述一个或多个处理器执行:感测第一手部的第一动作、以及第二手部的第二动作,其中,所述第二动作包括由所述第一动作触发的对所述输入手势的修改。
14.根据权利要求12所述的系统,其中,使得所述一个或多个处理器执行感测所述手部动作的所述多个指令使得所述一个或多个处理器执行:经由用于所述导航命令的所述虚拟接口感测第一手部的第一动作,并且经由用于另一导航命令的另一虚拟接口感测第二手部的第二动作。
15.根据权利要求11所述的系统,其中,使得所述一个或多个处理器执行确定所述输入手势的所述至少一种类型的所述多个指令使得所述一个或多个处理器执行:将腕式传感器感测到的动作与来自头戴式传感器的光学信号进行比较。
16.根据权利要求11所述的系统,其中,使得所述一个或多个处理器执行确定所述控制方法的所述多个指令使得所述一个或多个处理器执行:确定以下中的至少一者:位置控制、速率控制、或不连续推动。
17.根据权利要求11所述的系统,其中,使得所述一个或多个处理器执行确定所述滚动参数的所述多个指令使得所述一个或多个处理器执行:确定以下中的至少一者:捏合参数、自然滚动参数、传递函数、选择参数、维度参数、不连续参数、连续参数、滚动速度参数、或滚动距离参数。
18.根据权利要求11所述的系统,其中,使得所述一个或多个处理器执行应用所述导航命令的所述多个指令使得所述一个或多个处理器执行:基于由所述导航命令限定的滚动技术,移动所述虚拟对象的至少一部分,其中,所述输入手势与空中腕部移动相对应。
19.根据权利要求11所述的系统,还包括所存储的指令序列,所述指令序列在被所述一个或多个处理器执行时使得所述一个或多个处理器执行:
基于所述滚动参数,根据所述输入手势生成对所述共享人工现实环境中的所述虚拟对象的所述可滚动列表进行滚动浏览的动量;以及
基于与所述输入手势相对应的腕部移动的速度或角度,确定所述导航命令的滚动速度。
20.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质包括存储在其上的多个指令,所述多个指令在被一个或多个处理器执行时使得所述一个或多个处理器执行用于导航浏览共享人工现实环境的多个操作,所述多个操作包括:
接收对所述共享人工现实环境中的虚拟对象的指示;
经由虚拟接口,接收指示与所述虚拟对象相关联的导航命令的输入手势;
确定所述输入手势的至少一种类型,其中,所述输入手势的所述至少一种类型包括以下中的至少一者:屈曲和伸展、旋前和旋后、桡侧和尺侧;
确定控制方法;
确定滚动参数;
基于所述滚动参数,根据所述输入手势生成对所述共享人工现实环境中的所述虚拟对象的可滚动列表进行滚动浏览的动量;
基于所述输入手势的所述至少一种类型、所述控制方法和所述滚动参数,识别所述导航命令;
将所述导航命令应用于所述虚拟对象;以及
基于导航命令和双捏合输入手势,选择所述可滚动列表中的项目。
CN202310140660.9A 2022-02-11 2023-02-13 虚拟现实中的滚动和导航 Pending CN116594497A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/670,228 US11726578B1 (en) 2022-02-11 2022-02-11 Scrolling and navigation in virtual reality
US17/670,228 2022-02-11

Publications (1)

Publication Number Publication Date
CN116594497A true CN116594497A (zh) 2023-08-15

Family

ID=85222471

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310140660.9A Pending CN116594497A (zh) 2022-02-11 2023-02-13 虚拟现实中的滚动和导航

Country Status (3)

Country Link
US (2) US11726578B1 (zh)
EP (1) EP4227776A1 (zh)
CN (1) CN116594497A (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201020896A (en) * 2008-11-19 2010-06-01 Nat Applied Res Laboratories Method of gesture control
US10613642B2 (en) * 2014-03-12 2020-04-07 Microsoft Technology Licensing, Llc Gesture parameter tuning
US10274992B2 (en) * 2014-11-12 2019-04-30 Kyocera Corporation Wearable device with muscle activity detector
DE102016212236A1 (de) * 2016-07-05 2018-01-11 Siemens Aktiengesellschaft Interaktionssystem und -verfahren
US11150730B1 (en) * 2019-04-30 2021-10-19 Facebook Technologies, Llc Devices, systems, and methods for controlling computing devices via neuromuscular signals of users
US10402081B1 (en) * 2018-08-28 2019-09-03 Fmr Llc Thumb scroll user interface element for augmented reality or virtual reality environments

Also Published As

Publication number Publication date
EP4227776A1 (en) 2023-08-16
US20230259215A1 (en) 2023-08-17
US11726578B1 (en) 2023-08-15
US20230350497A1 (en) 2023-11-02

Similar Documents

Publication Publication Date Title
US20220301269A1 (en) Utilizing topological maps for augmented or virtual reality
US11188156B2 (en) Artificial reality notification triggers
US11726578B1 (en) Scrolling and navigation in virtual reality
US20230359267A1 (en) Self-tracking controller for interaction in an artificial reality environment
US20240146675A1 (en) Transmitting three-dimensional objects via messenger
Olynick A Deep Dive into Interfaceless Environments
Darbar Extending Interaction Space in Augmented Reality: Contributions in Optical-See-Through and Projection-Based Augmented Environments
WO2023215167A1 (en) Accessible controller and controller hub

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40097707

Country of ref document: HK