CN110443083B - 虚拟现实环境中的用户界面安全性 - Google Patents

虚拟现实环境中的用户界面安全性 Download PDF

Info

Publication number
CN110443083B
CN110443083B CN201910344416.8A CN201910344416A CN110443083B CN 110443083 B CN110443083 B CN 110443083B CN 201910344416 A CN201910344416 A CN 201910344416A CN 110443083 B CN110443083 B CN 110443083B
Authority
CN
China
Prior art keywords
user interface
virtual reality
user
interface element
application
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.)
Active
Application number
CN201910344416.8A
Other languages
English (en)
Other versions
CN110443083A (zh
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 CN110443083A publication Critical patent/CN110443083A/zh
Application granted granted Critical
Publication of CN110443083B publication Critical patent/CN110443083B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/84Protecting input, output or interconnection devices output devices, e.g. displays or monitors
    • 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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • 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
    • G06F3/014Hand-worn input/output arrangements, e.g. data gloves
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03542Light pens for emitting or receiving light
    • 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
    • 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/04842Selection of displayed objects or displayed text elements
    • 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/04845Interaction 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 for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/53Network services using third party service providers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04803Split screen, i.e. subdividing the display area or the window area into separate subareas

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Graphics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本公开涉及虚拟现实环境中的用户界面安全性。在一个实施例中,客户端系统接收在虚拟现实环境中显示用户界面元素的请求。客户端系统确定所请求的用户界面元素是由在客户端系统上运行的操作系统生成的系统用户界面元素还是由第三方应用或基于第三方内容生成的第三方用户界面元素。客户端系统选择性地在虚拟现实环境的第一专用平面或第二专用平面中显示用户界面元素。当确定所请求的用户界面元素是系统用户界面元素时,在虚拟现实环境的第一专用平面中显示所请求的用户界面元素。当确定所请求的用户界面元素是第三方用户界面元素时,在虚拟现实环境的第二专用平面中显示所请求的用户界面元素。

Description

虚拟现实环境中的用户界面安全性
技术领域
本公开一般涉及用于虚拟现实环境中的用户交互和体验的控件和界面。
背景技术
虚拟现实是用户可以以看似真实或物理的方式与之交互的环境(例如,3D环境)的计算机生成的模拟。可以是单个装置或一组装置的虚拟现实系统可以生成该模拟,以例如在虚拟现实头戴设备或一些其他显示装置上显示给用户。模拟可以包括图像、声音、触觉反馈和/或模拟真实或想象环境的其他感觉。随着虚拟现实变得越来越突出,其有用的应用范围正在迅速扩大。虚拟现实最常见的应用包括游戏或其他交互式内容,但是其他应用紧随其后,诸如出于娱乐或训练目的观看视觉媒体项(例如,照片、视频)。还在探索使用虚拟现实来模拟现实生活中的对话和其他用户交互的可行性。
发明内容
本文公开了渲染以及与虚拟(或增强)现实环境交互的多种不同方式。虚拟现实系统可以渲染虚拟环境,该虚拟环境可以包括被渲染用于向一个或多个用户显示的虚拟空间。用户可以通过任何合适的方式在这个虚拟空间和更广阔的虚拟环境内观看和交互。所公开的方法的一个目标是提高虚拟环境的安全性。在特定实施例中,虚拟现实系统可以提供一种将虚拟现实环境内生成的操作系统(OS)内容与生成的第三方内容区分开来并相应地在不同显示平面中选择性地显示内容的方法。作为示例而非通过限制的方式,操作系统内容可以包括各种过程,诸如系统更新或通过OS运行的其他过程。作为另一示例而非通过限制的方式,第三方内容可以涉及由在虚拟现实系统上运行的应用生成的内容,诸如游戏和交互式内容。作为另一示例而非通过限制的方式,OS用户界面(例如,键盘、菜单、弹出窗口或由操作系统生成的任何其他用户界面)可以与第三方用户界面(例如,键盘、菜单、弹出窗口或由第三方生成的任何其他用户界面)区分开来。在虚拟现实环境中,用户应该能够信任在虚拟现实环境中生成的元素,诸如用户当前正在连接的第三方应用。但是,可能有恶意的第三方实体试图危害用户的安全,并在未经批准的情况下获取用户的机密信息。作为示例而非通过限制的方式,恶意第三方实体可以生成用户界面元素,诸如伪装成系统软件的一部分的键盘,希望用户将使用它来输入机密信息(例如,密码、社会安全号码等)。尽管存在恶意的第三方实体,但是用户101可以依赖于系统生成的内容并维护对系统生成的内容(诸如用户界面元素(例如,键盘))的使用。
为了打击具有恶意意图的第三方,在特定实施例中,虚拟现实系统可以接受访问用户界面元素(例如,键盘)的任何请求,并确定所请求的用户界面元素是由OS生成的系统用户界面元素还是由第三方应用或基于第三方内容生成的第三方用户界面元素。作为示例而非通过限制的方式,可以从与第三方应用交互的用户接收请求,以生成用户界面元素(例如,键盘)来将他或她的凭证输入到输入字段中。在特定实施例中,虚拟现实系统可以接受请求并确定要调用的用户界面元素是否是系统的用户界面。在特定实施例中,为了区分由第三方应用生成的用户界面元素和由OS生成的用户界面元素,虚拟现实系统可以在两个独立的平面中生成这两个不同的用户界面元素。作为示例而非通过限制的方式,虚拟现实系统可以确定用户请求输入他或她的凭证,以批准OS的软件更新,并且在虚拟现实环境中在离用户一定距离的平面上显示系统键盘。作为另一示例而非通过限制的方式,虚拟现实系统可以接收显示用于输入针对服务的用户凭证的第三方键盘的请求,并且在虚拟现实环境中在离用户一定距离的平面中显示键盘,其中,为第三方键盘生成的第二平面可以比为OS内容生成的第一平面离用户更远。OS生成的用户界面元素和第三方应用之间的其他差异可以包括用户界面元素的方向(例如,键盘面向哪个方向)。在特定实施例中,第一平面可以专用于为OS生成的用户界面元素,并且第二平面可以专用于由第三方应用生成的用户界面元素,以进一步区分由OS或第三方应用生成的用户界面元素。
在特定实施例中,虚拟现实系统可以通过限制对已经特别授权的应用的数据访问来进一步提高系统安全性。许多用户可以执行一定程度的多任务处理,并在任何给定时间打开和运行几个应用。作为示例而非通过限制的方式,用户可以在观看电影或玩游戏的过程中检查并回复紧急电子邮件。在特定实施例中,这些应用可以利用从VR头戴设备接收的传感器数据(例如,加速度计数据、陀螺仪数据、磁力计数据、眼睛跟踪数据等)来执行与应用相关的功能(例如,改变用户移动他或她的头部的视野)。因此,如果用户在应用之间切换,则先前的应用可能仍在接收传感器数据。在用户在当前应用中输入机密信息的情况下,这可能会危及用户的安全性,因为实体可以获取传感器数据(例如,用户正在查看的位置),以某种程度的准确性来确定在VR环境中哪些字符输入到键盘中。在特定实施例中,可由应用访问的传感器数据可以包括从陀螺仪、加速度计、磁力计、眼睛跟踪器和位于虚拟现实系统内的任何其他传感器生成的传感器数据。作为示例而非通过限制的方式,传感器可以位于虚拟现实头戴设备和虚拟现实控制器上。在特定实施例中,虚拟现实系统可以接收第三方应用访问传感器数据的请求。虚拟现实系统可以处理该请求,并确定请求传感器数据的第三方应用当前是否正与用户连接。作为示例而非通过限制的方式,虚拟现实系统可以确定用户是否正在主动与应用交互,诸如与应用的键盘交互、滚动浏览浏览器应用的网页或者悬停在应用的元素上(例如,应用上的指针)。在特定实施例中,虚拟现实系统可以授权用户当前正在连接的第三方应用来接收传感器数据。相反,在特定实施例中,如果用户当前没有与应用(例如,在后台运行的应用)连接,则虚拟现实系统可以阻止第三方应用接收传感器数据。在做出确定之后,虚拟现实系统可以将传感器数据发送到授权的应用,以接收传感器数据。在特定实施例中,用户可以授权特定的第三方应用接收传感器数据。
所公开的方法的另一目标是提高在虚拟现实环境中的用户界面元素(例如,键盘、径向菜单等)的生成。在特定实施例中,虚拟现实系统可以提供一种使用位置数据在虚拟现实环境内为应用生成用户界面元素的方法。在虚拟现实环境内,用户可以查看各种内容。用户界面元素的生成可以遮挡对用户查看来说重要的应用的一部分。作为示例而非通过限制的方式,遮挡部分可以包含内容,诸如用户用生成的用户界面元素回答的问题。作为另一示例而非通过限制的方式,遮挡内容可以包括对搜索字段框的预测输入。
为了避免在虚拟现实环境内遮挡应用的一部分,可以允许用户手动将用户界面元素移动到不同的位置。作为示例而非通过限制的方式,用户可以点击键盘并将键盘拖放到另一位置。作为另一示例而非通过限制的方式,用户可以使用手势将键盘从一个位置移动到另一位置。虚拟现实系统可以存储与用户界面元素相关联的位置数据,以识别虚拟现实环境内可以不遮挡用户想要查看的应用部分的位置。假设用户可以将用户界面元素移开,以查看用户想要看到与用户界面元素连接的任何内容。虚拟现实系统可以使用存储的数据,以在不遮挡用户想要查看的应用的任何部分的位置生成和显示用户界面元素。在特定实施例中,虚拟现实系统可以存储和编译来自多个用户的位置数据,以准确识别应用的显示区域中可能包含内容的区域。
所公开的方法的另一目标是在虚拟现实环境内提供复制和粘贴功能。用户在使用他们的设备(例如,智能手机、平板电脑、笔记本电脑等)时,可能会想当然地认为有很多特性,以在互联网、社交媒体等上浏览。这些特性中的一个可以包括复制和粘贴功能。然而,由于虚拟现实环境和诸如电话屏幕的二维(2D)屏幕之间的差异,当前的虚拟现实环境可能不支持用户期望的复制和粘贴功能。此外,尽管大多数设备可能具有光标,但是虚拟现实环境不同,因为用户具有与三维(3D)空间交互的一个或两个虚拟现实输入装置(例如,手动遥控器)。这可能会导致问题,因为遥控器在3D VR环境中的移动不会像在2D平面上的光标那样转换到相同的运动精度。例如,使用带有2D屏幕的智能手机来执行复制和粘贴功能是比较直接的,只需轻按并按住即可突出显示文本。用户可以通过沿着屏幕移动他或她的手指来选择文本,从而对选择的内容有很好的控制。对于带有光标的台式机和笔记本电脑来说,这一过程甚至更加简化,光标可以指示文本突出显示的开始和结束位置。然而,在虚拟现实环境中,给用户提供虚拟现实输入装置(例如,手动遥控器),其将指针投射到虚拟现实环境的表面上。在虚拟现实环境中,这些表面可能远离用户。这样,当用户投影指针,试图以与具有2D屏幕的系统相似的方式选择想要复制和粘贴的文本时,该过程对于用户来说是困难的,尤其是如果文本很小且很远(因为当投影时,任何移动偏差都会随着距离成比例地放大)。此外,重力和手抖动可能会增加突出显示文本的难度和不完美方式,因为处理指针所需的电机控制水平比2D屏幕上的光标高得多。
为了纠正这个问题,在特定实施例中,虚拟现实系统可以接收投影在虚拟现实环境内的表面(例如,显示应用的面板)上的虚拟现实输入装置的指针的位置数据。虚拟现实系统可以在虚拟现实环境中从投影到表面上的位置数据确定路径。在特定实施例中,虚拟现实系统可以在预定时间段内确定指针的路径。例如,虚拟现实系统可以在过去3秒内确定指针的路径。在确定路径之后,客户端系统可以识别由路径包围的在虚拟现实环境中显示的表面上的一个或多个单词。虚拟现实系统可以从用户接收复制由路径所包围的一个或多个单词的指令。在特定实施例中,一个或多个单词可以存储在临时存储器中。虚拟现实系统可以从用户接收指示虚拟现实环境中的位置的输入。作为示例而非通过限制的方式,用户可以点击应用的消息框。在接收到指示虚拟现实环境中的位置的输入之后,虚拟现实系统可以从用户接收粘贴一个或多个单词的另一指令。在特定实施例中,用户可以选择粘贴选项来执行粘贴功能。虚拟现实系统可以执行粘贴功能,并在用户指示的位置显示一个或多个单词。
在特定实施例中,用户可能希望调整与路径所包围的一个或多个单词相关联的文本框的大小。例如,用户可能已经执行了大的挥动手势,并且包围了比期望的更大的内容部分。虚拟现实系统可以接收调整文本框大小的指令。在启动尺寸调整过程之后,用户可以使用一个或两个虚拟现实输入装置(例如,手动遥控器)来调整文本框的大小。作为示例而非通过限制的方式,用户可以使用两个虚拟现实输入装置的指针来指向文本框的角落,并将角落定位在期望的内容周围。作为另一示例而非通过限制的方式,用户可以使用两个虚拟现实输入装置的指针并选择文本框的左侧和右侧。在特定实施例中,尺寸调整过程可以在释放虚拟现实输入装置的按钮之后结束。在特定实施例中,尺寸调整过程可以在虚拟现实系统接收到结束尺寸调整过程的输入之后结束。
所公开的方法的另一目标是在虚拟现实环境中实现重定向模式。通常,用户在各种方向上使用他们的装置。例如,用户可以坐在餐桌旁、走在街上、坐在车里、躺在床上、甚至在淋浴时使用他们的智能手机和其他装置。然而,虚拟现实系统的当前实现方式锁定在一个方向(例如,当用户在虚拟电影院中移动时,虚拟电影院看起来在空间上是固定的)或者头部锁定模式(例如,整个电影院(包括屏幕和座位)将总是看起来好像用户在电影院中面朝前方,即使用户身体朝上)。因此,如果虚拟现实电影院固定在空间中,则用户将不得不面向前方才能观看屏幕。如果虚拟现实电影院相对于用户的头部是固定的,用户将会有不现实的体验,看到他前面的座位,就好像他正在坐下一样,即使他可能正在躺下。视觉场景和用户身体位置之间的分离可能会导致用户感到迷惑和恶心。为了添加更灵活的环境,虚拟现实环境中的特定元素可以重定向,以更好地适应用户。例如,虚拟电影屏幕可以与虚拟电影院分离,并允许定制锚定到对用户更方便的不同位置/方向(例如,用户可能希望躺下并将虚拟电影屏幕放在虚拟电影院的天花板上)。此外,虚拟现实环境中围绕用户的用户界面(例如,包含网页和其他打开的应用的面板)可以锚定在虚拟现实环境中的特定方向。
为了实现重定向模式,虚拟现实系统的特定实施例可以首先生成要重定向的虚拟现实面板(例如,包含网页等的面板)。虚拟现实面板可以相对于虚拟现实环境中的位置固定。作为示例而非通过限制的方式,虚拟现实面板(例如,网页)可以耦接到虚拟现实电影院的中心。虚拟现实系统可以接收输入,以在虚拟现实环境中启用虚拟现实面板的重定向模式。作为示例而非通过限制的方式,虚拟现实系统可以接收对虚拟现实输入装置(例如,手动遥控器)上的按钮的点击,以启用重定向模式。在另一示例中,而非通过限制的方式,虚拟现实系统可以接收虚拟现实环境中的虚拟现实按钮的点击。重定向模式的启用可以允许虚拟现实面板相对于用户的视点重定向。虚拟现实系统可以接收指示用户视点变化的传感器数据。作为示例而非通过限制的方式,传感器数据可以来自位于虚拟现实系统上的一个或多个传感器(例如,加速度计、陀螺仪、磁力计、眼睛跟踪传感器)。虚拟现实系统可以基于接收到的传感器数据来重定向虚拟现实面板。在用户完成对他或她自己的重定向(诸如躺在床上)之后,虚拟现实系统可以接收输入,以禁用重定向模式。作为示例而非通过限制的方式,用户可以点击手动遥控器上的按钮或者点击虚拟现实按钮,来禁用重定向模式。重定向模式的禁用可以相对于虚拟现实环境中的新位置来固定虚拟现实面板。
所公开的方法的另一目标是在行驶时在虚拟现实环境中实现重定向模式。例如,用户可能想要在行驶车辆中使用虚拟现实系统。传感器(例如,加速度计、磁力计、陀螺仪等)可以检测车辆的移动,并且由于任何移动(诸如汽车转弯)而错误地调整用户界面(例如,虚拟现实面板)和/或虚拟现实环境。为了解决这个问题,可以使用重定向模式或“行驶模式”,其基于检测到的与外力相关的移动(例如,汽车移动、飞机移动等)来动态地改变用户界面的方向。行驶模式可以是带有阻尼的虚拟现实面板的重定向模式,以适应车辆中的轻微运动。为了在行驶时在虚拟现实环境中实现重定向模式,虚拟现实系统可以接收输入,以启用虚拟现实环境的行驶重定向模式。类似于如何启用虚拟现实面板的重定向模式,可以通过点击虚拟现实输入装置上的按钮(例如,手动遥控器)或点击虚拟按钮来启用行驶重定向模式。行驶重定向模式的启用可以设置用户的视点相对于虚拟现实环境的初始方向。作为示例而非通过限制的方式,如果用户面对虚拟现实电影院,其中,显示器位于中心,则初始方向可以设置为显示器位于虚拟现实电影院的中心。虚拟现实系统可以接收指示方向变化的传感器数据。根据传感器数据,虚拟现实系统可以基于传感器数据调整用户相对于虚拟现实环境的视点。虚拟现实系统可以将用户的视点重新调整回相对于虚拟现实环境的初始方向。作为示例而非通过限制的方式,虚拟现实系统可以调整视点,使得显示器位于虚拟现实电影院的中心。在特定实施例中,虚拟现实系统可以确定传感器数据指示由于用户正在占用的车辆的运动导致的方向变化,并且响应于确定方向变化是由于车辆运动,将用户的视点重新调整回相对于虚拟现实环境的初始方向。作为示例而非通过限制的方式,如果虚拟现实系统确定视点由于车辆转弯而改变,则视点将返回到初始方向。
本文公开了渲染以及与虚拟(或增强)现实环境交互的多种不同的方式。虚拟现实系统可以呈现虚拟环境,该虚拟环境可以包括用于向一个或多个用户显示而渲染的虚拟空间。用户可以通过任何合适的方式在这个虚拟空间和更广阔的虚拟环境中观看和交互。所公开的方法的一个目标是为用户提供直观的体验,即,给用户一种“在场”的感觉或者他们实际上在虚拟环境中的感觉。
本发明的实施例可以包括或结合人工现实系统来实现。人工现实是在呈现给用户之前已经以某种方式进行了调整的现实形式,其可以包括例如虚拟现实(VR)、增强现实(AR)、混合现实(MR)、混杂现实或其某种组合和/或衍生物。人工现实内容可以包括完全生成的内容或者与捕捉的内容(例如,现实世界的照片)相结合的生成的内容。人工现实内容可以包括视频、音频、触觉反馈或其某种组合,并且其中的任何一个都可以在单个频道或多个频道中呈现(诸如向观众产生三维效果的立体视频)。此外,在一些实施例中,人工现实可以与例如用于在人工现实中创建内容和/或用于(例如,在人工现实中执行活动)人工现实中的应用、产品、附件、服务或其某种组合相关联。提供人工现实内容的人工现实系统可以在各种平台上实现,包括连接到主计算机系统的头戴式显示器(HMD)、独立的HMD、移动装置或计算系统、或者能够向一个或多个观众提供人工现实内容的任何其他硬件平台。
本文公开的实施例仅仅是示例,并且本公开的范围不限于此。特定实施例可以包括以上公开的实施例的所有、一些或不包括组件、元件、特征、功能、操作或步骤。特别地,在所附权利要求中公开根据本发明的实施例,涉及一种方法、存储介质、系统和计算机程序产品,其中,可以在另一权利要求类别(例如,系统)中要求保护在一个权利要求类别(例如,方法)中提到的任何特征。仅出于正式原因而选择所附权利要求中的依赖关系或参考文献。然而,可以要求保护从任何先前的权利要求(特别是多个依赖关系)的有意引用产生的任何主题,以便公开并且可以要求保护权利要求及其特征的任何组合,而不管在所附权利要求中选择的依赖性。可以要求保护的主题不仅包括在所附权利要求中阐述的特征的组合,而且还包括在权利要求中的特征的任何其他组合,其中,权利要求中提及的每个特征可以与权利要求中的任何其他特征或者其他特征的组合相结合。此外,本文描述或描绘的任何实施例和特征可以以单独的权利要求和/或与本文描述或描绘的任何实施例或特征或者与所附权利要求的任何特征的任何组合来要求保护。
附图说明
图1示出了与虚拟现实系统相关联的示例网络环境;
图2A至图2G示出了用户在虚拟现实环境中与多个用户界面元素交互的示例;
图3A至图3C示出了用户在虚拟现实环境中与多个应用交互的示例;
图4示出了用于区分生成的OS内容和生成的第三方内容的示例方法;
图5示出了用于向授权应用发送传感器数据的示例方法;
图6A至图6C示出了用户在虚拟现实环境中与应用的用户界面元素交互的示例;
图7A至图7B示出了用户在虚拟现实环境中与应用的用户界面元素交互的另一示例;
图8示出了用于生成用户界面元素的示例方法,该用户界面元素避免了在虚拟现实环境中遮挡应用的一部分;
图9A至图9H示出了用户在虚拟现实环境中复制和粘贴内容的示例;
图10示出了用于在虚拟现实环境中复制和粘贴内容的示例方法;
图11A至图11C示出了用户在虚拟现实环境中使用重定向模式的示例;
图12A至图12E示出了用户在虚拟现实环境中使用行驶重定向模式的示例;
图13示出了在虚拟现实环境中利用重定向模式的示例方法;
图14示出了示例计算机系统。
具体实施方式
图1示出了与虚拟现实系统相关联的一个示例网络环境100。网络环境100包括与客户端系统130交互的用户101、社交网络系统160以及通过网络110彼此连接的第三方系统170。虽然图1示出了用户101、客户端系统130、社交网络系统160、第三方系统170以及网络110的特定设置,但是本公开预期用户101、客户端系统130、社交网络系统160、第三方系统170以及网络110具有任何合适的设置。作为一个示例,并非通过限制的方式,用户101、客户端系统130、社交网络系统160以及第三方系统170中的两个或多个可以彼此直接连接,绕过网络110。作为另一示例,客户端系统130、社交网络系统160以及第三方系统170中的两个或多个可以在物理上或逻辑上彼此完全或部分共同定位。而且,虽然图1示出了特定数量的用户101、客户端系统130、社交网络系统160、第三方系统170以及网络110,但是本公开预期客户端系统130、社交网络系统160、第三方系统170以及网络110具有任何合适的数量。作为一个示例,并非通过限制的方式,网络环境100可以包括多个用户101、客户端系统130、社交网络系统160、第三方系统170以及网络110。
本公开预期任何合适的网络110。作为一个示例,并非通过限制的方式,网络110的一个或多个部分可以包括自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、一部分互联网、一部分公共交换电话网(PSTN)、蜂窝电话网络、或其中的两个或多个的组合。网络110可以包括一个或多个网络110。
链路150可以使客户端系统130、社交网络系统160以及第三方系统170与通信网络110或者彼此连接。本公开预期任何合适的链路150。在特定的实施方式中,一个或多个链路150包括一个或多个有线(诸如,例如数字用户线路(DSL)或电缆数据服务界面规范(DOCSIS))、无线(诸如,例如Wi-Fi或全球微波接入互操作性(WiMAX))、或光学(诸如,例如同步光纤网络(SONET)或同步数字系列(SDH))链路。在特定的实施方式中,一个或多个链路150均包括自组织网络、内联网、外联网、VPN、LAN、WLAN、WAN、WWAN、MAN、一部分互联网、一部分PSTN、基于蜂窝技术的网络、基于卫星通信技术的网络、另一个链路150或两个或多个这种链路150的组合。在整个网络设备100中,链路150不必相同。一个或多个第一链路150可以在一个或多个方面与一个或多个第二链路150不同。
在特定的实施方式中,客户端系统130可以是电子装置,其包括硬件、软件或嵌入式逻辑元件或两个或多个这种元件的组合,并且能够执行由客户端系统130实现或支持的合适功能。作为示例,并非通过限制的方式,客户端系统130可以包括计算机系统,诸如台式电脑、笔记本或膝上型电脑、上网本、平板电脑、电子阅读器、GPS装置、照相机、个人数字助理(PDA)、手持式电子装置、蜂窝电话、智能电话、虚拟现实头戴设备和控制器、其他合适的电子装置、或其任何合适的组合。本公开预期任何合适的客户端系统130。客户端系统130可以使在客户端系统130上的网络用户访问网络110。客户端系统130可以使其用户与在其他客户端系统130上的其他用户通信。客户端系统130可以生成虚拟现实环境,以供用户与内容交互。
在特定实施例中,客户端系统130可以包括虚拟现实(或增强现实)头戴设备132(诸如OCULUS RIFT等)以及虚拟现实输入装置134(诸如虚拟现实控制器)。客户端系统130处的用户可以佩戴虚拟现实头戴设备132,并使用虚拟现实输入装置与由虚拟现实头戴设备132生成的虚拟现实环境136交互。尽管未示出,但是客户端系统130也可以包括独立的处理计算机和/或虚拟现实系统的任何其他组件。虚拟现实头戴设备132可以生成虚拟现实环境136,虚拟现实环境136可以包括系统内容138(包括但不限于操作系统),诸如软件或固件更新,并且还包括第三方内容140,诸如来自应用的内容或从互联网动态下载的内容(例如,网页内容)。虚拟现实头戴设备132可以包括传感器142,诸如加速度计、陀螺仪、磁力计,以生成跟踪头戴设备装置132的位置的传感器数据。头戴设备132还可以包括眼睛跟踪器,用于跟踪用户眼睛的位置或他们的观看方向。客户端系统可以使用来自传感器142的数据来确定相对于头戴设备的速度、方向和重力。虚拟现实输入装置134可以包括传感器144,诸如加速度计、陀螺仪、磁力计和触摸传感器,以生成跟踪输入装置134的位置和用户手指位置的传感器数据。客户端系统130可以利用由外向内的跟踪,其中,跟踪相机(未示出)被放在虚拟现实头戴设备132的外部并在虚拟现实头戴设备132的视线内。在由外向内跟踪中,跟踪相机可以跟踪虚拟现实头戴设备132的位置(例如,通过跟踪虚拟现实头戴设备132上的一个或多个红外LED标记)。可选地或另外,客户端系统130可以利用从内向外跟踪,其中,跟踪相机(未示出)可以被放在虚拟现实头戴设备132本身上或内部。在由内向外的跟踪中,跟踪相机可以在现实世界中捕捉其周围的图像,并且可以使用现实世界的变化视角来确定其自身在空间中的位置。
第三方内容140可以包括网页浏览器,诸如MICROSOFT INTERNET EXPLORER、GOOGLE CHROME或MOZILLA FIREFOX,并且可以具有一个或多个附加部件、插件或其他延伸部分,诸如TOOLBAR或YAHOO TOOLBAR。在客户端系统130上的用户可以输入统一资源定位符(URL)或其他地址,将网页浏览器引向特定服务器(诸如服务器162或与第三方系统170相关联的服务器),并且网页浏览器可以生成超文本传输协议(HTTP)请求,并且将HTTP请求传送给服务器。服务器可以接受HTTP请求并且将响应于HTTP请求的一个或多个超文本标记语言(HTML)文件传送给客户端系统130。客户端系统130可以基于来自服务器的HTML文件渲染网络界面(例如,网页),用于呈现给用户。本公开预期任何合适的源文件。作为示例,并非通过限制的方式,网络界面可以根据特定的需要从HTML文件、可扩展超文本标记语言(XHTML)文件或可扩展标记语言(XML)文件中渲染。这种界面还可以执行脚本,诸如,例如并且没有限制地,通过JAVASCRIPT、JAVA、MICROSOFT SILVERLIGHT、标记语言和脚本(诸如AJAX(异步JAVASCRIPT和XML)的组合等编写的脚本。在本文中,在适当的情况下,网络界面的引用包括一个或多个相应的源文件(浏览器可以用于渲染网络界面的文件),并且反之亦然。
在特定的实施方式中,社交网络系统160可以是可以托管在线社交网络的网络可寻址计算系统。社交网络系统160可以生成、储存、接收并且发送社交网络数据,诸如,例如用户配置文件数据、概念配置文件数据、社交图信息、或与在线社交网络相关的其他合适数据。社交网络系统160可以由网络环境100的其他组件直接或者经由网络110访问。作为示例而非通过限制的方式,客户端系统130可以直接或经由网络110使用第三方内容140的网络浏览器或与社交网络系统160相关联的本地应用(例如,移动社交网络应用、消息传递应用、另一合适的应用或其任意组合)来访问社交网络系统160。在特定的实施方式中,社交网络系统160可以包括一个或多个服务器162。每个服务器162可以是单一式服务器或分布式服务器,其跨过多个计算机或多个数据中心。服务器162可以是各种类型,诸如,例如并且没有限制地,网络服务器、新闻服务器、邮件服务器、消息服务器、广告服务器、文件服务器、应用服务器、交换服务器、数据库服务器、代理服务器、适合于执行在本文中描述的功能或工艺的另一个服务器、或其任何组合。在特定的实施方式中,每个服务器162可以包括硬件、软件或嵌入式逻辑元件或两个或多个这种元件的组合,用于执行由服务器162实现或支持的合适功能。在特定的实施方式中,社交网络系统160可以包括一个或多个数据存储164。数据存储164可以用于储存各种类型的信息。在特定的实施方式中,可以根据特定的数据结构,组织储存在数据存储164内的信息。在特定的实施方式中,每个数据存储164可以是关联式、柱状、相关性或其他合适的数据库。虽然本公开描述或示出了特定类型的数据库,但是本公开预期任何合适类型的数据库。特定的实施方式可以提供界面,该界面使客户端系统130、社交网络系统160或者第三方系统170能够管理、检索、增加或删除储存在数据存储164内的信息。
在特定的实施方式中,社交网络系统160可以在一个或多个数据存储164内储存一个或多个社交图。在特定的实施方式中,社交图可以包括多个节点-其可以包括多个用户节点(每个节点与特定的用户对应)或多个概念节点(每个节点与特定的概念对应)-以及连接该节点的多个边线。社交网络系统160可以给在线社交网络的用户提供与其他用户通信和交互的能力。在特定的实施方式中,用户可以经由社交网络系统160加入在线社交网络,并且然后,增加与用户希望联系的社交网络系统160的多个其他用户的联系(例如,关系)。在本文中,术语“朋友”可以表示用户经由社交网络系统160与其形成联系、关联性或关系的社交网络系统160的任何其他用户。
在特定的实施方式中,社交网络系统160可以给用户提供对由社交网络系统160支持的各种类型的项或对象采取行动的能力。作为示例,并非通过限制的方式,项和对象可以包括社交网络系统160的用户所属的群组或社交网络、用户可能感兴趣的活动或日历项、用户可以使用的基于计算机的应用、允许用户通过服务购买或销售的项的交易、与用户可以执行的广告的交互、或其他合适的项或对象。用户可以与能够在社交网络系统160内或者由第三方系统170的外部系统表示的任何物体交互,该外部系统与社交网络系统160分开并且经由网络110耦接至社交网络系统160。
在特定的实施方式中,社交网络系统160能够链接各种实体。作为示例,并非通过限制的方式,社交网络系统160可以使用户能够彼此交互并且接收来自第三方系统170或其他实体的内容,或者允许用户通过应用程序编程接口(API)或其他通信信道与这些实体交互。
在特定的实施方式中,第三方系统170可以包括一种或多种类型的服务器、一个或多个数据存储、一个或多个接口(包括但不限于API)、一个或多个网络服务、一个或多个内容源、一个或多个网络、或例如可以与服务器通信的任何其他合适的组件。第三方系统170可以由与操作社交网络系统160的实体不同的实体操作。在特定的实施方式中,然而,社交网络系统160和第三方系统170可以彼此相结合地操作,以给社交网络系统160或第三方系统170的用户提供社交网络服务。在这个意义上,社交网络系统160可以提供平台或支柱,其他系统(诸如第三方系统170)可以使用该平台或支柱来通过互联网给用户提供社交网络服务和功能。
在特定的实施方式中,第三方系统170可以包括第三方内容对象提供商。第三方内容对象提供商可以包括可以传送给客户端系统130的内容对象的一个或多个源。作为示例,并非通过限制的方式,内容对象可以包括关于用户感兴趣的事物或活动的信息,诸如,例如电影放映时间、电影评论、餐厅评论、餐厅菜单、产品信息和评论、或其他合适的信息。作为另一示例,并非通过限制的方式,内容对象可以包括激励内容对象,诸如优惠券、折扣票、礼品券或其他合适的激励对象。
在特定的实施方式中,社交网络系统160还包括用户生成的内容对象,该用户生成的内容对象可以增强用户与社交网络系统160的交互。用户生成的内容可以包括用户可以增加、上传、发送或“发帖”到社交网络系统160中的任何事物。作为示例,并非通过限制的方式,用户将帖子从客户端系统130中传送给社交网络系统160。帖子可以包括诸如状态更新或其他文本数据的数据、位置信息、照片、视频、链接、音乐或其他类似的数据或介质。还可以由第三方系统170通过“通信通道”(诸如新闻推送或流)增加到社交网络系统160中。
在特定的实施方式中,社交网络系统160可以包括各种服务器、子系统、程序、模块、记录以及数据存储。在特定的实施方式中,社交网络系统160可以包括以下中的一个或多个:网络服务器、活动记录器、API请求服务器、相关性和排名引擎、内容对象分类器、通知控制器、活动记录、第三方内容对象曝光记录、推理模块、授权/隐私服务器、搜索模块、广告目标模块、用户界面模块、用户配置文件储存、连接储存、第三方内容储存或位置储存。社交网络系统160还可以包括合适的组件,诸如网络界面、安全机构、负载平衡器、故障转移服务器、管理和网络操作控制台、其他合适的组件、或其任何合适的组合。在特定的实施方式中,社交网络系统160可以包括一个或多个用户配置文件储存,用于储存用户配置文件。用户配置文件可以包括例如传记信息、人口统计信息、行为信息、社交信息、或其他类型的描述性信息,诸如工作经验、学历、爱好或偏好、兴趣、亲和力或位置。兴趣信息可以包括与一个或多个类别相关联的兴趣。类别可以是一般或特定类别。作为示例,并非通过限制的方式,如果用户“喜欢”关于某个品牌的鞋的商品,则类别可以是该品牌或者一般类别的“鞋子”或“衣服”。连接储存可以用于储存关于用户的连接信息。连接信息可以表示具有相似或共同工作经历、群组关系、爱好、学历的或者通过任何方式相关的或者共享共同属性的用户。连接信息还可以包括在不同用户与内容(内部和外部)之间的用户定义的连接。网络服务器可以用于经由网络110链接社交网络系统160和一个或多个客户端系统130或者一个或多个第三方系统170。网络服务器可以包括邮件服务器或其他消息传递功能,用于在社交网络系统160与一个或多个客户端系统130之间接收和路由消息。API请求服务器可以允许第三方系统170通过调用一个或多个API来访问来自社交网络系统160的信息。活动记录器可以用于从网络服务器中接收关于用户在社交网络系统160上或者远离社交网络系统160的活动的通信。与活动记录相结合,第三方内容对象记录可以保持用户曝光到第三方内容对象中。通知控制器可以给客户端系统130提供关于内容对象的信息。可以将信息作为通知推送给客户端系统130,或者可以响应于从客户端系统130中接收的请求,从客户端系统130中拉取信息。授权服务器可以用来实施社交网络系统160的用户的一个或多个隐私设置。用户的隐私设置确定可以如何共享与用户相关联的特定信息。授权服务器可以允许用户决定加入或退出由社交网络系统160记录的或者与其他系统(例如,第三方系统170)共享的活动,诸如,例如通过设置合适的隐私设置。第三方内容对象储存可以用于储存从第三方(诸如第三方系统170)接收的内容对象。位置储存可以用于储存从与用户相关联的客户端系统130中接收的位置信息。广告定价模块可以合并社交信息、当前时间、位置信息或其他合适的信息,以通过通知的形式向用户提供相关广告。
图2A至图2G示出了在虚拟现实环境200中使用用户界面元素时维护用户安全性的示例过程。在特定实施例中,客户端系统130或虚拟现实系统可以渲染虚拟空间,以在显示装置上向用户显示。在特定实施例中,虚拟现实系统可以是包括相对于虚拟现实系统的用户本地呈现的装置的本地系统。在特定实施例中,虚拟现实系统可以是远程装置(例如,远程服务器计算机器),或者可以至少包括远程装置。作为示例而非通过限制的方式,虚拟现实系统可以被定义为包括社交网络系统160的服务器。作为另一示例而非通过限制的方式,虚拟现实系统可以被定义为包括社交网络系统160的服务器以及本地计算装置。在特定实施例中,虚拟空间可以是虚拟元素覆盖在现实世界上的增强现实空间。作为示例而非通过限制的方式,虚拟现实系统可以连续捕捉现实世界的图像(例如,使用用户的头戴设备上的相机),并将虚拟对象或其他用户的头像覆盖在这些图像上,使得用户可以同时与现实世界和虚拟世界交互。在特定实施例中,用户可以使用头戴设备装置观看虚拟空间。作为示例而非通过限制的方式,参考图2A,用户可以将虚拟现实头戴设备132安装在用户头部。在特定实施例中,头戴设备装置可以是可以安装、放置或以其他方式连接到用户头部的装置。在特定实施例中,头戴设备装置可以包括向用户显示虚拟空间区域的显示机制。作为示例而非通过限制的方式,显示机制可以包括显示虚拟空间区域的屏幕。作为另一示例而非通过限制的方式,显示机构可以是投影仪,其将虚拟空间区域的显示直接投影到用户眼睛中的最佳点(例如,用户每只眼睛的中央凹部)。
在特定实施例中,客户端系统130可以使用虚拟现实头戴设备132在虚拟空间中渲染面板202,面板202包括一个或多个应用210a-210h,诸如包括游戏的第三方应用、网络浏览器以及虚拟现实系统可以支持的任何其他类型的应用。图2A示出了用户101佩戴虚拟现实头戴设备132并使用虚拟现实输入装置134与虚拟现实环境200交互。在特定实施例中,用户101可以通过与虚拟现实环境200交互(例如,触摸虚拟现实环境200内的虚拟现实元素)或者通过向虚拟现实输入装置134输入输入(例如,点击按钮)来打开面板202。如图2A所示,用户101可以看到虚拟现实环境200内的指针212和指针路径214,以可视化用户101用虚拟现实输入装置134指向的位置。用户101还可以通过将指针212指向期望的位置并将输入输入到虚拟现实输入装置134(例如,点击按钮)来选择如图2A所示的应用210a-210h中的任何一个(例如,应用210h,其可以是网络浏览器)。
图2B示出了选择应用210h(例如,网络浏览器)的结果,这可以导致显示应用210h的面板204。在特定实施例中,应用210h可以包括多个可选介质216a-216c并且介质216c用于登录。如图2B所示,用户101可以通过将指针212指向期望的位置并将输入输入到虚拟现实输入装置134来选择介质216c。在特定实施例中,应用210h可以变灰,以突出显示其是打开的应用。图2C示出了在选择介质216c之后,可以出现与第三方内容相关的登录框218,其可以包括输入字段220a-220b。如图2C所示,用户101可以在输入字段220a上“点击”,以继续输入信息来登录,以使用与介质216c相关联的第三方内容。尽管登录框218与介质216c相关联,但是登录框218可以与其他第三方内容相关联,诸如其他应用或其他介质216a-216b。图2D示出了生成专用平面222来显示用户界面元素224(例如,键盘),以接收来自用户101的输入。在特定实施例中,专用平面222可以是生成的第三方内容的存储空间。作为示例而非通过限制的方式,专用平面222可以用于第三方键盘,其可以不同于系统键盘,以警告用户小心是否使用该键盘和/或用户是否应该停止与生成该键盘的第三方应用交互。在特定实施例中,专用平面222是透明的,并且仅示出,用于参考第三方用户界面元素(诸如用户界面元素224)在由客户端系统130生成之后显示的位置。专用平面222可以表示可以围绕用户101旋转360度的平面。在特定实施例中,用户界面元素224可以体现为接收用户输入的任何其他合适的用户界面元素。在特定实施例中,客户端系统130还可以在专用平面222中生成警告(例如,带有警告的弹出框),以指示用户界面元素224不是系统键盘,并且还可以警告用户不要使用键盘。为此,客户端系统130可以确定用户界面元素224是第三方键盘,并响应于该确定发出警告。
图2E示出了以包括多个确认按钮228a-228b的系统更新框226的形式出现在虚拟现实环境200中的系统内容(例如,由操作系统生成的用户界面)。如图2E进一步所示,用户101能够选择“是”确认按钮228a,以通过向虚拟现实输入装置134输入输入来确认对系统的更新。在特定实施例中,OS内容可以通过包括额外元素(例如,OS内容周围的边框)、具有不同的样式或布局(例如,黑色键盘与浅色键盘)或其任意组合而与第三方内容区分开来。在特定实施例中,客户端系统130可以确定对键盘的请求是针对系统键盘还是第三方键盘。作为示例而非通过限制的方式,客户端系统130可以确定系统是生成要显示的用于用户输入的键盘,还是第三方应用生成用于用户输入的键盘。图2F示出了选择“是”确认按钮228a的结果,这可以导致显示输入字段230a-230b,用户101可以通过将指针212指向期望的位置并将输入输入到虚拟现实输入装置134(例如,点击按钮)来选择输入字段230a-230b。图2G示出了在选择输入字段230a之后,利用用户界面元素234(例如,键盘)生成另一专用平面232,用于用户101将他们的信息输入到输入字段230a中。在特定实施例中,专用平面222和专用平面232是单独的平面,引用生成的用户界面元素可显示的空间,以供用户101交互。在特定实施例中,专用平面222可以是专用于第三方内容(例如,弹出窗口、内容、工具、用户界面等)的平面,诸如来自应用等。在特定实施例中,专用平面232可以是专用于OS内容的平面,诸如由系统等生成的用户界面。在特定实施例中,当第三方应用请求OS提供由OS生成的用户界面或内容(例如,第三方应用可以调用OS API来调用系统的虚拟键盘)时,所得到的界面或内容可以在OS的专用平面232中显示。相反,如果第三方应用生成其自己的内容或用户界面,则生成的内容或用户界面可以呈现在专用平面222中。在特定实施例中,专用平面222可以基于诸如深度、布局、风格等多种因素而不同于专用平面232。在特定实施例中,专用平面232可以比专用平面222更靠近虚拟现实环境200中的用户101,以区分专用平面232和专用平面222。通过使专用平面232更近,用户101能够识别专用平面232中的用户界面元素234是OS内容。在特定实施例中,通过区分专用于第三方内容的平面222和专用于OS内容的平面232,可以通过阻止第三方实体生成可用于尝试获取用户101的机密信息的第三方内容来提高用户101的安全性。
图3A至图3C示出了用户101可以参与到虚拟现实环境300中的示例多任务情形。类似于图2A至图2G,客户端系统130可以使用虚拟现实头戴设备132来渲染包括所讨论的虚拟现实元素的虚拟现实环境。图3A示出了虚拟现实环境300,其包括由传感器142、144在背景中收集的传感器数据302以及包括用户101已经选择的应用的面板304、306。图3A示出了用户101利用指针312和指针路径314将虚拟现实输入装置134指向应用(例如,VR游戏)的启动按钮308。在特定实施例中,面板304和面板306可以显示任何种类的选定应用,如上所述。在特定实施例中,面板306可以包括交互字段310(例如,搜索框)。如图3A所示,用户101可以通过将指针312指向期望的位置并将输入输入到虚拟现实输入装置134(例如,点击按钮)来“点击”应用的启动按钮308。
图3B示出了按下启动按钮308的结果,这可以导致虚拟现实环境300根据与面板304中加载的应用(例如,VR游戏)相关的内容而改变。在特定实施例中,虚拟现实环境300不必改变,其可以保持不变。在特定实施例中,面板304的应用的选择可以授权面板304的应用从传感器142、144接收传感器数据302。在特定实施例中,面板304的应用可以请求将传感器数据302发送到面板304的应用,并且客户端系统130可以基于用户101最近与该应用连接(例如,选择应用来启动该应用)来识别授权该应用接收传感器数据302。在特定实施例中,传感器数据302可以用于在应用的环境中与虚拟现实环境300交互,诸如在虚拟现实环境300内移动并且查看虚拟现实环境300的内容。在特定实施例中,传感器数据302可以与特定应用相关联,并且这种信息可以被系统用来确定特定应用(例如,面板304的应用)是否可以访问特定传感器数据302。如图3B所示,用户101可以选择在面板306中显示的应用的交互框310,同时通过将指针312指向期望的位置并将输入输入到虚拟现实输入装置134(例如,点击按钮)来与由面板304的应用生成的虚拟现实环境300进行交互。当用户的交互指向由面板304的应用生成的虚拟现实环境300时,测量的传感器数据302(例如,眼睛跟踪数据、与头戴式装置相关联的位置和方向数据、控制器的移动等)可用于面板304的应用。然而,当用户101与在面板306中显示的应用交互(例如,包括看面板306、指向面板306或在面板306内点击)时,面板304的应用可以限制访问相应的传感器数据。
图3C示出了选择交互框310的结果,这可以导致生成专用平面316并显示用户界面元素318,以接收对交互框310的输入。在特定实施例中,与面板306的应用的交互可以撤销面板304的应用接收传感器数据302的授权,并且授权面板306的应用接收传感器数据302。在特定实施例中,用户与应用的交互或连接活动可以是主动的,诸如点击按钮,以向目标应用发送命令,和/或是被动的,诸如看着目标应用或对目标应用打手势。在特定实施例中,与面板306的应用的交互可以仅授权面板306的应用接收数据,同时保持面板304的应用接收传感器数据302的授权。在特定实施例中,客户端系统130可以识别用户界面元素318的目的,并且可以撤销没有请求用户界面元素318的应用对传感器数据302的访问。作为示例而非通过限制的方式,如果用户界面元素318(例如,键盘)用于输入搜索查询,则其他应用可以保留其访问传感器数据302的授权,但是如果是用于输入用户101的凭证,则其他应用可以撤销其访问传感器数据302的授权。在特定实施例中,客户端系统130可以将传感器数据302绑定到当前活动的应用,该应用可以被定义为用户101当前正在连接的应用。在特定实施例中,客户端系统130可以确定已经生成了用户界面元素318,并且允许将传感器数据302发送到与用户界面元素318相关联的应用。通过停止向面板304的应用发送传感器数据302,客户端系统130可以通过不必要地向用户101当前没有连接的应用发送传感器数据302来提高用户101的安全性。例如,如果传感器数据302继续发送到任何打开的应用,则具有恶意意图的应用可以确定客户端系统130已经激活了需要来自用户101的机密信息的用户界面元素318,并且监视传感器数据302,并且从传感器数据302相当准确地推断用户101的输入。继续该示例,恶意应用可以访问眼睛跟踪数据和运动数据(例如,来自控制器和头戴设备),以缩小用户可以输入到用户界面元素318中的内容的可能性,并且容易猜测输入到用户界面元素318中的机密信息(例如,用户名、密码、生日、社会安全号码等)。在特定实施例中,客户端系统130可以停止仅向任何打开的应用发送传感器数据302的子集。作为示例而非通过限制的方式,客户端系统130可以继续发送位置数据并撤销应用接收眼睛跟踪/头盔定向/手运动数据的授权,其可能被用于潜在地危及用户101的安全。在特定实施例中,用户101可以明确地准许应用继续从客户端系统130接收传感器数据302,即使当用户正在与另一应用交互或者另一应用已经成为活动的应用时。可以为用户101生成接收传感器数据302的授权应用的列表,以维护准许应用的目录。在特定实施例中,应用列表可以添加到白名单或黑名单,以自动确定是否授权特定应用接收传感器数据302。
图4示出了用于区分生成的OS内容和生成的第三方内容并相应地在不同的显示平面中选择性地显示内容的示例方法400。该方法可以开始于步骤410,其中,客户端系统(例如,虚拟现实系统)可以接收在虚拟现实环境中显示用户界面元素的请求。例如,该请求可以来自应用(例如,包括由诸如网络浏览器的应用解译的网页)。在步骤420处,客户端系统可以确定所请求的用户界面元素是系统用户界面(例如,由OS生成的键盘)还是第三方用户界面(例如,由第三方应用生成的键盘,而不是由OS响应于第三方应用的请求/调用而生成的键盘)。在特定实施例中,OS通常可以生成供第三方应用使用的用户界面元素,并且只有某些情况(例如,具有恶意意图的第三方应用)才会生成第三方用户界面元素来接收用户输入。在步骤430处,客户端系统可以执行确定。如果客户端系统确定所请求的用户界面是系统用户界面,则该方法可以前进到步骤440,其中,客户端系统可以为虚拟现实环境的第一专用平面生成系统OS用户界面元素。如果客户端系统确定所请求的用户界面元素不是系统用户界面元素,则该方法可以前进到步骤450,其中,客户端系统可以为虚拟现实环境的第二专用平面生成第三方应用用户界面元素。在特定实施例中,第一专用平面可以不同于第二专用平面。在适当的情况下,特定实施例可以重复图4的方法的一个或多个步骤。尽管本公开将图4的方法的特定步骤描述并示出为以特定顺序发生,但是本公开考虑了以任何合适顺序发生的图4的方法的任何合适步骤。此外,尽管本公开描述并示出了用于将生成的OS内容与生成的第三方内容区分开来的示例方法(包括图4的方法的特定步骤),但是本公开考虑了将生成的OS内容与生成的第三方内容区分开来的任何合适的方法(包括任何合适的步骤),在适当的情况下,这些步骤可以包括图4的方法的所有步骤、一些步骤或不包括任何步骤。此外,尽管本公开描述并示出了执行图4的方法的特定步骤的特定组件、装置或系统,但是本公开考虑了执行图4的方法的任何适当步骤的任何适当组件、装置或系统的任何适当组合。
图5示出了用于向授权应用发送传感器数据的示例方法500。该方法可以从步骤510开始,其中,客户端系统(例如,虚拟现实系统)可以从第三方应用接收访问传感器数据的请求。例如,VR游戏可以请求从客户端系统访问传感器数据,以便用户在VR游戏生成的虚拟现实环境中进行操作。在步骤520处,客户端系统可以确定第三方应用是否是当前活动的应用。在特定实施例中,当前活动的应用可以是与客户端系统相关联的用户当前与之连接的应用。作为示例而非通过限制的方式,客户端系统可以识别用户最后与之交互的应用,诸如选择应用、将指针悬停在应用上等。在步骤530处,客户端系统可以确定用户当前是否正在与第三方应用交互。如果确定用户当前正在与请求传感器数据的应用连接,则在步骤540处,客户端系统可以授权第三方应用从客户端系统接收传感器数据。如果确定用户没有与请求传感器数据的应用连接,则在步骤550处,客户端系统可以阻止第三方应用从客户端系统接收传感器数据。在步骤560处,客户端系统可以向已经授权接收数据的第三方应用发送传感器数据。在适当的情况下,特定实施例可以重复图5的方法的一个或多个步骤。尽管本公开将图5的方法的特定步骤描述并示出为以特定顺序发生,但是本公开考虑了以任何合适顺序发生的图5的方法的任何合适步骤。此外,尽管本公开描述并示出了用于向授权应用发送传感器数据的示例方法(包括图5的方法的特定步骤),但是本公开考虑了向授权应用发送传感器数据的任何合适的方法(包括任何合适的步骤),在适当的情况下,这些步骤可以包括图5的方法的所有步骤、一些步骤或不包括任何步骤。此外,尽管本公开描述并示出了执行图5的方法的特定步骤的特定组件、装置或系统,但是本公开考虑了执行图5的方法的任何适当步骤的任何适当组件、装置或系统的任何适当组合。
图6A至图6C示出了当用户101参与虚拟现实环境600时维护用户界面位置数据库的示例过程。图6A示出了用户101佩戴虚拟现实头戴设备132并使用虚拟现实输入装置134与虚拟现实环境600交互。类似于图2A至图2G,客户端系统130可以使用虚拟现实头戴设备132来渲染包括上述虚拟现实元素的虚拟现实环境。由于用户界面元素(例如,键盘)的当前实现方式在接收来自用户的输入时可以遮挡内容,所以需要更好地定位用户界面元素的位置,以避免遮挡内容和/或显示器的一部分。这是因为内容可能与用户的输入相关或对其感兴趣,诸如用户在表单上回答的问题。此外,当用户在用户界面元素上提供输入时,许多应用可以提供功能。该功能可以是预测输入,诸如某种自动完成功能。然而,在该功能的当前实现方式中,预测输入通常可以位于输入框下方。通常,用户界面元素也可以位于输入框下方,并且因此将遮挡预测输入。这样,用户界面元素需要更好地定位,以允许用户能够看到页面的内容和/或可以向用户显示的其他内容。
在特定实施例中,虚拟现实环境600可以包括显示由用户101选择的应用的面板602。图6A示出了用户101利用指针606和指针路径608将虚拟现实输入装置134指向应用(例如,Facebook)的交互字段604(例如,搜索框)。在特定实施例中,面板602可以显示如上所述的任何类型的应用。如图6A所示,用户101可以通过将指针606指向期望的位置并将输入输入到虚拟现实输入装置134(例如,点击按钮)来“点击”应用的交互字段604。这可以被解释为访问与交互字段框604相关联的用户界面元素的请求。
图6B示出了选择交互字段604的结果,这可以导致生成专用平面610和显示具有用户界面元素614(例如,键盘)的搜索字段框612。在特定实施例中,搜索字段框612可以包括多个预测输入616。预测输入616可以是完成用户101可以选择的搜索框612的输入。作为示例而非通过限制的方式,预测输入616可以是在搜索框612中进行的最近搜索。在特定实施例中,可以选择预测输入616来执行查询。尽管专用平面610被描绘为与面板602分离,但是在特定实施例中,具有其生成的内容(例如,搜索字段框612和用户界面元素614)的专用平面610可以作为面板602的应用的内容嵌入到面板602中。在生成和显示用户界面元素614时,用户界面元素可以遮挡在面板602中显示的应用的一部分。作为示例而非通过限制的方式,用户界面元素614可以遮挡预测输入616。如图6B所示,用户101可以在指针位置606a处选择用户界面元素614,并且沿着路径618将用户界面元素614移动到指针位置606b。虚拟现实环境600可以包括与用户界面元素614相关联的位置数据620,并将位置数据620存储在键盘位置数据库622中。在特定实施例中,位置数据620可以与面板602的应用的其他元素相关联(例如,搜索框612),并且键盘位置数据库622可以是存储与其他元素相关联的位置数据620的通用数据库。
图6C示出了将用户界面元素614移动到指针位置606b的结果。在特定实施例中,客户端系统130可以存储与用户界面元素614的位置相关联的位置数据620。位置数据620可以与特定应用相关联。作为示例而非通过限制的方式,应用(例如,Facebook)可以存储在键盘位置数据库中生成的任何用户界面元素614的位置数据620。键盘位置数据库622可以存储任何应用的位置数据620。数据库622还可以将位置数据620与元数据相关联,诸如识别其动作生成位置数据620的用户的用户标识符、用户的特征(例如,年龄、性别、身高等)、应用的标识符或类型(例如,网络浏览器)、正在使用应用的环境(例如,当正在显示预测输入616时)、当生成位置数据620时应用的显示大小、位置和/或方向等。在特定实施例中,针对特定应用访问用户界面元素614的未来请求可以查询(例如,基于与前述元数据相关联的信息)键盘位置数据库622,以基于存储在键盘位置数据库622中的位置数据620在某个位置生成用户界面元素。例如,如果特定用户101正在特定环境中与特定应用交互(例如,当应用的面板尺寸减小并朝向用户101的视野的底部定位时),则这种信息可以用于查询数据库622,以找到相关的位置数据620,该位置数据620可以用于自动定位虚拟键盘,例如,以最小化其遮挡任何兴趣内容的可能性。
位置数据620可以指示用户界面元素614不遮挡面板602的应用的任何内容的位置。由于应用的内容在确定对用户界面元素614的输入时可能是有帮助的或至关重要的,所以客户端系统130可以识别阻止遮挡应用内容的方式。作为示例而非通过限制的方式,内容的遮挡可能阻止用户101与面板602的应用连接的原因可以包括内容提供信息,以完成字段框(例如,要由字段框回答的问题)、内容可以提供预测输入616以及其他原因。在特定位置处生成用户界面元素614可以阻止遮挡应用的内容。位置数据620可以指示用户101倾向于移动用户界面元素614以与应用交互的区域。在特定实施例中,位置数据620可以包括如上所述与其他元素相关联的位置数据,并且用于在不会遮挡用户界面元素614的内容的位置生成其他元素。作为示例而非通过限制的方式,搜索字段框612的位置数据620可以被存储并用于确定位置,以生成搜索字段框612,从而阻止遮挡内容,诸如用户界面元素614的预测输入616。在特定实施例中,其他元素的位置数据620可以用于在避免遮挡应用的内容的位置处生成和显示用户界面元素614。在特定实施例中,可以为特定应用的多个用户101(例如,虚拟现实或社交网络平台的用户社区)编译位置数据620,以编译键盘位置数据库622的位置数据620。位置数据620的编译可以指示用户101最希望在哪里显示用户界面元素614的趋势。由位置数据620提供的用户界面元素614避免的区域可以指示包含内容的区域和要避免的区域。尽管本公开讨论了通常在平行于面板602的平面内移动用户界面元素614,但是用户101可以在虚拟现实环境600内的任何地方移动用户界面元素614。作为示例而非通过限制的方式,用户101可以在虚拟现实环境600内以三个自由度移动用户界面元素。
图7A至图7B示出了当用户101参与虚拟现实环境700时维护用户界面位置数据库的另一示例过程。图7A示出了用户101与面板702的应用连接。类似于图6B,用户101可能已经选择与交互字段交互,并且可以生成包括搜索字段框706和用户界面元素708的专用平面704。搜索框706可以包括多个预测输入710。客户端系统130还可以将位置数据712存储在键盘位置数据库714中。如图7A所示,用户101可以用虚拟现实输入装置134执行指示移动用户界面元素708的方向的手势716。在特定实施例中,用户101可能需要向虚拟现实输入装置134输入输入(例如,点击按钮),以启动执行手势的过程。在特定实施例中,用户101可能需要将指针(未示出)悬停在用户界面元素708上并执行手势716。
图7B示出了执行手势716的结果,这可以导致用户界面元素708在手势716指定的方向上移动预定量。类似于如上所述的图6C,客户端系统130可以将位置数据712存储在与用户界面元素708相关的键盘位置数据库中,并且以类似的方式使用位置数据712。在特定实施例中,客户端系统130可以存储应用的其他元素的位置数据712。位置数据712可用于确定不遮挡应用702的内容的用户界面元素708的位置。在特定实施例中,用户101可以使用虚拟现实输入装置134的手势来“推动”用户界面元素708(例如,进入屏幕)。在特定实施例中,用户界面元素708可以附接到虚拟现实环境700中的一个虚拟现实输入装置134,并且另一虚拟现实输入装置134可以用于与用户界面元素708交互。在特定实施例中,虚拟现实输入装置134可以包括触摸板,该触摸板可以激活用于一个或多个快速选项的径向菜单。触摸板可以是要在虚拟现实环境700中选择的虚拟触摸板。可选地,触摸板可以是虚拟现实输入装置134的物理组件。一个或多个快速选项可以包括要被激活以执行各种功能的多个选项,诸如返回家庭虚拟现实环境、关闭虚拟现实环境等。
图8示出了用于在虚拟现实环境中生成用户界面元素的示例方法800。该方法可以从步骤810开始,其中,客户端系统(例如,虚拟现实系统)可以接收访问应用的虚拟现实环境中的用户界面元素(例如,由应用生成的键盘)的请求。在步骤820处,客户端系统可以在虚拟现实环境中的第一位置处生成用户界面元素,遮挡应用的一部分。例如,可以生成键盘,以供用户连接,其可以覆盖应用的内容(例如,与用户用键盘回答的问题相关的文本)。在步骤830处,客户端系统可以检测将用户界面元素相对于应用的显示区域从虚拟现实环境中的第一位置移动到虚拟现实环境中的第二位置的输入。例如,用户可以在键盘上进行点击和保持,以将键盘拖动到虚拟现实环境中的另一位置。在另一示例中,用户可以执行将键盘从一个位置移动到另一位置的滑动手势。在步骤840处,客户端系统可以将与虚拟现实环境的第二位置相关联的位置数据存储在专用于该应用的位置数据库中。例如,客户端系统可以存储特定应用(例如,Facebook)的键盘位置数据。在步骤850处,客户端系统可以接收访问应用的虚拟现实环境中的用户界面元素的另一请求。在步骤860处,客户端系统可以向位置数据库查询特定于应用的位置数据。在步骤870处,客户端系统可以基于特定于应用的位置数据在虚拟现实环境中的某个位置处生成用户界面元素。例如,客户端系统可以确定不遮挡虚拟现实环境中的应用的内容的位置,并在该位置处显示用户界面元素。在适当的情况下,特定实施例可以重复图8的方法的一个或多个步骤。尽管本公开将图8的方法的特定步骤描述并示出为以特定顺序发生,但是本公开考虑了以任何合适顺序发生的图8的方法的任何合适步骤。此外,尽管本公开描述并示出了用于在虚拟现实环境中生成用户界面元素的示例方法(包括图8的方法的特定步骤),但是本公开考虑了用于在虚拟现实环境中生成用户界面元素的任何合适的方法(包括任何合适的步骤),在适当的情况下,这些步骤可以包括图8的方法的所有步骤、一些步骤或不包括步骤。此外,尽管本公开描述并示出了执行图8的方法的特定步骤的特定组件、装置或系统,但是本公开考虑了执行图8的方法的任何适当步骤的任何适当组件、装置或系统的任何适当组合。
图9A至图9H示出了在虚拟现实环境900中复制和粘贴内容的示例过程。图9A示出了用户101佩戴虚拟现实头戴设备132并使用虚拟现实输入装置134与虚拟现实环境600交互。类似于图2A至图2G,客户端系统130可以使用虚拟现实头戴设备132来渲染包括上述虚拟现实元素的虚拟现实环境。在特定实施例中,虚拟现实环境900可以包括显示由用户101选择的应用的面板902。在面板902中显示的应用(例如,Facebook)可以包括多个帖子904。帖子904可以包含文本、图像、到网站的链接以及通常在在线社交网络的帖子上找到的其他内容。图9A示出了用户101可以用指针906和指针路径908将虚拟现实输入装置134指向应用的帖子904。如图9A所示,用户101可以沿着从第一指针位置906a到第二指针位置906b的路径910来封装帖子904的内容。在特定实施例中,客户端系统130可以连续存储虚拟现实输入装置134的位置数据,并确定在预定时间量内做出手势的时间。作为示例而非通过限制的方式,客户端系统130可以监控指针906在面板902上的位置,并确定在短时间帧(例如,3秒)内做出包围内容(例如,循环、圆等)的手势的时间。在特定实施例中,用户101可能需要向虚拟现实输入装置134输入输入(例如,点击按钮),以启动手势。
图9B示出了执行手势并沿着路径910的结果,这可以使得在文本框912中突出显示由路径910包围的帖子904的内容,并且出现选项框914。选项框914可以包括多个选项916,诸如“复制”916a、“粘贴”916b和“调整复制文本的大小”916c。在特定实施例中,选项框914可以包括其他选项916,并移除一些选项916。可选地,在特定实施例中,可以生成包含位于虚拟现实环境900内的虚拟现实输入装置134上的选项916的径向菜单。所示内容可以在文本框912中包括由路径910包围的文本。试探法可用于确定手势包含什么内容。在特定实施例中,如果单词是部分包围的,则该单词可以包括在文本框912中。虽然本公开将内容描述为文本,但是本公开考虑了图片和应用的其他内容。作为示例而非通过限制的方式,路径910可以至少部分包围图像,并且可以选择图像来复制到内容的临时存储。
图9C示出了用户101能够通过将指针906指向期望的位置并将输入输入到虚拟现实输入装置134(例如,点击按钮)来选择“调整复制文本的大小”选项916c。在特定实施例中,“调整复制文本的大小”选项916c的选择可以执行启动文本框912的尺寸调整过程的指令。图9D示出了选择选项916c的结果,其可以允许用户101输入一个或多个输入,来确定文本框912的左侧和右侧。如图9D所示,用户101可以通过在指针位置918a处的指针路径920用指针918选择文本框912的角,并且通过沿着路径922来将指针918移动到第二指针位置918b。尽管图9D示出了调整文本框912大小的特定方法,但是在特定实施例中,用户101可以简单地选择文本框912两侧的位置。在特定实施例中,可能要求用户101在调整文本框912的大小时保持对虚拟现实输入装置134的输入(例如,按住按钮)。图9E示出了将指针918从指针位置918a移动到指针位置918b的结果,这可以调整文本框912的大小。在特定实施例中,虚拟现实输入装置134可以被设置为调整尺寸模式,并且模拟杆或输入在方向板中的移动可以导致文本框912一次调整一个字符的大小。用户101保持方向板的模拟杆或特定方向越长,可以增加文本框912的尺寸调整速度(例如,每秒一次两个字符)。
图9F示出了调整文本框912的大小的结果,这可以重新显示选项框914。在特定实施例中,当用户101释放虚拟现实输入装置134上的输入(例如,释放按钮)时,可以结束尺寸调整过程。在特定实施例中,当用户101向虚拟现实输入装置134输入输入(例如,点击按钮)以结束尺寸调整过程时,可以结束尺寸调整过程。如图9F所示,用户101可以选择选项916a来执行复制指令。复制指令可以将文本框912的内容存储在临时存储器中。在特定实施例中,复制指令也可以在图像上执行。
图9G示出了用户101在面板902的应用内与消息线程924连接。消息线程924可以包括在线社交网络的用户101和另一用户101之间的先前对话的内容。消息线程924可以包括响应框926,用于用户101输入要输入到消息线程924中的文本。如图9G所示,选项框914显示有选项916。选项框914可以响应于从虚拟现实输入装置134接收到显示选项框914的输入而显示。如图9G所示,用户101可以通过将指针906指向期望的位置并将输入输入到虚拟现实输入装置134(例如,点击按钮)来选择将执行粘贴指令的“粘贴”选项916b。图9H示出了选择选项916b的结果,选项916b执行粘贴功能并输入从临时存储器检索的文本框912的复制内容。
图10示出了用于在虚拟现实环境中复制和粘贴内容的示例方法1000。该方法可以从步骤1010开始,其中,客户端系统(例如,虚拟现实系统)可以接收与用户做出的手势相关联的位置数据。作为示例而非通过限制的方式,位置数据可以与投影到虚拟现实环境中的表面上的虚拟现实输入装置的指针的位置相关联。在步骤1020处,客户端系统可以基于虚拟现实环境中位置数据的投影来确定在虚拟现实环境中的表面上绘制的路径。例如,客户端系统可以确定虚拟现实输入装置的指针在过去几秒钟的位置。在步骤1030处,客户端系统可以识别由路径包围的一个或多个单词,该一个或多个单词显示在虚拟现实环境中的表面上。例如,客户端系统可以基于相对于单词的位置数据的路径的位置数据来识别由路径包围的单词。在步骤1040处,客户端系统可以接收来自用户的指令,以复制由路径包围的一个或多个单词。在步骤1050处,客户端系统可以从用户接收指示虚拟现实环境中的位置的输入。例如,用户可以指向在线社交网络上的帖子的评论框。在步骤1060处,客户端系统可以从用户接收粘贴一个或多个单词的另一指令。在步骤1070处,客户端系统可以显示已经在用户指示的位置处复制的一个或多个单词。在适当的情况下,特定实施例可以重复图10的方法的一个或多个步骤。尽管本公开将图10的方法的特定步骤描述并示出为以特定顺序发生,但是本公开考虑了以任何合适顺序发生的图10的方法的任何合适步骤。此外,尽管本公开描述并示出了用于在虚拟现实环境中复制和粘贴内容的示例方法(包括图10的方法的特定步骤),但是本公开考虑了用于在虚拟现实环境中复制和粘贴内容的任何合适的方法(包括任何合适的步骤),在适当的情况下,这些步骤可以包括图10的方法的所有步骤、一些步骤或不包括步骤。此外,尽管本公开描述并示出了执行图10的方法的特定步骤的特定组件、装置或系统,但是本公开考虑了执行图10的方法的任何适当步骤的任何适当组件、装置或系统的任何适当组合。
图11A至图11C示出了在虚拟现实环境1100中利用重定向模式的示例过程。图11A示出了用户101在卧室环境中佩戴虚拟现实头戴设备132。类似于图2A至图2G,客户端系统130可以使用虚拟现实头戴设备132来渲染包括上述虚拟现实元素的虚拟现实环境。在特定实施例中,用户101可以坐在床1102上,同时看到虚拟现实环境1100,虚拟现实环境1100可以包括生成的虚拟现实元素1104(例如,剧院舞台)和显示用户101已经选择的内容和/或应用(例如,视频)的面板1106。面板1106可以相对于虚拟现实环境1100中的位置固定。在特定实施例中,面板1106可以耦接到锚点1108,锚点1108相对于虚拟现实环境1100中的位置是固定的。如图11A所示,用户101可以具有:他的视野的中心线1110,该中心线可以位于面板1106的中间;他的视野的顶线1112,创建关于他能看到的最外面的内容的上限;以及他的视野的底线1114,创建关于他能看到的最外面的内容的下限。作为示例而非通过限制的方式,用户101的视野可以限制在虚拟现实环境1100内,并且用户101可能只能看到面板1106并且部分地看到生成的虚拟现实元素1104。在特定实施例中,锚点1108可以是透明的,并且仅示出,用于参考面板1106。
虽然面板1106在空间上是固定的(即,相对于虚拟环境1100是固定的),但是当用户转动他的头时,虚拟现实装置可以如预期的那样相应地调整向用户显示的内容。例如,当用户的视野向左移动时,虚拟现实装置将渲染面板1106左侧(从用户的参考点)的虚拟环境1100的相应部分,潜在地导致面板1106的右侧在用户的视野之外。因此,除非用户向前看面板1106,否则用户可能看不到整个面板1106。相反,如果虚拟环境1100相对于用户的头戴设备是固定的,则用户可以看到整个面板1106,而不管他的观看方向如何。然而,这样做也将导致其他虚拟现实元素(诸如剧院舞台1104、虚拟剧院中的座位排、其他虚拟电影观众等)也可以跟踪用户的头戴设备,并失去在虚拟环境中的物理真实感。例如,无论用户如何转动他的头,所显示的都将保持不变(例如,用户将继续看到他正前面的面板1106)。
在特定实施例中,用户101可以启用面板1106的重定向模式,以适应用户的物理观看方向(例如,斜倚),而不影响用户的虚拟现实体验的其余部分。作为示例而非通过限制的方式,用户101可以通过按压虚拟现实输入装置134(未示出)上的按钮来启用重定向模式。作为另一示例而非通过限制的方式,用户101可以按压虚拟现实按钮,以通过将虚拟现实输入装置134的指针移向该按钮并将输入输入到虚拟现实输入装置134中(例如,点击按钮)来启用重定向模式。例如,锚点1108可以是启用重定向模式的按钮。
图11B示出了启用面板1106的重定向模式的结果,这可以允许用户101改变位置,并且面板1106沿着用户视野的中心线1110。在特定实施例中,生成的虚拟现实元素1104可以停留在虚拟现实环境1100内的相同位置,但是面板1106可以跟随用户的头部运动。客户端系统130可以接收指示用户101的视点变化的传感器数据,并根据传感器数据重定向面板1106。可以从虚拟现实头戴设备132接收传感器数据。在特定实施例中,传感器数据可以包括由任意数量的加速度计、陀螺仪、磁力计和眼睛跟踪传感器生成的传感器数据。如图11B所示,用户101可以继续路径1116,以躺在他的床1102上。
图11C示出了用户101继续沿着路径1116移动的结果,这可能导致面板1106在床1102上方的用户101前面重定向自身。在特定实施例中,用户101可以禁用重定向模式,类似于用户101如何启用重定向模式。重定向模式的禁用可以相对于虚拟现实环境1100中的这个新位置来固定面板1106。在特定实施例中,重定向模式的禁用可以是释放虚拟现实输入装置134上的按钮的结果(例如,在重定向模式要求用户按压并保持按钮的情况下)。在特定实施例中,锚点1108相对于虚拟现实环境1100中的新位置是固定的。如图11C所示,用户101可能由于他自己重定向到床上而无法看到生成的虚拟现实元素1104(例如,剧院舞台),这是当抬起头时的现实的、预期的结果。以类似的方式,用户可以使用重定向模式来调整要以任何期望的位置/方向附着到虚拟现实环境的内容显示面板,以适应用户的任何期望的物理观看方向(例如,躺下、斜倚等),同时一旦设置面板,就保持虚拟现实体验的真实感。尽管仅示出了一个面板1106,但是本公开考虑了具有耦接到锚点的多个面板,锚点可以类似于面板1106重定向。在特定实施例中,通过使用多个面板,用户101可以选择性地重定向虚拟现实环境1100内的特定面板。
图12A至图12E示出了在移动车辆1202内部生成的虚拟现实环境1200中利用重定向模式的示例过程。图12A示出了虚拟现实环境1200中乘客侧1204的车辆1202内的用户101。即,用户101正在车辆1202内使用虚拟现实头戴设备132。类似于图2A至图2G,客户端系统130可以使用虚拟现实头戴设备132来渲染包括上述虚拟现实元素的虚拟现实环境。车辆1202可以通过沿着路径1206行驶并准备转弯。在特定实施例中,虚拟现实环境1200可以包括生成的虚拟现实元素1208(例如,剧院舞台)和面板1210内容和/或用户101已经选择的应用(例如,视频)。面板1210可以相对于虚拟现实环境1200中的位置固定。初始位置1212可以被示为对用户101在虚拟现实环境1200中的初始方向的参考。如图12A所示,用户101可以具有:其视野的中心线1214,该中心线1214可以位于面板1210的中间;其视野的右边线1216,创建关于他能看到的最外面的内容的右边界;以及其视野的左边线1218,创建关于他能看到的最外面的内容的左边界。这三条不同的线1214、1216、1218可以创建用户101的视野1220。
在移动车辆中使用虚拟现实装置的一个问题是车辆的移动(例如,加速度、转弯、振动等)可能影响虚拟现实应用确定应该向用户显示的内容。例如,当车辆转弯时,虚拟现实装置的传感器(例如,惯性测量单元、陀螺仪、加速度计等)可以检测到已经转弯,并且作为响应,移动用户的虚拟视点,即使用户没有相对于车辆移动。因此,即使用户可能期望看到相同的场景,该场景也可能由于车辆的移动而漂移。这种效果可能会降低用户的体验,甚至使某种应用在移动的车辆中实际上不可用。
在特定实施例中,用户101可以启用用于与虚拟现实头戴设备132一起行驶的重定向模式。“行驶模式”可以响应于检测到的移动动态地调整和重定向虚拟现实环境1200,以将生成的虚拟现实元素1208和面板1210重新对准回到初始位置1212所指示的初始方向。在特定实施例中,对行进的重定向模式的启用可以捕捉生成的虚拟现实元素1208和面板1210的初始方向。用户101可以启用用于行驶的重定向模式,类似于如上所述的虚拟现实面板1106的重定向模式的启用。
图12A至图12E示出了在移动车辆1202内部生成的虚拟现实环境1200中利用重定向模式的示例过程。如图12A所示,当车辆1202沿着路径1206转弯时,生成的虚拟现实元素1208和面板1210可以沿着路径1222。
图12B示出了车辆1202沿着路径1206的结果。车辆的移动可以导致所生成的虚拟现实元素1208的部分在用户1220的视野之外重定向(因为虚拟现实装置可能认为用户头部在转动)。这可能是由于车辆1202沿着路径1206执行转弯而导致客户端系统130经历惯性运动或加速度的结果。客户端系统130可能正在接收连续指示方向变化的传感器数据,并且客户端系统130可能错误地将传感器数据确定为用户101的位置变化,并因此重定向虚拟现实环境1200。初始位置1212可以保持在相同的位置,以示出虚拟现实环境1200由于传感器数据而重定向。如图12B所示,车辆1202可以继续沿着路径1206完成转弯,并且类似地,生成的虚拟现实元素1208可以继续在用户视野1220之外重定向。
图12C示出了车辆1202通过沿着路径1206完成转弯的结果,这进一步将生成的虚拟现实元素1208和1210移动到用户101的视图左线1218的边界。生成的虚拟现实元素1208可以进一步推到用户101的视野1220之外。如图12C所示,车辆1202可以沿着路径1206继续,路径1206不是直的,并且生成的虚拟现实元素1208和面板1210可以沿着初始位置1212重定向其自身,以返回到初始定向。
图12D示出了车辆1202沿着路径1206的结果,其中,生成的虚拟现实元素1208和面板1210开始与初始位置1212重新对准,以返回到初始方向。作为与初始位置1212重新对准的结果,生成的虚拟现实元素1208可以开始返回到用户101的视野1220中。如图12D所示,车辆1202可以沿着路径1206继续,并且生成的虚拟现实元素1208和面板1210可以继续与初始位置1212重新对准。
图12E示出了车辆1202沿着路径1206的结果,其中,生成的虚拟现实元素1208和面板1210与初始位置1212重新对准并返回到初始方向。在特定实施例中,客户端系统130可以确定方向变化是由于车辆1202的运动,并且响应于确定方向变化是由于车辆1202的运动,而执行重新调整。作为示例而非通过限制的方式,客户端系统130可以接收指示方向变化的传感器数据,并且可以进一步确定方向变化可以归因于用户101正在占用的车辆1202的车辆运动。为了确定方向变化归因于车辆运动而不是用户运动,客户端系统130可以接收信息,诸如虚拟现实头戴设备132和相应用户101的地理位置。作为示例而非通过限制的方式,如果客户端系统130确定在预定时间量内地理位置有很大变化,则可以假设用户101在移动的车辆1202内,并且如上所述执行方向的重新调整。在特定实施例中,客户端系统130可以接收指示客户端系统130的转弯速度的信息。作为另一示例而非通过限制的方式,如果客户端系统130确定转弯速度低于阈值转弯速度,则可以假设用户101在车辆(例如,飞机)内,并且如上所述执行方向的重新调整。在特定实施例中,客户端系统130可以接收指示客户端系统130的全球定位系统(GPS)信号的信息和指示车辆1202的行驶路线的信息(例如,导航数据)。作为示例而非通过限制的方式,客户端系统130可以确定弯曲和转弯可以出现在行进路线内的时间,并且如上所述通过考虑弯曲和/或转弯将影响虚拟现实环境1200的方向的效果,来动态地重新调整虚拟现实环境1200的方向。例如,通过使用车辆的速度和车辆行驶的方向,可以结合它们可能出现在行驶路线上的时间来执行由于车辆运动引起的调整。在特定实施例中,运动传感数据(例如,由惯性测量单元检测到的)可以与GPS数据进行比较,以评估运动传感数据归因于车辆运动的可能性。例如,如果运动传感数据指示正在转弯,并且GPS数据也指示转弯,则系统可以推断出检测到的运动是由于移动的车辆而不是用户造成的。另一方面,如果GPS数据指示用户是静止的或者以与运动传感器数据不一致的方式移动(例如,GPS数据可以指示用户正沿着与惯性测量单元检测到的转弯不同的方向直线前进或者转弯),则检测到的运动可以归因于用户移动,并且装置可以相应地做出响应。在特定实施例中,可以在预定的时间间隔(例如,3秒)内完成将用户101的视野1220重新调整回初始方向,以便虚拟现实环境1200不会变化太快而导致用户101晕车和/或变化太慢而给用户101带来不便。
图13示出了用于在虚拟现实环境中利用重定向模式的示例方法1300。该方法可以从步骤1310开始,其中,客户端系统(例如,虚拟现实系统)可以生成虚拟现实面板,来显示虚拟现实环境中的内容。虚拟现实面板可以相对于虚拟现实环境中的位置固定。作为示例而非通过限制的方式,客户端系统可以在虚拟现实电影院的中心生成视频显示或网页显示。在步骤1320处,客户端系统可以接收输入,以在虚拟现实环境中启用虚拟现实面板的第一重定向模式。第一重定向模式可以允许虚拟现实面板相对于用户的视点重定向。在步骤1330处,客户端系统可以接收指示用户的视点变化的传感器数据。例如,加速计、陀螺仪、磁力计和眼睛跟踪传感器的传感器数据可以由客户端系统收集并处理,以确定用户的视点是否有变化。在步骤1340处,客户端系统可以基于接收到的传感器数据来重定向虚拟现实面板。例如,虚拟现实面板可以跟随用户的视点。在步骤1350处,当虚拟现实面板位于虚拟现实环境中的新位置时,客户端系统可以接收禁用第一重定向模式的输入。第一重定向模式的禁用可以相对于虚拟现实环境中的新位置来固定虚拟现实面板。在适当的情况下,特定实施例可以重复图13的方法的一个或多个步骤。尽管本公开将图13的方法的特定步骤描述并示出为以特定顺序发生,但是本公开考虑了以任何合适顺序发生的图13的方法的任何合适步骤。此外,尽管本公开描述并示出了用于在虚拟现实环境中利用重定向模式的示例方法(包括图13的方法的特定步骤),但是本公开考虑了在虚拟现实环境中利用重定向模式的任何合适的方法(包括任何合适的步骤),在适当的情况下,可以包括图13的方法的所有步骤、一些步骤或不包括任何步骤。此外,尽管本公开描述并示出了执行图13的方法的特定步骤的特定组件、装置或系统,但是本公开考虑了执行图13的方法的任何适当步骤的任何适当组件、装置或系统的任何适当组合。
图14示出了示例计算机系统。在特定的实施方式中,一个或多个计算机系统1400执行在本文中描述或示出的一个或多个方法的一个或多个步骤。在特定的实施方式中,一个或多个计算机系统1400提供在本文中描述或示出的功能。在特定的实施方式中,在一个或多个计算机系统1400上运行的软件执行在本文中描述或示出的一个或多个方法的一个或多个步骤,或者提供在本文中描述或示出的功能。特定的实施方式包括一个或多个计算机系统1400的一个或多个部分。在本文中,在适当的情况下,计算机系统的引用可以包括计算装置,反之亦然。而且,在适当的情况下,计算机系统的引用可以包括一个或多个计算机系统。
本公开考虑任何适当数量的计算机系统1400。本公开考虑采用任何合适的物理形式的计算机系统1400。作为示例,并非通过限制的方式,计算机系统1400可为嵌入式计算机系统、片上系统(SOC)、单板计算机系统(SBC)(诸如,例如计算机模块(COM)或系统模块(SOM))、台式电脑系统、膝上型或笔记本式电脑系统、交互式自助服务机、主机、计算机系统的网格、移动电话、个人数字助理(PDA)、服务器、平板电脑系统、或其中的两个或多个的组合。在适当的情况下,计算机系统1400可包括一个或多个计算机系统1400;可为单一式或分布式;跨过多个位置;跨过多台机器;跨过多个数据中心;或者位于云中,其在一个或多个网络中可包括一个或多个云组件。在适当的情况下,一个或多个计算机系统1400可执行在本文中描述或示出的一个或多个方法的一个或多个步骤,无需大量空间或时间限制。作为示例,并非通过限制的方式,一个或多个计算机系统1400可实时或以成批的方式执行在本文中描述或示出的一个或多个方法的一个或多个步骤。在适当的情况下,一个或多个计算机系统1400可在不同的时间或者在不同的位置执行在本文中描述或示出的一个或多个方法的一个或多个步骤。
在特定的实施方式中,计算机系统1400包括处理器1402、存储器1404、储存器1406、输入/输出(I/O)界面1408、通信界面1410以及总线1412。虽然本公开描述和显示了在特定的设置中具有特定数量的特定组件的特定计算机系统,但是本公开预期在任何合适的设置中具有任何合适的数量的任何合适的组件的任何合适的计算机系统。
在特定的实施方式中,处理器1402包括用于执行指令的硬件,诸如构成计算机程序的那些指令。作为示例,并非通过限制的方式,为了执行指令,处理器1402可从内部寄存器、内部高速缓存、存储器1404或储存器1406中检索(或提取)指令;将这些指令解码并且执行这些指令;并且然后将一个或多个结果写入内部寄存器、内部高速缓存、存储器1404或储存器1406中。在特定的实施方式中,处理器1402可以包括用于数据、指令或地址的一个或多个内部高速缓存。本公开预期处理器1402在适当的情况下包括任何合适数量的任何合适的内部高速缓存。作为示例,并非通过限制的方式,处理器1402可以包括一个或多个指令高速缓存、一个或多个数据高速缓存、以及一个或多个转译后备缓冲器(TLB)。在指令高速缓存内的指令可以是在存储器1404或储存器1406内的指令的副本,并且指令高速缓存可以加速由处理器1402检索那些指令。在数据高速缓存内的数据可以是在存储器1404或储存器1406内的数据的副本,用于要起作用的在处理器1402上执行的指令;在处理器1402上执行的先前指令的结果由在处理器1402上执行的后续指令访问或者写入存储器1404或储存器1406内;或者其他合适的数据。数据高速缓存可以加速处理器1402的读取或写入操作。TLB可以加速处理器1402的虚拟地址转译。在特定的实施方式中,处理器1402可以包括用于数据、指令或地址的一个或多个内部寄存器。在适当的情况下,本公开预期处理器1402包括任何合适数量的任何合适的内部寄存器。在适当的情况下,处理器1402可以包括一个或多个算术逻辑单元(ALU);是多核处理器;或者包括一个或多个处理器1402。虽然本公开描述和显示了特定的处理器,但是本公开预期任何合适的处理器。
在特定的实施方式中,存储器1404包括主存储器,用于储存要执行的处理器1402的指令或者要起作用的处理器1402的数据。作为示例,并非通过限制的方式,计算机系统1400可将指令从储存器1406或另一个源(例如,另一个计算机系统1400)中装载到存储器1404中。然后,处理器1402可将指令从存储器1404中装载到内部寄存器或内部高速缓存中。为了执行这些指令,处理器1402可从内部寄存器或内部高速缓存中检索指令,并且将这些指令解码。在执行指令期间或之后,处理器1402可将一个或多个结果(这些结果可为中间或最终结果)写入内部寄存器或内部高速缓存中。然后,处理器1402可将这些结果中的一个或多个写入存储器1404中。在特定的实施方式中,存储器1404仅仅执行在一个或多个内部寄存器或内部高速缓存内或者在存储器1404内(与储存器1406相反或者在别处)的指令,并且仅仅操作在一个或多个内部寄存器或内部高速缓存内或者在存储器1404内(与储存器1406相反或者在别处)的数据。一个或多个内存总线(这些总线均可包括地址总线和数据总线)可使处理器1402与存储器1404耦接。如下所述,总线1412可包括一个或多个内存总线。在特定的实施方式中,一个或多个内存管理单元(MMU)位于处理器1402与存储器1404之间,并且有助于访问由处理器1402请求的存储器1404。在特定的实施方式中,存储器1404包括随机存取存储器(RAM)。在适当的情况下,该RAM可为易失性存储器。在适当的情况下,该RAM可为动态RAM(DRAM)或静态RAM(SRAM)。而且,在适当的情况下,该RAM可为单端口或多端口RAM。本公开预期任何合适的RAM。在适当的情况下,存储器1404可以包括一个或多个存储器1404。虽然本公开描述和显示了特定的存储器,但是本公开预期任何合适的存储器。
在特定的实施方式中,储存器1406包括用于数据或指令的大容量存储器。作为示例,并非通过限制的方式,储存器1406可包括HDD、软盘驱动器、闪速存储器、光盘、磁光盘、磁带或通用串行总线(USB)驱动器或其中的两个或多个的组合。在适当的情况下,储存器1406可包括可移动或固定的(或固定的)介质。在适当的情况下,储存器1406可位于计算机系统1400的内部或外部。在特定的实施方式中,储存器1406是非易失性固态存储器。在特定的实施方式中,储存器1406包括只读存储器(ROM)。在适当的情况下,该ROM可为掩膜编程的ROM、可编程的ROM(PROM)、可擦PROM(EPROM)、电可擦PROM(EEPROM)、电可改写ROM(EAROM)、或闪速存储器或其中的两个或多个的组合。本公开预期采用任何合适的物理形式的大容量储存器1406。在适当的情况下,储存器1406可以包括促进在处理器1402与储存器1406之间通信的一个或多个储存控制单元。在适当的情况下,储存器1406可以包括一个或多个储存器1406。虽然本公开描述和显示了特定的储存器,但是本公开预期任何合适的储存器。
在特定的实施方式中,I/O界面1408包括硬件、软件或两者,其提供一个或多个界面,用于在计算机系统1400与一个或多个I/O装置之间进行通信。在适当的情况下,计算机系统1400可包括这些I/O装置中的一个或多个。这些I/O装置中的一个或多个能够在个人与计算机系统1400之间进行通信。作为示例,并非通过限制的方式,I/O装置可包括键盘、按键、麦克风、显示器、鼠标、打印机、扫描仪、扬声器、静物照相机、唱针、平板电脑、触摸式屏幕、轨迹球、摄影机、另一个合适的I/O装置或其中的两个或多个的组合。I/O装置可包括一个或多个传感器。本公开考虑任何合适的I/O装置以及用于这些I/O装置的任何合适的I/O界面1408。在适当的情况下,I/O界面1408可包括一个或多个装置或软件驱动器,其能够允许处理器1402驱动这些I/O装置中的一个或多个。在适当的情况下,I/O界面1408可包括一个或多个I/O界面1408。虽然本公开描述和显示了特定的I/O界面,但是本公开考虑任何合适的I/O界面。
在特定的实施方式中,通信界面1410包括硬件、软件或两者,其提供一个或多个界面,用于在计算机系统1400与一个或多个其他计算机系统1400或一个或多个网络之间进行通信(诸如,例如基于分组的通信)。作为示例,并非通过限制的方式,通信界面1410可包括网络界面控制器(NIC)、或用于与以太网或其他有线网络或无线NIC(WNIC)进行通信的网络适配器、或用于与无线网络(诸如WI-FI网络)进行通信的网络适配器。本公开考虑任何合适的网络以及用于该网络的任何合适的通信界面1410。作为示例,并非通过限制的方式,计算机系统1400可与自组织网络、个人区域网络(PAN)、局域网(LAN)、广域网(WAN)、城域网(MAN)、或互联网的一个或多个部分或其中的两个或多个的组合进行通信。这些网络中的一个或多个的一个或多个部分可以是有线的或无线的。作为示例,计算机系统1400可与无线PAN(WPAN)(诸如,例如BLUETOOTH WPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(诸如,例如全球移动通讯系统(GSM)网络)、或其他合适的无线网络或其中的两个或多个的组合进行通信。在适当的情况下,计算机系统1400可以包括用于这些网络中的任一个的任何合适的通信界面1410。在适当的情况下,通信界面1410可以包括一个或多个通信界面1410。虽然本公开描述和显示了特定的通信界面,但是本公开考虑任何合适的通信界面。
在特定的实施方式中,总线1412包括硬件、软件或两者,其使计算机系统1400的组件彼此耦接。作为示例,并非通过限制的方式,总线1412可包括加速图形端口(AGP)或其他图形总线、增强型工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准结构(ISA)总线、无限带宽互连、低脚位(LPC)总线、内存总线、微通道结构(MCA)总线、外围部件互连(PCI)总线、PCI高速(PCIe)总线、串行高级技术附件(SATA)总线、视频电子标准协会本地(VLB)总线、或另一个合适的总线或其中的两个或多个的组合。在适当的情况下,总线1412可包括一个或多个总线1412。虽然本公开描述和显示了特定的总线,但是本公开考虑任何合适的总线或互连。
在本文中,在适当的情况下,计算机可读非暂时性存储介质或媒介可包括基于半导体的或者其他集成电路(IC)(诸如,例如现场可编程门阵列(FPGA)或专用IC(ASIC))、硬盘驱动器(HDD)、混合硬盘驱动器(HHD)、光盘、光盘驱动器(ODD)、磁光盘、磁光驱动器、软盘、软盘驱动器(FDD)、磁带、固态驱动器(SSD)、RAM驱动器、安全数字卡、安全数字卡或驱动器、另一个合适的计算机可读非暂时性存储介质、或者其中的两个或多个的任何合适的组合。在适当的情况下,计算机可读非暂时性存储介质可为易失性、非易失性或者易失性和非易失性的组合。
在本文中,除非另有明确规定或者在上下文中另有明确规定,否则“或”具有包括而非排除的意思。因此,在本文中,除非另有明确规定或者在上下文中另有明确规定,否则“A或B”表示“A和/或B”。而且,除非另有明确规定或者在上下文中另有明确规定,否则“和”具有共同和单独的意思。因此,在本文中,除非另有明确规定或者在上下文中另有明确规定,否则“A和B”表示“共同或单独的A和B”。
本公开的范围包括本领域的技术人员会理解的在本文中描述或示出的示例实施方式的所有变化、替换、变动、变更以及修改。本公开的范围不限于在本文中描述或示出的示例实施方式。而且,虽然本公开描述和显示了在本文中相应的实施方式包括特定的组件、元件、特征、功能、操作或步骤,但是这些实施方式中的任一个可以包括本领域的技术人员会理解的在本文中的任何地方描述或示出的任何组件、元件、特征、功能、操作或步骤的任何组合或排列。此外,只要适合于、被设置为、能够、被配置为、启用、可用于或者有效地执行一个特定的功能的设备、系统、或装置或系统的组件这样适合、设置、能够、配置、启用、可用或者有效,就无论是否激活、打开或开启该设备、系统、组件或该特定的功能,在所附权利要求中引用该设备、或系统、或组件都包括该设备、系统、组件。此外,尽管本公开将特定实施例描述或示出为提供特定优点,但是特定实施例可以不提供这些优点、提供某些或全部这些优点。

Claims (20)

1.一种方法,包括由客户端系统:
接收在虚拟现实环境中显示用户界面元素的请求;
确定所请求的用户界面元素是由在所述客户端系统上运行的操作系统生成的系统用户界面元素还是由第三方应用或基于第三方内容生成的第三方用户界面元素;并且
选择性地在所述虚拟现实环境的第一专用平面或第二专用平面中显示所述用户界面元素,其中:
当确定所请求的用户界面元素是系统用户界面元素时,在所述虚拟现实环境的所述第一专用平面中显示所请求的用户界面元素;或者
当确定所请求的用户界面元素是第三方用户界面元素时,在所述虚拟现实环境的所述第二专用平面中显示所请求的用户界面元素;
其中,所述第一专用平面与所述第二专用平面不同。
2.根据权利要求1所述的方法,还包括:
从第一第三方应用接收访问传感器数据的请求;
确定所述第一第三方应用是否是当前活动的应用,其中,所述当前活动的应用是正在和与所述客户端系统相关联的用户交互的当前应用;
基于所述第一第三方应用是否是所述当前活动的应用的确定,选择性地授权或阻止所述第三方应用接收传感器数据,其中:
在确定所述第一第三方应用是所述当前活动的应用时,授权所述第一第三方应用从所述客户端系统接收传感器数据;或者
在确定所述第一第三方应用不是所述当前活动的应用时,阻止所述第一第三方应用从所述客户端系统接收传感器数据;并且
响应于确定所述第一第三方应用被授权接收传感器数据,将所述传感器数据发送到所述第一第三方应用。
3.根据权利要求2所述的方法,其中,所述传感器数据包括陀螺仪数据、加速度计数据、磁力计数据和眼睛跟踪数据中的至少一个。
4.根据权利要求2所述的方法,还包括:
从所述用户接收授权,以授权第二第三方应用从所述客户端系统接收传感器数据;并且
当所述第一第三方应用是所述当前活动的应用时,基于所述授权向所述第二第三方应用发送所述传感器数据。
5.根据权利要求2所述的方法,其中,授权所述第一第三方应用从所述客户端系统接收传感器数据是基于:确定所述第一第三方应用请求所述用户界面元素。
6.根据权利要求2所述的方法,其中,阻止所述第一第三方应用接收传感器数据是基于:确定所述第一第三方应用没有请求所述用户界面元素。
7.根据权利要求2所述的方法,其中,一个或多个第三方应用被放在列表上,以自动授权所述一个或多个第三方应用接收传感器数据。
8.根据权利要求2所述的方法,其中,一个或多个第三方应用被放在列表上,以自动阻止所述一个或多个第三方应用接收传感器数据。
9.根据权利要求1所述的方法,其中,所述第一专用平面专用于显示由所述操作系统生成的系统用户界面元素。
10.根据权利要求1所述的方法,其中,所述第一专用平面相对于用户的视点具有与所述第二专用平面不同的深度。
11.根据权利要求10所述的方法,其中,所述第一专用平面比所述第二专用平面更靠近所述用户的视点。
12.一种或多种包含软件的计算机可读非暂时性存储介质,所述软件在被执行时能够操作,以:
接收在虚拟现实环境中显示用户界面元素的请求;
确定所请求的用户界面元素是由在客户端系统上运行的操作系统生成的系统用户界面元素还是由第三方应用或基于第三方内容生成的第三方用户界面元素;并且
选择性地在所述虚拟现实环境的第一专用平面或第二专用平面中显示所述用户界面元素,其中:
当确定所请求的用户界面元素是系统用户界面元素时,在所述虚拟现实环境的所述第一专用平面中显示所请求的用户界面元素;或者
当确定所请求的用户界面元素是第三方用户界面元素时,在所述虚拟现实环境的所述第二专用平面中显示所请求的用户界面元素;
其中,所述第一专用平面与所述第二专用平面不同。
13.根据权利要求12所述的介质,其中,所述软件在被执行时还能够操作,以:
从第一第三方应用接收访问传感器数据的请求;
确定所述第一第三方应用是否是当前活动的应用,其中,所述当前活动的应用是正在和与所述客户端系统相关联的用户交互的当前应用;
基于所述第一第三方应用是否是所述当前活动的应用的确定,选择性地授权或阻止所述第三方应用接收传感器数据,其中:
在确定所述第一第三方应用是所述当前活动的应用时,授权所述第一第三方应用从所述客户端系统接收传感器数据;或者
在确定所述第一第三方应用不是所述当前活动的应用时,阻止所述第一第三方应用从所述客户端系统接收传感器数据;并且
响应于确定所述第一第三方应用被授权接收传感器数据,将所述传感器数据发送到所述第一第三方应用。
14.根据权利要求12所述的介质,其中,所述第一专用平面专用于显示由所述操作系统生成的系统用户界面元素。
15.根据权利要求12所述的介质,其中,所述第一专用平面相对于用户的视点具有与所述第二专用平面不同的深度。
16.一种系统,包括:一个或多个处理器;以及耦接到所述处理器的非暂时性存储器,所述非暂时性存储器包括能够由所述处理器执行的指令,当执行所述指令时,所述处理器能够操作,以:
接收在虚拟现实环境中显示用户界面元素的请求;
确定所请求的用户界面元素是由在客户端系统上运行的操作系统生成的系统用户界面元素还是由第三方应用或基于第三方内容生成的第三方用户界面元素;并且
选择性地在所述虚拟现实环境的第一专用平面或第二专用平面中显示所述用户界面元素,其中:
当确定所请求的用户界面元素是系统用户界面元素时,在所述虚拟现实环境的所述第一专用平面中显示所请求的用户界面元素;或者
当确定所请求的用户界面元素是第三方用户界面元素时,
在所述虚拟现实环境的所述第二专用平面中显示所请求的用户界面元素;
其中,所述第一专用平面与所述第二专用平面不同。
17.根据权利要求16所述的系统,其中,当执行所述指令时,所述处理器还能够操作,以:
从第一第三方应用接收访问传感器数据的请求;
确定所述第一第三方应用是否是当前活动的应用,其中,所述当前活动的应用是正在和与所述客户端系统相关联的用户交互的当前应用;
基于所述第一第三方应用是否是所述当前活动的应用的确定,选择性地授权或阻止所述第三方应用接收传感器数据,其中:
在确定所述第一第三方应用是所述当前活动的应用时,授权所述第一第三方应用从所述客户端系统接收传感器数据;或者
在确定所述第一第三方应用不是所述当前活动的应用时,阻止所述第一第三方应用从所述客户端系统接收传感器数据;并且
响应于确定所述第一第三方应用被授权接收传感器数据,将所述传感器数据发送到所述第一第三方应用。
18.根据权利要求16所述的系统,其中,所述第一专用平面专用于显示由所述操作系统生成的系统用户界面元素。
19.根据权利要求16所述的系统,其中,所述第一专用平面相对于用户的视点具有与所述第二专用平面不同的深度。
20.根据权利要求19所述的系统,其中,所述第一专用平面比所述第二专用平面更靠近所述用户的视点。
CN201910344416.8A 2018-05-04 2019-04-22 虚拟现实环境中的用户界面安全性 Active CN110443083B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/971,101 US10504290B2 (en) 2018-05-04 2018-05-04 User interface security in a virtual reality environment
US15/971,101 2018-05-04

Publications (2)

Publication Number Publication Date
CN110443083A CN110443083A (zh) 2019-11-12
CN110443083B true CN110443083B (zh) 2024-04-12

Family

ID=68385006

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910344416.8A Active CN110443083B (zh) 2018-05-04 2019-04-22 虚拟现实环境中的用户界面安全性

Country Status (2)

Country Link
US (2) US10504290B2 (zh)
CN (1) CN110443083B (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9132352B1 (en) 2010-06-24 2015-09-15 Gregory S. Rabin Interactive system and method for rendering an object
KR102431712B1 (ko) * 2017-09-04 2022-08-12 삼성전자 주식회사 전자장치, 그 제어방법 및 그 컴퓨터프로그램제품
US11093100B2 (en) * 2018-03-08 2021-08-17 Microsoft Technology Licensing, Llc Virtual reality device with varying interactive modes for document viewing and editing
US10504290B2 (en) * 2018-05-04 2019-12-10 Facebook Technologies, Llc User interface security in a virtual reality environment
WO2019237085A1 (en) 2018-06-08 2019-12-12 Vulcan Inc. Session-based information exchange
US20190378334A1 (en) * 2018-06-08 2019-12-12 Vulcan Inc. Augmented reality portal-based applications
US10725629B2 (en) * 2018-06-25 2020-07-28 Google Llc Identifying and controlling smart devices
US10996831B2 (en) 2018-06-29 2021-05-04 Vulcan Inc. Augmented reality cursors
US11308716B1 (en) * 2018-09-27 2022-04-19 Apple Inc. Tailoring a computer-generated reality experience based on a recognized object
US11288733B2 (en) * 2018-11-14 2022-03-29 Mastercard International Incorporated Interactive 3D image projection systems and methods
US11644940B1 (en) * 2019-01-31 2023-05-09 Splunk Inc. Data visualization in an extended reality environment
US11853533B1 (en) 2019-01-31 2023-12-26 Splunk Inc. Data visualization workspace in an extended reality environment
US11366564B2 (en) * 2019-03-13 2022-06-21 Samsung Electronics Co., Ltd. Electronic device and method for multi-view browsing in an augmented reality environment
US10846898B2 (en) * 2019-03-28 2020-11-24 Nanning Fugui Precision Industrial Co., Ltd. Method and device for setting a multi-user virtual reality chat environment
US11256342B2 (en) * 2019-04-03 2022-02-22 Facebook Technologies, Llc Multimodal kinematic template matching and regression modeling for ray pointing prediction in virtual reality
US11265382B2 (en) * 2019-04-12 2022-03-01 Lockheed Martin Corporation Management of sensor data collected across sensor nodes
US11803628B2 (en) * 2019-06-21 2023-10-31 Magic Leap, Inc. Secure authorization via modal window
EP3928190A1 (en) * 2019-09-27 2021-12-29 Apple Inc. Controlling representations of virtual objects in a computer-generated reality environment
US11493989B2 (en) * 2019-11-08 2022-11-08 Magic Leap, Inc. Modes of user interaction
CN110882537B (zh) * 2019-11-12 2023-07-25 北京字节跳动网络技术有限公司 一种交互方法、装置、介质和电子设备
CN115836271A (zh) * 2020-07-14 2023-03-21 苹果公司 生成用于工作空间的建议内容
WO2022083554A1 (zh) * 2020-10-19 2022-04-28 聚好看科技股份有限公司 用户界面的布局、交互方法及三维显示设备
CN114442872B (zh) * 2020-10-19 2023-10-27 聚好看科技股份有限公司 一种虚拟用户界面的布局、交互方法及三维显示设备
JP2022098268A (ja) * 2020-12-21 2022-07-01 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
US11831665B2 (en) 2021-01-04 2023-11-28 Bank Of America Corporation Device for monitoring a simulated environment
EP4288950A1 (en) 2021-02-08 2023-12-13 Sightful Computers Ltd User interactions in extended reality
JP2024507749A (ja) 2021-02-08 2024-02-21 サイトフル コンピューターズ リミテッド エクステンデッドリアリティにおけるコンテンツ共有
KR20230144042A (ko) 2021-02-08 2023-10-13 사이트풀 컴퓨터스 리미티드 생산성을 위한 확장 현실
USD1008308S1 (en) * 2021-06-25 2023-12-19 Hes Ip Holdings, Llc Display panel or portion thereof with a mixed reality graphical user interface
USD1008309S1 (en) * 2021-06-25 2023-12-19 Hes Ip Holdings, Llc Display panel or portion thereof with a mixed reality graphical user interface
WO2023009580A2 (en) 2021-07-28 2023-02-02 Multinarity Ltd Using an extended reality appliance for productivity
US20230334795A1 (en) 2022-01-25 2023-10-19 Multinarity Ltd Dual mode presentation of user interface elements
US11948263B1 (en) 2023-03-14 2024-04-02 Sightful Computers Ltd Recording the complete physical and extended reality environments of a user

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106200892A (zh) * 2014-10-30 2016-12-07 联发科技股份有限公司 虚拟现实系统、移动装置、穿戴式装置及进入事件的处理方法
CN106575153A (zh) * 2014-07-25 2017-04-19 微软技术许可有限责任公司 虚拟现实环境内基于注视的对象放置
CN106937531A (zh) * 2014-06-14 2017-07-07 奇跃公司 用于产生虚拟和增强现实的方法和系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10228242B2 (en) * 2013-07-12 2019-03-12 Magic Leap, Inc. Method and system for determining user input based on gesture
WO2017066801A1 (en) * 2015-10-16 2017-04-20 Bent Image Lab, Llc Augmented reality platform
US10802695B2 (en) * 2016-03-23 2020-10-13 Youar Inc. Augmented reality for the internet of things
US11222461B2 (en) * 2016-03-25 2022-01-11 Outward, Inc. Arbitrary view generation
AU2017301435B2 (en) * 2016-07-25 2022-07-14 Magic Leap, Inc. Imaging modification, display and visualization using augmented and virtual reality eyewear
US20180095636A1 (en) * 2016-10-04 2018-04-05 Facebook, Inc. Controls and Interfaces for User Interactions in Virtual Spaces
EP4220258A1 (en) * 2017-04-19 2023-08-02 Magic Leap, Inc. Multimodal task execution and text editing for a wearable system
US10521020B2 (en) * 2017-07-12 2019-12-31 Unity IPR ApS Methods and systems for displaying UI elements in mixed reality environments
US10504290B2 (en) * 2018-05-04 2019-12-10 Facebook Technologies, Llc User interface security in a virtual reality environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106937531A (zh) * 2014-06-14 2017-07-07 奇跃公司 用于产生虚拟和增强现实的方法和系统
CN106575153A (zh) * 2014-07-25 2017-04-19 微软技术许可有限责任公司 虚拟现实环境内基于注视的对象放置
CN106200892A (zh) * 2014-10-30 2016-12-07 联发科技股份有限公司 虚拟现实系统、移动装置、穿戴式装置及进入事件的处理方法

Also Published As

Publication number Publication date
CN110443083A (zh) 2019-11-12
US10504290B2 (en) 2019-12-10
US10818095B2 (en) 2020-10-27
US20190340816A1 (en) 2019-11-07
US20200074742A1 (en) 2020-03-05

Similar Documents

Publication Publication Date Title
CN110443083B (zh) 虚拟现实环境中的用户界面安全性
US10916065B2 (en) Prevention of user interface occlusion in a virtual reality environment
US20190340818A1 (en) Display Reorientation in a Virtual Reality Environment
US20190339837A1 (en) Copy and Paste in a Virtual Reality Environment
US10789747B2 (en) Customized visualizations
JP6317765B2 (ja) 複合現実感表示調整
JP2021534473A (ja) 拡張現実環境におけるマルチデバイスマッピングおよび共同
CN112639891A (zh) 在增强现实环境内的内容的建议
CN110908501B (zh) 人工现实中防止视场遮挡的显示不透明度控制
CN114270312A (zh) 经由模态窗口的安全授权
US11308698B2 (en) Using deep learning to determine gaze
US20230260233A1 (en) Coordination of Interactions of Virtual Objects
KR20230156029A (ko) 가상 현실 환경에서의 혼합 현실 객체
US20220291808A1 (en) Integrating Artificial Reality and Other Computing Devices
US20200233561A1 (en) Interactions with three-dimensional (3d) holographic file structures
KR20230137936A (ko) 교차 애플리케이션 가상 현실 설정에서의 적응 가능한개인 사용자 인터페이스
US11481960B2 (en) Systems and methods for generating stabilized images of a real environment in artificial reality
US20230221797A1 (en) Ephemeral Artificial Reality Experiences
EP4398078A1 (en) Extended reality user interfaces for hand-based input
US20220083631A1 (en) Systems and methods for facilitating access to distributed reconstructed 3d maps
TW202333494A (zh) 在虛擬實境環境中的混合實境物件之平台化
CN117061692A (zh) 在视频通话期间渲染定制视频通话界面

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
CB02 Change of applicant information

Address after: California, USA

Applicant after: Yuan Platform Technology Co.,Ltd.

Address before: California, USA

Applicant before: Facebook Technologies, LLC

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant