CN114270312A - 经由模态窗口的安全授权 - Google Patents
经由模态窗口的安全授权 Download PDFInfo
- Publication number
- CN114270312A CN114270312A CN202080058151.6A CN202080058151A CN114270312A CN 114270312 A CN114270312 A CN 114270312A CN 202080058151 A CN202080058151 A CN 202080058151A CN 114270312 A CN114270312 A CN 114270312A
- Authority
- CN
- China
- Prior art keywords
- application
- user
- window
- authorization
- display
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/36—User authentication by graphic or iconic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/33—User authentication using certificates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/012—Head tracking input arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction 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/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/30—Security of mobile devices; Security of mobile applications
- H04W12/33—Security of mobile devices; Security of mobile applications using wearable devices, e.g. using a smartwatch or smart-glasses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04804—Transparency, e.g. transparent or translucent windows
Abstract
本公开涉及用于在空间3D环境中用户的授权的系统和方法。该系统和方法可以包括:从在混合现实显示系统上执行的应用接收以授权用户网络服务的请求;向用户显示授权窗口,该授权窗口被配置为接受与网络服务的授权相关联的用户输入并阻止应用或其他应用接收用户输入;将用户输入传送到网络服务;从网络服务接收访问令牌,其中访问令牌指示网络服务的成功授权;以及将访问令牌传送到应用以进行用户的授权。授权窗口可以是通过混合现实显示系统以沉浸模式所显示的模态窗口。
Description
相关申请的交叉引用
本申请要求于2019年6月21日提交的题为“BROWSER FOR MIXED REALITY SYSTEM(混合现实系统的浏览器)”的美国临时申请No.62/864,752和于2019年8月23日提交的题为“SECURE AUTHORIZATION VIA MODAL WINDOW(经由模态窗口的安全授权)”的美国临时申请No.62/890,849的优先权,每一个都通过引用整体并入本文。
技术领域
本公开总体上涉及用于在空间三维(3D)环境中实施技术的系统和方法,更具体地涉及在3D混合、增强或虚拟现实环境中导航或操纵虚拟内容。
背景技术
观看网页的典型方式是在计算机、智能手机、平板电脑等的监视器上打开网页。用户将滚动网页以观看显示在网页上的不同内容。通常,无论用户是在看电脑监视器、智能手机或平板电脑,内容在监视器上的显示方式都有固定的格式。在3D环境中查看网页存在挑战。
发明内容
提供了用于在3D混合现实环境中导航和操纵虚拟内容的改进系统和方法。该系统和方法可以为空间3D环境中的用户提供授权。例如,系统和方法可以包括从在混合现实显示系统上执行的应用请求用于授权用户网络服务的接收,网络服务是诸如被配置为授权用户经由混合现实显示系统使用多个应用和/或其他网络服务的单点登录(SSO)网络服务。在一些实施例中,授权网络服务向用户显示授权窗口,该授权窗口被配置为接受与网络服务的授权相关联的用户输入并阻止应用或其他应用接收用户输入,将用户输入传送给网络服务,从网络服务接收访问令牌,其中访问令牌指示网络服务的成功授权,并将访问令牌传送给应用以对用户进行授权。授权窗口可以是混合现实显示系统以沉浸式模式显示的模态窗口。
附图说明
附图示出了本发明的各种实施方式的设计和实用性。应当注意,附图未按比例绘制,并且在整个附图中,相似结构或功能的元件由相似的附图标记表示。为了更好地理解如何获得本发明的各个实施方式的上述和其他优点和目的,将参考本发明的具体实施方式对以上简要描述的本发明进行更详细的描述,这些实施方式在附图中示出。理解这些附图仅描述了本发明的典型实施方式,因此不应将其认为是对本发明范围的限制,将通过使用附图以附加的特征和细节来描述和解释本发明,其中:
图1示出了根据一些实施方式的用于解构要在用户的3D环境中显示的2D内容的增强现实环境。
图2示出了根据一些实施方式的2D内容中的元素到用户3D环境的示例映射。
图3是示出根据一些实施方式的用于解构要在3D环境中显示的2D内容的方法的流程图。
图4是示出根据一些实施方式的用于识别2D内容中的元素的方法的流程图。
图5示出了根据一些实施方式的用于存储从2D内容解构的元素的表格的示例。
图6是示出根据一些实施方式的用于从用户的本地环境识别表面的方法的流程图。
图7示出了根据一些实施方式的用于存储从用户的本地环境识别出的表面的清单的表格的示例。
图8是示出根据一些实施方式的用于将来自2D内容的元素映射到可用表面的方法的流程图。
图9示出了根据一些实施方式的用于存储来自2D内容的元素到用户本地环境中的表面的映射的表格的示例。
图10示出了用于实现用户窗口的观看的方法的流程图。
图11A-B示出了为用户显示窗口的过程而不考虑窗口的先前物理位置。
图12-13提供了在混合现实界面内显示多个窗口的可能方法的示例。
图14示出了在混合现实系统内显示多个棱柱的可能方法。
图15是适合于实现本公开的实施方式的示例性计算系统的框图。
图16A至图16F示出了在混合现实环境内显示授权窗口的各种方法。
图17A至图17D示出了在混合现实环境内显示授权窗口的各种方法。
图18是示出沉浸式(例如,模态)授权服务的示例的框图。
图19是用于授权服务的示例系统架构的框图。
图20A示出了用于应用开发者的授权流程的示例。
图20B示出了用于使用软件开发工具包(SDK)的应用开发者的授权流程的示例。
具体实施方式
现在将参考附图详细描述各种实施方式,这些附图被提供作为本公开的说明性示例,以使得本领域技术人员能够实践本公开。值得注意的是,下面的附图和示例并不意味着限制本公开的范围。在可以使用已知组件(或方法或过程)部分地或完全地实现本公开的某些要素的情况下,将仅描述理解本公开所必需的这些已知组件(或方法或过程)的那些部分,并且将省略这些已知组件(或方法或过程)的其他部分的详细描述,以免模糊本公开。此外,各种实施方式涵盖了通过示例的方式在本文中所指的组件的当前和将来的已知等同物。
尽管以下描述的系统和方法主要在浏览器应用的背景下描述的,但是本领域的普通技术人员将理解,本文描述的系统和方法也可以在一个或多个其他应用的背景下应用。在一些实施方式中,用于管理用户的照片和/或视频的应用可以利用以下描述的系统和方法。在一些实施方式中,用于玩纸牌游戏的应用可以利用以下描述的系统和方法。在一些实施方式中,天气应用可以利用以下描述的系统和方法。在一些实施方式中,可以在能够向用户显示3D虚拟内容的装置和/或系统上安装和/或运行的任何其他应用可以利用以下描述的系统和方法。在一些实施方式中,单个应用可以利用以下描述的系统和方法。在一些实施方式中,一个以上的应用可以利用以下描述的系统和方法。在一些实施方式中,在能够向用户显示3D虚拟内容的装置和/或系统上安装和/或运行的所有应用可以利用以下描述的系统和方法。在一些实施方式中,应用的多个实例可以利用下述系统和方法。
术语
为了便于理解在此讨论的系统和方法,下面描述几个术语。这些术语以及在此使用的其他术语应被解释为包括所提供的描述、术语的普通和惯用含义、和/或各个术语的任何其他隐含含义,其中此类解释与术语的上下文一致。因此,以下描述不限制这些术语的含义,而仅提供示例性描述。
模态(modal)窗口:显示在前台(例如,在父应用的主窗口之上)的图形窗口(和/或其他用户界面元素)。模态窗口的显示可以允许父应用的至少一些保持可见(例如,模态窗口周围的部分),但是用户在他们可以返回到父应用之前必须与模态窗口交互。
网络(Web)服务:经由网络提供的服务。网络服务可以使用各种通信模型来与网络连接的装置进行通信。例如,一些网络服务使用SOAP消息,例如可以使用HTTP和XML传输这些消息。网络服务的一个示例是单点登录(SSO)服务,该服务通常配置为参考多个应用(或其他网络服务)授权用户,以便多个应用(或其他网络服务)中的每一个不需要提供单独的用户认证。可以以各种方式提供SSO服务,例如经由开放授权(OAuth)、安全断言标记语言(SAML)、和/或其他服务。尽管在此示例实施例中讨论了特定的认证服务,但也可以使用其他认证服务。
网页解构
利用虚拟现实、增强现实和/或混合现实系统(以下统称为“混合现实”系统),提供三维环境用于向用户显示内容。在浏览器中显示2D内容的传统方法在3D环境中使用时效果不佳。其原因之一是,采用传统的2D网络浏览器,显示装置的显示区域仅限于显示内容的监视器的屏幕区域。结果,传统浏览器被配置为仅知道如何在该监视器显示区域内组织和显示内容。相比之下,3D环境不限于监视器显示区域的严格范围。因此,传统的2D浏览器在3D环境中使用时表现欠佳,因为传统的浏览技术不具备利用3D环境来显示内容的功能或能力。
例如,考虑当用户正在使用混合现实设备并且已经放置与不同物理位置相关联的多个浏览器窗口时的情况。例如,用户可能已经在第一房间中打开了第一浏览器窗口并且在第二房间中时打开了第二浏览器窗口。由于传统的基于2D的浏览器限于显示给定的监视器区域,这意味着传统浏览器甚至没有技术来理解物理远程窗口的概念,更不用说处理在物理位置打开多个窗口这种情况的能力,使用户无法有效地查看、导航和使用这些多个窗口。
因此,需要一种在3D环境中实现浏览技术的改进方法。
本公开的实施方式解构要在空间上组织的3D环境中显示的2D网页。2D网页可以源于头戴式系统、移动装置(例如,手机)、平板电脑、电视、应用等的网页浏览器。在一些实施方式中,可以从诸如膝上型计算机、台式计算机、具有到2D网页的链接的电子邮件应用、引用或包括到2D网络的链接的电子消息等的另一应用或装置接收2D网页。
参考图1,环境100是物理环境和系统的代表,该系统用于实现以下所述的过程(例如,解构要在用户的物理环境105中的3D表面上显示的来自网页的2D内容,或为应用提供验证或身份验证或用于提供模态浏览器窗口)。环境100的代表性物理环境和系统包括由用户108通过头戴式系统160观看的用户的物理环境105。环境100的代表性系统还包括经由可操作地耦接到网络120的网页浏览器110访问2D内容(例如,网页)。网络120可以是因特网、内部网络、私有云网络、公共云网络等。网页浏览器110还经由网络120可操作地耦接到处理器170。尽管处理器170被示为与头戴式系统160分离的隔离组件,但是在替代实施方式中,处理器170可与头戴式系统160的一个或多个组件集成和/或可集成到环境100内的其他系统组件,例如,访问计算网络125和存储装置130的网络120。处理器170可配置有用于接收和处理从头戴式系统160、本地存储装置140、网页浏览器110、计算网络125和存储装置130接收的例如视频、音频和内容的信息的软件150。软件150可以经由网络120与计算网络125和存储装置130通信。软件150可以被安装在处理器170上,或者在另一实施方式中;可以将软件的特征和功能集成到处理器170中。处理器170还可以配置有本地存储装置140,用于存储由处理器170使用的用于快速访问的信息,而无需依赖于远程地存储在用户108附近的外部存储装置上的信息。在其他实施方式中,处理器170可以集成在头戴式系统160内。
用户的物理环境105是在用户四周移动并通过头戴式系统160观看用户的物理环境105时用户108的物理环境。例如,参考图1,用户的物理环境105示出了具有两个墙壁(例如,主墙壁180和侧墙壁184,主墙壁和侧墙壁与用户的观看相关)的房间和桌子188。在主墙壁180上,有由黑色实线描绘的矩形表面182,以显示具有物理边界的物理表面(例如,悬挂或附在墙壁或窗户等上的绘画),其可以是将某些2D内容投影到其上的候选表面。在侧墙壁184上,有由黑色实线描绘的第二矩形表面186,以显示具有物理边界的物理表面(例如,悬挂或附在墙壁或窗户等上的绘画)。在桌子188上,可以有不同的对象。1)虚拟Rolodex 190,其中可以存储和显示某些2D内容;2)由黑色实线描绘的水平表面192以表示具有物理边界的物理表面以将某些2D内容投影到其上;3)由黑色虚线描绘的虚拟正方形表面194的多个堆叠,以表示例如其中可以存储和显示某些2D内容的堆叠的虚拟报纸。
网页浏览器110还可以显示来自互联网或内联网或者私有网络内的博客页面。另外,网页浏览器110也可以是显示数字2D内容的任何技术。2D内容可以包括例如网页、博客、数字图片、视频、新闻文章、新闻通讯或音乐。2D内容可以被存储在用户108可以经由网络120访问的存储装置130中。在一些实施方式中,2D内容也可以是流内容,例如,现场视频馈送或现场音频馈送。存储装置130可以包括例如数据库、文件系统、永久性存储装置、闪存驱动器、高速缓存等。在一些实施方式中,经由计算网络125显示包含2D内容(例如,网页)的网页浏览器110。
计算网络125访问存储装置130以检索和存储用于在网页浏览器110上的网页中显示的2D内容。在一些实施方式中,本地存储装置140可以向用户108提供感兴趣的2D内容。本地存储装置140可以包括例如闪存驱动器、高速缓存、硬盘驱动器、数据库、文件系统等。存储在本地存储装置140中的信息可以包括最近访问的2D内容或最近在3D空间中显示的内容。本地存储装置140通过向软件150本地地提供某些内容以帮助解构2D内容以在3D空间环境(例如,用户的物理环境105中的3D表面)上显示2D内容,从而允许对环境100的系统的性能的改善。
软件150包括存储在非暂时性计算机可读介质中的软件程序,以执行解构要在用户的物理环境105中显示的2D内容的功能。软件150可以在处理器170上运行,其中处理器170可以本地地附到用户108上,或者在一些其他实施方式中,软件150和处理器170可以被包括在头戴式系统160内。在一些实施方式中,软件150的特征和功能中的部分可以在远离用户108的计算网络125上存储和执行。例如,在一些实施方式中,解构2D内容可以在计算网络125上发生,并且解构的结果可以被存储在存储装置130内,其中,对用于呈现解构后的2D内容的用户本地环境的表面的清点可以发生在处理器170内,其中表面和映射的清单被存储在本地存储装置140中。在一个实施方式中,解构2D内容、清点本地表面、将2D内容的元素映射到本地表面以及显示2D内容的元素的过程都可以在处理器170和软件150内本地地发生。
头戴式系统160可以是虚拟现实(VR)或增强现实(AR)头戴式系统,其包括用户界面、用户感测系统、环境感测系统和处理器(均未示出)。头戴式系统160向用户108呈现用于与数字世界交互和体验数字世界的界面。这样的交互可涉及用户和数字世界、与环境100连接的一个或多个其他用户以及位于数字和物理世界内的对象。
用户界面可包括通过用户界面接收2D内容并选择2D内容内的元素。用户界面可以是触觉界面装置、键盘、鼠标、操纵杆、移动捕获控制器、光学跟踪装置以及音频输入装置中的至少一个或组合。触觉界面装置是允许人通过身体感觉和移动与计算机交互的装置。触觉是指人机交互技术的一种类型,该人机交互技术包含触觉反馈或其他身体感觉以在计算装置上执行动作或过程。在一些实施方式中,控制界面可以是用户界面,使得用户可以例如通过向系统提供用户输入并且该系统通过执行对应的命令来响应而与MR显示系统交互。
用户感测系统可包括一个或多个传感器162,其是可操作的以检测与佩戴头戴式系统160的用户108有关的某些特征、特性或信息。例如,在一些实施方式中,传感器162可包括相机或光学检测/扫描电路,其能够检测用户108的实时光学特征/测量,该光学特征/测量例如以下中的一项或多项:瞳孔收缩/扩张、每个瞳孔的角度测量/定位、球度、眼睛形状(眼睛形状随着时间变化)和其他解剖数据。该数据可提供或用于计算可由头戴式系统160用来增强用户的观看体验的信息(例如,用户的视觉焦点)。
环境感测系统可包括一个或多个传感器164,用于从用户的物理环境105获取数据。由传感器164检测到的对象或信息可作为输入提供给头戴式系统160。在一些实施方式中,该输入可表示用户与虚拟世界的交互。例如,观看桌子(例如,桌子188)上的虚拟键盘的用户(例如,用户108)可用他们的手指作出手势,就像该用户正在虚拟键盘上打字一样。手指移动的运动可由传感器164捕获,并作为输入提供给头戴式系统160,其中,该输入可用于改变虚拟世界或创建新的虚拟对象。
传感器164可包括例如通常面向外的相机或扫描仪,用于例如通过连续地和/或间歇地投射的红外结构光来解释场景信息。通过检测并注册本地环境(包括静态对象、动态对象、人物、手势和各种照明、大气和声学条件),该环境感测系统可用于在用户108周围映射用户的物理环境105中的一个或多个元素。因此,在一些实施方式中,环境感测系统可包括嵌入在本地计算系统(例如,处理器170)中的并且是可操作的以数字地重建由传感器164检测到的一个或多个对象或信息的基于图像的3D重建软件。
在一个示例实施方式中,环境感测系统提供以下中的一项或多项:移动捕获数据(包括手势识别)、深度感测、面部识别、对象识别、唯一对象特征识别、语音/音频识别和处理、声源定位、降噪、红外或类似的激光投影以及单色和/或彩色CMOS传感器(或其他类似的传感器)、视场传感器和各种其他光学增强传感器。应当理解,环境感测系统可包括除了以上讨论的那些组件之外的其他组件。
如上所述,在一些实施方式中,处理器170可与头戴式系统160的其他组件集成、与环境100的系统的其他组件集成或者可以是如图1所示的隔离装置(可穿戴的或与用户108分离的)。处理器170可通过物理、有线连接或通过无线连接连接到头戴式系统160的各种组件,无线连接例如为移动网络连接(包括蜂窝电话和数据网络)、Wi-Fi、蓝牙或任何其他无线连接协议。处理器170可包括存储模块、集成和/或附加图形处理单元、无线和/或有线因特网连接以及能够将来自源(例如,计算网络125以及来自头戴式系统160的用户感测系统和环境感测系统)的数据变换成图像和音频数据的编解码器和/或固件,其中图像/视频和音频可经由用户界面(未示出)呈现给用户108。
处理器170处理用于头戴式系统160的各种组件的数据处理以及头戴式系统160与来自由网页浏览器110和计算网络125显示或访问的网页的2D内容之间的数据交换。处理器170可用于缓冲和处理用户108与计算网络125之间的数据流,从而实现平滑、连续和高保真的用户体验。
可以以智能和逻辑的方式来完成将来自网页的2D内容解构成元素并映射要显示在3D环境中的表面上的元素。预定的规则组可以是可用于推荐、建议或指示在2D内容/网页内识别的某些类型的元素/内容的放置位置。例如,某些类型的2D内容元素可具有一个或多个内容元素,其可能需要被映射到适合于存储和显示一个或多个元素的物理或虚拟对象表面,而其他类型的2D内容元素可以是单个对象,例如网页中的主视频或主文章,在这种情况下,可以将单个对象映射到最有意义的表面以向用户显示单个对象。
图2示出了根据一些实施方式的2D内容的元素到用户3D环境的示例映射。环境200描绘了由网页浏览器110和用户的物理环境105显示或访问的2D内容(例如,网页)。带有箭头的虚线描绘了来自2D内容(例如,网页)的元素(例如,特定类型的内容),其被映射到并显示在用户的物理环境105上。基于网页设计者提示或预定义的浏览器规则,将来自2D内容的某些元素映射到用户的物理环境105中的某些物理或虚拟对象。
作为示例,由网页浏览器110访问或显示的2D内容可以是具有多个标签(tab)的网页,其中当前活动标签260被显示,并且次标签250当前被隐藏,直到被选择以显示在网页浏览器110上。被显示在活动标签260内的通常是网页。在该特定示例中,活动标签260正在显示包括主视频220、用户评论230和建议视频240的YOUTUBE页面。如在该示例图2中所描绘的,可以将主视频220映射为在垂直表面182上显示,用户评论230可以被映射为在水平表面192上显示,以及建议视频240可以被映射为在与垂直表面182不同的垂直表面186上显示。另外,次标签250可以被映射为在虚拟Rolodex 190和/或多堆叠虚拟对象194上显示。在一些实施方式中,次标签250内的特定内容可以被存储在多堆叠虚拟对象194中。在其他实施方式中,驻留在次标签250内的整个内容可以被存储和/或显示在多堆叠虚拟对象194上。同样地,虚拟Rolodex 190可以包含来自次标签250的特定内容,或者虚拟Rolodex 190可以包含驻留在次标签250内的整个内容。
垂直表面182可以是已经位于房间(描绘为用户的物理环境105)的主墙壁180上的任何类型的结构,例如窗玻璃或相框。在一些实施方式中,垂直表面182可以是空墙壁,在该空墙壁上,头戴式系统160确定适合于用户108观看主视频220的垂直表面182的框架的最优尺寸。垂直表面182的尺寸的该确定可以至少部分地基于用户108距主墙壁180的距离、主视频220的大小和尺寸、主视频220的质量、未被覆盖的墙壁空间的量和/或用户在观看主墙壁180时的姿势。例如,如果主视频220的质量是高清晰的,则垂直表面182的尺寸可能会更大,因为主视频220的质量将不会被垂直表面182不利地影响。然而,如果主视频220的视频质量是差的质量,则具有较大的垂直表面182可能会大大妨碍视频质量,在这种情况下,本公开的方法和系统可以将垂直表面182调整大小/重新定义为较小,以最小化来自像素化的差视频质量。
与垂直表面182一样,垂直表面186是用户的物理环境105中的相邻墙壁(例如,侧墙壁184)上的垂直表面。在一些实施方式中,基于用户108的取向,侧墙壁184和垂直表面186可能看起来是倾斜的歪斜表面。除垂直和水平表面之外,倾斜的歪斜表面还可以是表面的一种取向类型。在该示例中,可以将来自YOUTUBE网页的建议视频240放置在侧墙壁184的垂直表面186上,以允许用户108能够仅通过将其头部稍微向右移动来观看建议视频。
虚拟Rolodex 190是由头戴式系统160创建并显示给用户108的虚拟对象。虚拟Rolodex 190可以具有使用户108双向循环浏览一组虚拟页面的能力。虚拟Rolodex 190可以包含整个网页,或者可以包含单独的文章或视频或音频。如该示例中所示,虚拟Rolodex190可以包含来自次标签250的内容的一部分,或者在一些实施方式中,虚拟Rolodex 190可以包含次标签250的整个页面。用户108可以通过简单地专注于虚拟Rolodex 190内的特定标签来双向循环浏览虚拟Rolodex 190内的内容,并且头戴式系统160内的一个或多个传感器(例如,传感器162)检测用户108的眼睛聚焦并循环浏览虚拟Rolodex 190中的标签以相应地获得用户108的相关信息。在一些实施方式中,用户108可以从虚拟Rolodex 190中选择相关信息,并且指示头戴式系统160将相关信息显示在可用的周围表面上或者在另一虚拟对象上,例如与用户108(未示出)紧邻的虚拟显示器。
与虚拟Rolodex 190类似,多堆叠虚拟对象194可以包含以下内容:一个或多个标签的完整内容或者来自用户108标记、保存以供将来观看或已打开(例如,不活动的标签)的各种网页或标签的特定内容。多堆叠虚拟对象194也类似于真实世界的报纸堆叠。多堆叠虚拟对象194内的每个堆叠可以属于特定的报纸文章、页面、杂志发行、食谱等。本领域的普通技术人员可以理解,可以存在多种类型的虚拟对象来实现该相同目的,以提供表面来放置2D内容元素或来自2D内容源的内容。
本领域普通技术人员可以理解,由网页浏览器110访问或显示的2D内容可能不仅仅是一个网页。在一些实施方式中,2D内容可以是来自相册的图片、来自电影的视频、电视节目、YOUTUBE视频、交互形式等。然而,在其他实施方式中,2D内容可以是电子书或任何显示书本的电子方式。最后,在其他实施方式中,由于2D内容通常是当前呈现信息的方式,因此2D内容可以是尚未被描述的其他类型的内容。如果电子装置可以消费2D内容,则头戴式系统160可以使用2D内容来以3D设置(例如,AR)解构和显示2D内容。
在一些实施方式中,映射所访问的2D内容可以包括提取2D内容(例如,从浏览器中)并将其放置在表面上(以使得内容不再在浏览器中并且仅在表面上),以及在一些实施方式中,映射可以包括复制内容(例如,从浏览器中)并将其放置在表面上(以使得内容既在浏览器中又在表面上)。
解构2D内容是因特网和计算机相关技术领域中存在的技术问题。使用诸如HTML的某些类型的编程语言来构造诸如网页的2D内容,以指示计算机处理器和技术组件在何处以及如何为用户在屏幕上的网页内显示元素。如上所述,网页设计者通常在2D画布(例如,屏幕)的限制内工作以在2D画布内放置和显示元素(例如,内容)。HTML标签用于确定如何格式化HTML文档或HTML文档内的部分。在一些实施方式中,(提取或复制的)2D内容可以维持HTML标签参考,并且在一些实施方式中,可以重新定义HTML标签参考。
图3是示出根据一些实施方式的用于解构要在3D环境中显示的2D内容的方法的流程图。该方法包括:在310处识别2D内容;在320处识别2D内容中的元素;在330处识别周围表面;在340处将所识别的2D内容中的所识别的元素映射到来自识别周围表面的所识别的表面;以及在350处将元素作为虚拟内容显示到所选择的表面上,其中从元素到所识别的表面的映射中选择所选择的表面。
在310处识别2D内容可能涉及使用头戴式系统160搜索数字内容。在310处识别2D内容还可包括访问连接到网络120的服务器(例如,存储装置130)上的数字内容。在310处识别2D内容可包括浏览因特网以用于用户108感兴趣的网页。在一些实施方式中,在310处识别2D内容可以包括由用户108给出的用于在因特网上搜索内容的语音激活命令。例如,用户108可以正在与装置(例如,头戴式系统160)交互,其中用户108通过说出命令以搜索视频然后说出视频名称和视频简短说明,来请求装置搜索特定视频,从而在因特网上搜索特定视频。然后,该装置可以搜索因特网并在2D浏览器上拉起视频,以允许用户108观看在该装置的2D浏览器上显示的视频。然后,用户108可以确认该视频是用户108想要在空间3D环境中观看的视频。
一旦识别出2D内容,则该方法在320处识别2D内容内的元素,以获得2D内容中的用于显示给用户108的可用元素的清单。例如,2D内容内的元素可以包括视频、发布在网页上的文章和新闻通讯、社交媒体网站上的评论和发布、博客文章、发布在各种网站上的图片、有声读物等。2D内容(例如,网页)内的这些元素可以包含具有与内容设计者提供的HTML标签相关联的属性的HTML标签,以限定特定元素在网页上的放置位置以及在一些情况下何时以及如何在网页上显示该元素。在一些实施方式中,本公开的方法和系统利用这些HTML标签和属性作为由内容设计者提供的提示和建议,以帮助在340处的映射过程以便确定在3D设置中在何处以及如何显示元素。例如,以下是由网页开发者提供的示例HTML网页代码。
由网页开发者提供的示例HTML网页代码
由网页开发者提供的示例HTML网页代码包括关于如何在网页上显示主视频的偏好(preference)以及关于如何显示推荐(或建议的视频)的偏好。特别地,该HTML网页代码使用“style”的标签来指定如何使用“vertical”的类型值来显示主视频,以指定显示视频的垂直表面。另外,在“style”标签内,由网页开发者提供的其他提示可以包括用于匹配算法的“priority”偏好,使用该偏好以对网页(例如,主视频)中的哪一个HTML元素/内容要被映射到哪一个潜在表面区域进行优先级排序。在示例HTML网页代码中,对于具有垂直平面布局的视频,优先级设置为100的值,其中,在该示例中,较高的优先级值表示较高的优先级。另外,在该示例中,由网页开发者指示了偏好,以将建议的视频放置在堆叠布局中具有“horizontal”的类型值的堆叠中,其中,堆叠的对象之间的距离(例如,在这种情况下,与另一个建议视频有关的建议视频)为20cm。
图4是示出根据一些实施方式的用于识别2D内容中的元素的方法的流程图。图4是根据一些实施方式的公开在图3的320处识别2D内容中的元素的详细流程。图4以在410处识别2D内容内的元素开始,类似于在图3的320处识别2D内容内的元素。该方法进行到下一框,在420处从与内容的放置有关的标签识别属性。如上所述,网页设计者在设计和配置网页时,可以将网页内的元素与HTML标签相关联以定义在何处以及如何显示每个元素。这些HTML标签还可以包括与将元素放置在网页的特定部分上有关的属性。头戴式系统160可以检测到这些HTML标签及其属性,并与系统的其他组件进行协调,以用作关于可以显示特定元素的位置的输入。
在430处执行从每个元素提取提示或标签。提示或标签通常是由2D内容/网页的内容设计者和/或网页开发者提供的格式化提示或格式化标签。如上所述,内容设计者可以例如以“由网页开发者提供的示例HTML网页代码”中所示的HTML标签的形式提供指令或提示,以指示网页浏览器110显示在页面或屏幕的特定部分中的2D内容中的元素。在一些实施方式中,网页设计者可以使用附加的HTML标签属性来定义附加的格式化规则。例如,如果用户对特定颜色(例如,红色)的敏感度降低,则不显示红色,而是使用其他颜色,或者如上所述,如果具有要在垂直表面上显示的偏好的视频不能在垂直表面上显示,则替代地在另一(物理)表面上显示视频或者创建虚拟表面并在该虚拟表面上显示视频。以下是在浏览器中实现的示例HTML页面解析器,以用于解析HTML页面以从HTML页面内的每个元素提取提示/标签。
在浏览器中实现的示例HTML页面解析器
该示例HTML页面解析器示出了如何解析并识别和/或提取/复制包含HTML标签的HTML页面,该HTML标签用于为2D内容(例如,网页)内的特定元素/对象提供显示偏好。如示例HTML页面解析器中所公开的,可以使用所公开的示例代码来解析2D内容(例如,网页)内的元素。HTML页面解析器(例如,ML.layout、ML.container等)可以识别/提取使用各种元素名称和值的某些HTML标签,以确定在3D环境中如何向用户显示特定元素(例如,通过将元素映射到特定表面)。
在440处执行查找/搜索用于一个或多个元素的替代显示形式。可以为网页上的图像指定某些格式化规则。例如,如果网页浏览器110能够显示图像的3D版本,则网页设计者可以放置其他标签或定义特定标签的某些属性,以允许网页浏览器110识别可能具有图像的替代版本(例如,图像的3D版本)的图像。网页浏览器110然后可以访问要在启用3D的浏览器中显示的图像的替代版本(例如,图像的3D版本)。
在450处执行存储2D内容内的所识别的元素。该方法可以将所识别的元素存储到非暂时性存储介质中,以供映射例程使用(例如,在图3的340处将元素映射到所识别的表面),以便将元素映射到特定表面。非暂时性存储介质可以包括诸如存储装置130或本地存储装置140的数据存储装置。可以将元素存储在诸如以下描述的图5中公开的表格的特定表格中。在一些实施方式中,可以将2D内容内的所识别的元素存储在暂时性存储介质中。
图5示出了根据一些实施方式的用于存储从2D内容解构的元素的表格的示例。元素表格500是示例表格,其可以将在图4的410处识别2D内容内的元素的结果存储在数据库中。元素表格500包括例如关于2D内容内的一个或多个元素的信息,其包括元素识别(ID)510、用于可在3D表面上放置元素的位置的偏好指示符520、如果特定元素被包括在父元素内的父元素ID 530、如果元素可包含子元素的子元素ID 540以及多个实体指示符550以指示元素是否包含可以保证用于显示元素的表面或虚拟对象与显示元素的多个版本兼容的需要的多个实施方式。父元素是2D内容内的元素/对象,其可包含子元素(例如,子元素)。例如,具有220的值的元素ID(例如,主视频220)具有260的父元素ID值(例如,活动标签260),其指示主视频220是活动标签260的子元素。或者以不同的方式陈述,主视频220被包括在活动标签260内。继续相同的示例,主视频220具有指示用户评论230与主视频220相关联的子元素ID 230(例如,用户评论230)。本领域普通技术人员可以理解,元素表格500可以是关系数据库或任何类型的数据库中的表格。另外,元素表格500可以是计算机存储器(例如,高速缓存)中的阵列,其包含在图4的410处识别2D内容内的元素的结果。
元素表格500的行560中的每一行对应于网页内的元素。元素ID 510是包含针对每个元素的唯一识别符(例如,元素ID)的列。在一些实施方式中,元素的唯一性可以被定义为元素ID 510列与表格内的另一列的组合(例如,如果内容设计者识别了多于一个的偏好,则为偏好520列)。偏好520是一列,其值可以至少部分地基于由内容设计者/开发者(例如,网页设计者)定义的并且由在图4的430处从每个元素提取提示或标签中公开的系统和方法识别的HTML标签和属性来确定。在其他实施方式中,可以至少部分地基于预定义的浏览器规则来确定偏好520列,以指定网页内的某些类型的元素要在3D环境中显示的位置。这些预定义的规则可以向系统和方法提供建议,以确定将元素最佳放置在3D环境中的位置。
父元素ID 530是一列,其包含父元素的元素ID,其中当前行中的该特定元素显示在父元素中或与其相关。网页内的特定元素可以被嵌入、被放置在页面的另一元素内或者与页面上的另一元素有关。例如,在一个实施方式中,元素ID 510列的第一条目存储与图2的主视频220对应的元素ID 220的值。与主视频220对应的偏好520列中的偏好值是基于HTML标签和/或属性确定的,并且在该实施方式中,是该元素要被放置在用户的物理环境105的“主要”位置。取决于用户108的当前位置,该主要位置可以是客厅中的壁,或者是用户108当前正在注视的厨房中的炉顶罩,或者如果是在宽的打开空间中,则可以是投影在用户的场地线前面的虚拟对象,其中主视频220可以被投影在该场地上。在稍后的部分中将公开关于2D内容的元素如何显示给用户108的更多信息。继续当前示例,父元素ID 530列存储与图2的活动标签260对应的元素ID 260的值。因此,主视频220是活动标签260的子。
子元素ID 540是一列,其包含子元素的元素ID,其中当前行中的该特定元素已经显示在子元素内或与其相关。网页内的特定元素可以被嵌入、被放置在页面的另一元素内或者与页面上的另一元素有关。继续当前示例,子元素ID 540列存储与图2的用户评论230对应的元素ID 230的值。
多个实体指示符550是一列,其指示元素是否包含多个实体,这些实体可以保证用于显示元素的表面或虚拟对象与显示元素的多个版本兼容的需要(例如,元素可以是用户评论230,其中对于主视频220,可能有多于一个评论可用)。继续当前示例,多个实体指示符550列存储“否”的值以指示主视频220不具有位于活动标签260中的多个主视频或不与活动标签260中的多个主视频对应(例如,“否”主视频220的多个版本)。
继续当前示例,元素ID 510列的第二条目存储与图2的用户评论230对应的元素ID230的值。在偏好520列中与用户评论230对应的偏好值示出了“水平”的偏好,以指示用户评论230要被放置在用户的物理环境105中某处的“水平”表面上。如上所述,水平表面可以基于用户的物理环境105中的可用水平表面来确定。在一些实施方式中,用户的物理环境105可不具有水平表面,在这种情况下,本公开的系统和方法可以识别/创建具有水平表面的虚拟对象以显示用户评论230。继续当前示例,父元素ID 530列存储与图2的主视频220对应的值元素ID 220,以及多个实体指示符550列存储“是”的值以指示用户评论230可以包含一个以上的值(例如,一个以上的用户评论)。
元素表格500内的其余行包含用户108感兴趣的其余元素的信息。本领域的普通技术人员可以理解,存储在410处识别2D内容内的元素的结果可以改善计算机本身的功能,因为一旦对2D内容执行了该分析,如果另一用户对同一2D内容感兴趣,该系统和方法就可以保留该信息,以用于2D内容的未来的分析。可以避免用于解构该特定2D内容的系统和方法,因为它之前已经完成。
在一些实施方式中,元素表格500可以被存储在存储装置130中。在其他实施方式中,元素表格500可以被存储在本地存储装置140中,以用于快速访问最近观看的2D内容或用于对最近观看的2D内容的可能的重新访问。在其他实施方式中,元素表格500可以被存储在远离用户108的存储装置130和位于用户108本地的本地存储装置140两者处。
返回图3,该方法在330处继续识别周围表面。用户108可以通过头戴式系统160观看用户的物理环境105,以允许头戴式系统160捕获和识别周围表面,例如,墙壁、桌子、绘画、窗框、火炉、冰箱、电视等。头戴式系统160由于位于头戴式系统160上或在任何其他类型的类似装置上的传感器和相机而意识到用户的物理环境105内的真实对象。在一些实施方式中,头戴式系统160可以将在用户的物理环境105内观察到的真实对象与被存储在存储装置130或本地存储装置140内的虚拟对象进行匹配,以识别可用于这些虚拟对象的表面。真实对象是在用户的物理环境105内识别的对象。虚拟对象是在用户的物理环境内不存在的物理对象,但可以显示给用户以使其看起来好像虚拟对象存在于用户的物理环境中。例如,头戴式系统160可以检测用户的物理环境105内的桌子的图像。可以将桌子的图像简化为3D点云对象,以用于在存储装置130或本地存储装置140处的快速且有效的比较和匹配。如果检测到真实对象和3D点云对象(例如,桌子的)的匹配,则该系统和方法可以把桌子识别为具有水平表面,因为代表桌子的3D点云对象被定义为具有水平表面。下面在图6中公开了识别周围表面的更详细的描述。
在一些实施方式中,虚拟对象可以是所提取的对象,其中所提取的对象可以是在用户的物理环境105内识别的物理对象,但是被显示给用户作为位于物理对象的位置处的虚拟对象,以使得可以对所提取的对象进行附加处理和关联,而这将无法在物理对象本身上完成(例如,以改变物理对象的颜色以突出显示物理对象的特定特征等)。另外,所提取的对象可以是从2D内容(例如,来自浏览器的网页)提取的虚拟对象并被显示给用户108。例如,用户108可以从网页选择诸如沙发的对象,其被显示在要在用户的物理环境105中显示的2D内容/网页上。系统可以识别所选择的对象(例如,沙发),并将所提取的对象(例如,沙发)显示给用户108,就像所提取的对象(例如,沙发)物理上存在于用户的物理环境105中。另外,虚拟对象还可以包括具有用于显示内容的表面(例如,靠近用户的用于观看某些内容的透明显示屏幕)的对象,这些表面不但不是用户的物理环境105中的物理存在,并且从2D内容中的显示内容的角度来看,也可以是向用户呈现某些内容的理想显示表面。
图6是示出根据一些实施方式的用于从用户的本地环境识别表面的方法的流程图。图6是公开在图3的330处识别周围表面的详细流程。图6以在610处识别用户的当前周围环境开始,类似于在图3的330处识别周围表面。该方法进行到在620处确定用户的姿势的下一个框。
在620处确定用户的姿势是识别用户的当前周围环境的框,因为用户的姿势可以为用户108提供关于用户的物理环境105内的对象的视角。例如,参考图1,使用头戴式系统160的用户108正在观察用户的物理环境105。在620处确定用户的姿势(例如,相对于世界的矢量和/或原点位置信息)可以有助于头戴式系统160理解例如:(1)用户108相对于地面有多高,(2)用户108必须旋转他们的头部以四周移动并捕获房间图像的角度,以及(3)用户108到桌子188、主墙壁180和侧墙壁184之间的距离。另外,用户108的姿势还有助于确定头戴式系统160在观察垂直表面182和186时的角度以及用户的物理环境105内的其他表面。
在630处,该方法识别周围表面的尺寸。用户的物理环境105内的每个候选表面都被标记并按对应的尺寸被分类。在一些实施方式中,用户的物理环境105内的每个候选表面也被标记并按对应的取向被分类。该信息可以有助于至少部分地基于表面的尺寸、表面的取向、用户108距特定表面的距离以及需要为该元素显示的信息类型,来识别哪个元素要映射到哪些表面。例如,在文章的文本大小可能太小以至于用户看不到是否被显示在具有小尺寸的遥远的墙壁上的情况下,视频可以比博客或文章显示得更远,其中博客或文章可包含大量信息。
在640处,该方法将周围表面的清单存储到非暂时性存储介质中,以供映射例程(例如,将元素映射到在图3的340处所识别的表面)用来将元素映射到特定表面。非暂时性存储介质可以包括诸如存储装置130或本地存储装置140的数据存储装置。所识别的表面可以被存储在诸如以下描述的图7中所公开的表格的特定表格中。在一些实施方式中,所识别的表面可以被存储在暂时性存储介质中。
图7示出了根据一些实施方式的用于存储从用户的本地环境识别的表面的清单的表格的示例。表面表格700是可以将识别周围表面过程的结果存储在数据库中的示例表格。表面表格700包括例如关于用户的物理环境105内的表面的信息,其具有包括表面ID 710、宽度720、高度730、取向740、真实或虚拟指示符750、数量(multiple)760以及位置770的数据列。本领域的普通技术人员可以理解,表面表格700可以是关系数据库或任何类型的数据库中的表格。另外,表面表格700可以是存储在图3的330处识别周围表面的结果的计算机存储器(例如,高速缓存)中的阵列。
表面表格700的行780中的每一行可以对应于来自用户的物理环境105的表面或可以在用户的物理环境105内显示给用户108的虚拟表面。表面ID 710是一列,其包含用于唯一地识别特定表面的唯一识别符(例如,表面ID)。特定表面的尺寸被存储在宽度720和高度730列中。
取向740是一列,其指示表面相对于用户108的取向(例如,垂直、水平等)。真实/虚拟750是一列,其指示特定表面是否位于用户的物理环境105内的真实对象上,如使用头戴式系统160的用户108所感知的那样,或者特定表面是否位于由头戴式系统160生成并显示在用户的物理环境105中的虚拟对象上。头戴式系统160可能必须针对用户的物理环境105可能不包含足够的表面来显示用户108希望显示的一定数量的内容的情况来生成虚拟对象。在这些实施方式中,头戴式系统160可以从现有虚拟对象的数据库中搜索,这些现有虚拟对象可以具有适当的表面尺寸以显示被识别用于显示的某些类型的元素。该数据库可以来自存储装置130或本地存储装置140。
数量760是一列,其指示表面/对象是否与显示元素的多个版本兼容(例如,该元素可以是图2的次标签250,其中对于特定的网页浏览器110,可以存在一个以上的次(例如,非活动)标签(例如,每个标签一个网页))。如果数量760列具有“多个”的值(诸如以下情况:表面ID列的第四个条目存储与图2的虚拟Rolodex 190对应的109的值,以及表面ID列的第五条目存储与图2的多堆叠虚拟对象194对应的194的值),系统和方法可以确定,如果存在一个元素(其可具有该元素的多个版本),例如对于非活动标签就是这种情况,则这些是可以容纳多个版本的表面的类型。
位置770是一列,其指示物理表面相对于参考系或参考点的位置。如图7中的位置770的列标题中所示,物理表面的位置可以被预确定为表面的中心。在其他实施方式中,该位置可以被预确定为表面的另一个参考点(例如,表面的前、后、顶部或底部)。位置信息可以被表示为从物理表面的中心相对于某一参考系或参考点的矢量和/或位置信息。可存在几种方法来表示表面表格700中的位置。例如,表面表格700中的关于表面ID 194的位置的值以抽象形式表示,以说明矢量信息和参考系信息(例如,“系”下标)。x,y,z是每个空间维度中的3D坐标,并且系表示3D坐标相对于哪个参考系。
例如,表面ID 186示出了表面186的中心的位置相对于真实世界原点为(1.3,2.3,1.3)。作为另一示例,表面ID 192示出了表面192的中心的位置相对于用户参考系为(x,y,z),表面ID 190示出了表面190的中心的位置相对于另一表面182为(x,y,z)。参考系对于消除当前正在使用哪个参考系的歧义很重要。在将真实世界的原点作为参考系的情况下,通常是静态参考系。但是,在其他实施方式中,当参考系是用户参考系时,用户可以是移动参考系,在这种情况下,如果用户正在移动并且用户参考系被用作参考系,则平面(或矢量信息)可能随用户移动并改变。在一些实施方式中,用于每个表面的参考系可以是相同的(例如,用户参考系)。在其他实施方式中,取决于表面(例如,用户参考系、世界参考系、房间中的另一表面或对象等),用于被存储在表面表格700内的表面的参考系可以是不同的。
在当前示例中,被存储在表面表格700内的值包含在图2的用户物理环境105内识别的物理表面(例如,垂直表面182和186以及水平表面192)和虚拟表面(例如,虚拟Rolodex190和多堆叠虚拟对象194)。例如,在当前实施方式中,表面ID 710列的第一条目存储与图2的垂直表面182对应的表面ID 182的值。分别与垂直表面182的宽度和高度对应的宽度720列中的宽度值和高度730列中的高度值指示垂直表面182具有为48”(宽)乘36”(高)的尺寸。类似地,取向740列中的取向值指示垂直表面182具有“垂直”的取向。另外,真实/虚拟750列中的真实/虚拟值指示垂直表面182是“R”(例如,真实)表面。数量760列中的数量值表示垂直表面182为“单个”(例如,只能容纳单个内容)。最后,位置770列使用(2.5,2.3,1.2)的矢量信息指示垂直表面182相对于用户108的位置。
表面表格700内的其余行包含关于用户的物理环境105内的其余表面的信息。本领域的普通技术人员可以理解,存储在图3的330处识别周围表面的结果改善了计算机本身的功能,因为一旦已经对周围表面执行了该分析,如果另一用户或相同用户108位于相同的物理环境105中但对不同的2D内容感兴趣,则可以由头戴式系统160保留该分析以用于用户的周围表面的未来的分析。可以避免在330处识别周围表面的处理框,因为这些处理框之前已经完成。唯一的区别可以包括至少部分地基于识别不同的2D内容内的元素的元素表格500可用于识别附加的或不同的虚拟对象。
在一些实施方式中,表面表格700被存储在存储装置130中。在其他实施方式中,表面表格700被存储在用户108的本地存储装置140中,以用于快速访问最近观看的2D内容或对最近观看的2D内容进行可能的重新访问。在其他实施方式中,表面表格700可以被存储在远离用户108的存储装置130和位于用户108本地的本地存储装置140两者处。
返回图3,该方法继续,使用来自在320处识别2D内容中的元素的所识别的元素与来自在330处识别周围表面的所识别的周围表面的组合以及在一些实施方式中,使用虚拟对象作为附加表面,将元素映射到在340处的所识别的表面。将所识别的元素映射到所识别的表面可涉及多个因素,其中一些因素可包括经由由2D内容设计者/作者通过使用诸如上面讨论的示例HTML页面解析器的HTML页面解析器来定义的HTML标签元素,来分析由2D内容设计者/作者提供的提示。其他因素可以包括从由AR浏览器、AR接口和/或云存储所提供的关于如何以及在何处映射某些2D内容的预定义规则组中选择。图8提供了将来自2D内容的一个或多个元素映射到所识别的表面的映射过程的详细流程。
图8描绘了示出根据一些实施方式的用于将来自2D内容的元素映射到表面的方法的流程图。图8是公开在图3的340处将元素映射到所识别的表面的详细流程。
在810处,方法确定所识别的元素是否包含由2D内容设计者提供的提示。当2D内容设计者最初设计2D内容时,2D内容设计者可以提供有关最佳显示特定元素的位置的提示。例如,图2的主视频220可以是在活动标签260内的网页上显示的YOUTUBE视频。2D内容设计器(例如,网页设计者)可以提供提示以指示主视频220被最佳显示在用户108的直接视图中的垂直平面上。在一些实施方式中,这可以通过使用最初设计用于2D网页内容的现有HTML标签元素来进一步定义在3D显示环境可用的情况下2D内容内的特定元素被显示的方式来实现。作为另一示例,2D内容设计者可以提供提示,其指出针对特定网页,3D图像可用,而不是2D图像。例如,在2D图像的情况下,除了提供基本的HTML标签来识别2D内容的源之外,2D内容设计者还可以提供其他不常用的HTML标签来识别2D图像的3D版本的来源,并且另外,还提供提示:如果使用图像的3D版本,则将其突出显示在用户视图的前面(例如,在3D布局的主框架中)。在一些实施方式中,仅在呈现2D内容的网页浏览器110可以具有3D显示功能以利用增强的3D图像的情况下,2D内容设计者可以向2D图像的3D图像位置提供该附加的“提示”。本领域的技术人员可以理解,除了本文已经公开的内容以外,2D内容设计者还可以提供许多其他方式来提供关于特定内容元素要被放置在2D布局中的位置的提示,并且这些是2D内容设计者可以提供提示以最佳地显示2D内容内的某些或所有元素的不同方式的一些示例。
在另一实施方式中,HTML标签标准可以包括新的HTML标签或类似的标记语言的创建,以用于针对诸如由上面讨论的网页开发者提供的示例HTML网页的AR/VR特定类型的浏览器提供在用户周围环境中的3D对象放置的提示。关于该撰写,尚未创建和/或采用这些新的HTML标签作为HTML语言内的标准标签。然而,一旦HTML标准包括这些类型的附加标签,当前方法和系统的某些实施方式利用这些新标签来进一步提供所识别的元素到所识别的表面的映射。本领域技术人员可以理解,除了HTML标签以外,还有许多其他语言可以被修改或采用,以进一步提供关于如何在3D环境中显示内容元素的提示,并且新的HTML标签标准仅仅是实现这样的目标的一种方法。
在820处,该方法确定是使用由2D内容设计者提供的提示还是使用预定义的规则组来将来自2D内容的一个或多个内容元素映射到某些类型的3D表面。在一些实施方式中,在不存在由2D内容设计者提供的针对特定内容元素的提示的情况下,该系统和方法可以使用预定义的规则组确定将内容元素映射到表面的最佳方式。在其他实施方式中,即使当可能存在由2D内容设计者提供的内容元素的放置的提示时,该系统和方法也可以确定可以最佳地使用预定义的规则组将内容元素映射到表面。然而,在其他实施方式中,该系统和方法可以确定由2D内容设计者提供的提示是足够的,因此使用这些提示将内容元素映射到表面。最后,AR浏览器的最终决定是确定是使用由2D内容设计器提供的提示还是使用预定义的规则将内容元素映射到表面。
在830处,假设确定使用由2D内容设计者提供的提示是进行的方法,则该方法分析提示并至少部分地基于提示(例如,查询表面表格700)搜索可用于显示特定内容元素的所识别的周围表面的清单。在840处,该方法运行最佳拟合算法,以基于所提供的提示为特定内容元素选择最佳拟合表面。例如,最佳拟合算法可以针对特定网页内的特定内容元素做出“主要内容”的提示,并尝试从相对于3D环境中的用户108是前面和中间的可用的所识别的周围表面境中识别3D表面。例如,图2的主视频220被映射到垂直表面182,因为主视频220具有在活动标签260内的图5的元素表格500的偏好520列中的“主要”的偏好值,并且垂直表面182是用户108直视的表面并具有最佳尺寸以显示主视频220。
在850处,该方法将元素到表面表格的映射中的关于内容元素的映射结果存储在非暂时性存储介质中,以供显示算法用来将内容元素显示在它们各自映射的表面上,无论这些表面是否是所识别的周围表面或在用户的周围环境中显示的虚拟对象。非暂时性存储介质可以包括诸如存储装置130或本地存储装置140的数据存储装置。映射结果可以被存储在诸如以下描述的图9中公开的表格的特定表格中。
图9示出了根据一些实施方式的用于存储内容元素从2D内容到表面的映射的表格的示例。映射表格900是将内容元素被映射到表面过程的结果存储到数据库中的示例表格。映射表格900包括例如关于内容元素(例如,元素ID)和内容元素被映射到的表面(例如,表面ID)的信息。本领域普通技术人员可以理解,映射表格900可以是被存储在关系数据库或任何类型的数据库或存储介质中的表格。另外,映射表格900可以是计算机存储器(例如,高速缓存)中的阵列,其包含在图3的340处元素到所识别的周围表面的映射的结果。
映射表格900中的每一行对应于从2D内容被映射到用户的物理环境105或显示给用户108的虚拟对象中的表面的内容元素,其中该虚拟对象看起来是位于用户的物理环境105中的对象。例如,在当前实施方式中,元素ID列的第一条目存储与主视频220对应的元素ID 220的值。在表面ID列中与主视频220对应的表面ID值是对应于垂直表面182的182。以这种方式,主视频220被映射到垂直表面182。类似地,用户评论230被映射到水平表面192,建议视频240被映射到垂直表面186,以及次标签250被映射到虚拟Rolodex 190。映射表格900中的元素ID可以与被存储在图5的元素表格500中的元素ID相关联。映射表格900中的表面ID可以与被存储在图7的表面表格700中的表面ID相关联。
返回到图8,在860处,假设确定使用预定义规则是进行的方法,则该方法查询包含内容元素到表面的映射规则的数据库,并确定针对网页内的特定内容元素,要考虑使用哪种类型的表面来映射内容元素。例如,针对来自图2的主视频220返回的规则可以指示要将主视频220映射到垂直表面,并因此在搜索表面表格700之后,显示了多个候选表面(例如,垂直表面182和186以及虚拟Rolodex 190)。在870处,预定义的规则组可以运行最佳拟合算法以从可用候选表面中选择哪一个表面是用于该主视频220的最佳拟合。至少部分基于最佳拟合算法,由于候选表面的全部,确定主视频220要被映射到垂直表面182,垂直表面182是在用户108的直接视线内的表面,并且垂直表面182具有用于显示视频的最佳尺寸。一旦确定一个或多个元素的映射,则在850处,该方法如上所述将元素到表面表格的映射中的关于内容元素的映射结果存储在非暂时性存储介质中。
返回到图3,该方法继续以在350处将一个或多个元素作为虚拟内容显示到映射表面上。头戴式系统160可以在头戴式系统160内包括一个或多个显示装置,例如微型投影仪(未示出)以显示信息。如在340处所映射的,将一个或多个元素显示在相应的映射表面上。使用头戴式系统160,用户108可以在相应的映射表面上看到内容。本领域普通技术人员可以理解,内容元素被显示为看起来物理上附在各种表面(物理或虚拟)上,但是实际上,如用户108所感知的那样,内容元素实际上被投影到物理表面上,以及在虚拟对象的情况下,虚拟对象被显示为看起来附在虚拟对象的各个表面上。本领域普通技术人员可以理解,当用户108转动他们的头部或向上或向下看时,头戴式系统160内的显示装置可以继续将内容元素附着在其各自的表面上以进一步给用户108提供内容被附着到映射表面的感知。在其他实施方式中,用户108可以通过由用户108的头部、手、眼睛或声音进行的运动来改变用户的物理环境105的内容。
改进的浏览器/应用实现
在混合现实系统中,用户的工作空间不受显示屏幕的尺寸的限制。因此,与常规浏览器不同,混合现实系统中的浏览器窗口可以被放置和保留在用户的环境中的任何位置。问题在于,常规的浏览器技术被配置为假设可显示的浏览器位置必须被限制在显示屏幕的界限内。
本公开的以下部分针对在混合现实环境中观看窗口的改进方法。使用混合现实设备,用户可以具有与用户的物理空间相关联并别放置在用户的物理空间中的多个浏览器窗口。例如,用户可以在第一房间中打开第一浏览器窗口,在第二房间中打开第二浏览器窗口。由本公开的该部分解决的问题涉及这样一种情况,其中浏览器窗口被打开以使得它被锚定到第一位置中的位置,以使得当用户转到第二位置时浏览器窗口不再可见。问题在于,随着用户改变环境(例如在房间之间移动或去不同的地理位置),用户仍然可能仍需要访问他/她在先前地理位置中的先前会话。
图10示出了用于实现用户的窗口的观看的方法的流程图,不考虑用户相对于一个或多个先前打开的窗口的位置的当前位置。在一些实施方式中,提供控制界面以选择关于与用户相关联的所有和/或多个窗口的显示。在一些实施方式中,控制界面可以是用户界面,使得用户可以例如通过向系统提供用户输入并且系统通过执行对应的命令来响应,而与MR显示系统交互。在一些实施方式中,用户可以与MR系统的视觉、听觉、触觉或其他方面交互。在一些实施方式中,用户界面可以包括浏览器枢纽(hub),其在一些实施方式中可以是一个或多个浏览器应用的一个或多个方面的视觉表示。例如,可以在浏览器枢纽内呈现“所有窗口”图标,在该处选择“所有窗口”图标可启动与用户相关联的多个窗口的显示,而不考虑用户相对于当前窗口位置(例如,窗户被打开的位置)的位置。图10开始于框1702,当系统接收到显示所有或多个窗口的命令时。在一些实施方式中,当用户选择可位于浏览器枢纽用户界面内的所有窗口图标时,可以发生框1702。在一些实施方式中,系统接收针对一个以上窗口的选择。在一些实施方式中,系统可以接收用户输入,该用户输入指示用户想要观看与该用户的系统相关联的一个以上的窗口。
在1704处,针对与用户相关联的多个窗口检索信息。在一些实施方式中,用户可以具有与该用户相关联的一个或多个窗口。为其收集信息的窗口可位于相异的物理位置。根据一些实施方式,代替由每个应用独立地在一对一的基础上在VR/AR环境中管理浏览器窗口,窗口可以替代地被渲染成有界的体积,在下文中可以被称为“棱柱”。每个棱柱可以具有允许全域(universe)应用在VR/AR环境中管理和显示棱柱的特性和属性,以使得全域应用可以通过管理棱柱本身来管理在VR/AR环境中虚拟内容的放置和显示。关于实现棱柱的方法的进一步细节在2019年6月27日公布的题为“METHODS AND SYSTEM FOR MANAGING ANDDISPLAYING VIRTUAL CONTENT IN A MIXED REALITY SYSTEM”的美国专利公开号2019/0197785中进行了描述,其全部内容通过引用并入本文。可以通过访问与用户相关联的棱柱的数据库来收集关于窗口的信息,其中棱柱可以在指定位置显示一个或多个窗口。在2018年11月1日公布的题为“MATCHING CONTENT TO A SPATIAL 3D ENVIRONMENT”的美国专利公开号2018/0315248中描述了用于在混合现实环境中显示、管理或导航虚拟内容的其他细节,其全部内容通过引用并入本文。
在一些实施方式中,加载“所有窗口”视图,显示所有打开的窗口和标签式窗口,每一个由预览、图标、域名和/或页面标题或窗口的任何其他合适的视觉表示来表示(1706)。在一些实施方式中,打开的窗口的示例包括由一个或多个用户主动与之交互的窗口。其他示例包括放置的应用/窗口/浏览器、是否具有打开/活动状态、暂停状态、停止状态、关闭状态等。此外,只要应用的实例存在/被放置并且具有一个或多个具有内容的标签,则在一些实施方式中,可以使用当前的发明方法远程访问它。作为另外的示例,打开的窗口可以对应于与给定应用(例如,浏览器)相关联的一些或所有棱柱,而不考虑其状态(活动、暂停、关闭等),可以通过当前实施方式中的“所有窗口”视图对其进行远程访问。在一些实施方式中,“所有窗口”视图可包括被包含在真实世界中的一个或多个物理位置处的一个或多个棱柱内的所有浏览器窗口。图12-14示出了并且下面描述了“所有窗口”和类似的“所有应用”视图的示例。尽管以“所有窗口”为示例,但也可以替代地使用任何其他单个应用。尽管以“所有应用”为示例,但也可以替代地使用所有应用的任何子集。
框1704中所识别的各个窗口可以以这种方式被显示在用户的当前位置。这可以通过将所识别的窗口的位置参数更改为用户当前物理环境中的位置来完成,实际上是将窗口召集(summon)给用户。在一些实施方式中,这可以通过创建窗口信息的副本并替代地将新位置与该信息相关联来实现,该新位置例如用户当前位置处或附近的位置。然后渲染窗口(以预览形式、缩略图形式和/或完整形式),并在被分配给各个窗口和/或窗口棱柱的坐标处将其显示给用户。
在1708(在该方法中是可选的)处,可以识别悬停状态并且该悬停状态可以相对于一个或多个窗口起作用。例如,在悬停时,正被悬停的窗口可以移入到前景中,其他窗口可以可选地略微后退。具有多个标签的窗口可略微扩展以显示背景标签。在一些实施方式中,代替窗口,正被悬停的对象可以是浏览器窗口的任何视觉表示,例如预览、全屏或缩小的屏幕。在1710处,用户选择窗口中的一个或多个。在一些实施方式中,用户可以通过单击控制器(例如,图腾)上的按钮、或者通过执行特定手势、或者通过持续预定时间段看向窗口来选择窗口。如果用户选择窗口,则原始窗口的复本将被加载在用户FOV的前景,并且关闭所有窗口视图。在一些实施方式中,取决于用户选择的偏好,复本重复更新原始、复本更新全部或一些其他副本,和/或复本独立于原始。在一些实施方式中,加载在前景中的内容对应于被移动(例如,未被钉扎(pin)并整体移动)的现有棱柱。在一些实施方式中,加载在前景中的内容对应于具有新的关联位置信息的、被复制的现有棱柱。如果用户激活上下文菜单,则可以向用户呈现用户菜单,该用户菜单包括用于关闭窗口、将其添加到集合和/或最小化窗口的选项。上下文菜单可以是具有预定用户界面选项的用户界面,该用户界面选项告诉系统在被选择时执行特定功能。在一些实施方式中,上下文菜单可以通过在将悬停在诸如窗口的可选择的对象之上时通过对图腾上的触摸板的中心施加压力按压来激活。在一些实施方式中,上下文窗口可以类似于在台式计算机上的右键单击,因为该动作使用户能够对所选择的对象执行诸如移动、关闭等的动作。
图11A至图11B示出了为用户显示窗口的该过程,而不管窗口的先前物理位置。在混合现实实施方式中,窗口可以与装置和/或物理空间相关联。用户可以将内容放置在整个家中或者全天放置在不同的地理位置处。在图11A中,可以看到第一浏览器窗口1已被放置在第一物理位置,而第二浏览器窗口2已被放置在第二物理位置。由于在混合现实实施方式中窗口与特定的物理位置/坐标空间相关联,因此这意味着窗口1通常仅在用户108位于物理位置1时可见,而在用户108位于物理位置2时不可见。类似地,窗口2通常仅在用户108位于物理位置2时可见,而在用户108位于物理位置1时不可见。
如图11B所示,“所有窗口”视图1805允许用户108观看、重新打开和关闭打开的窗口,而不考虑物理位置(关于“打开的”窗口的示例,请参见前面的段落)。因此,视图1805可以显示窗口1和窗口2的可操纵版本(例如,视觉表示),尽管这些窗口与不同的物理位置相关联。当被从浏览器的控制枢纽访问时,观看所有窗口(或可选地“所有窗口”)允许用户观看所有打开的窗口,而不考虑其物理位置或地理位置。窗口可以位于同一房间、不同房间或完全位于另一个空间中。屏幕快照、网站图标、域和/或页面标题用于识别(例如,视觉上表示)每一个窗口。在一些实施方式中,具有多个标签的窗口在悬停时显示基础标签的堆叠预览。使用上下文菜单,用户可以打开窗口的新实例、关闭窗口、最小化窗口、标记窗口以及将窗口添加到集合中—不考虑位置。还可以提供全局按钮,可用于关闭或最小化所有打开的窗口。
图12-13提供了在混合现实界面内显示多个窗口的可能方法的示例。这些图示出了实现界面的示例方法,在该界面中,多个窗口被显示并呈现给用户。可以通过例如指向装置的合适的用户输入装置选择浏览器窗口中的任何窗口,以供用户进一步观看。如果存在太多无法容纳在界面上的窗口,则在一些实施方式中,附加的窗口可能会在视觉上“重影(ghost)”(如图12和图13的右侧所示),并提供滚动控件以滚动到附加窗口。
因此,已经描述了一种在混合现实环境中观看窗口的改进方法,其中视图被提供具有用户的窗口,而不考虑用户相对于一个或多个先前打开的窗口的当前位置。这解答并解决了当使用混合现实设备时用户可能想要访问与一个或多个不同物理位置相关联的一个或多个浏览器窗口的情况。
尽管已经就浏览器应用而言描述了以上实施方式,但是权利要求的范围还涵盖了任何其他应用或应用组。在一些实施方式中,可以根据权利要求来选择并显示操作系统中的所有应用。这样的实施方式将具有棱柱中的应用,而不是在窗口中的被解析的浏览器内容。
在图14中描绘了这样的实施方式,其在多个棱柱中显示了多个应用。“所有”按钮是示例的下拉过滤器,以帮助对用于显示和选择的应用选项进行分类(例如,按类别)。尽管可以使用其他合适的选择或过滤方法和/或界面,但是9m到30m的范围内的示例滑动条基于与用户的距离来选择被包括在所有应用/横向(landscape)管理器显示器中的应用。在一些实施方式中,用户可以将滑动条设置为与房间对应的较小距离,以显示该房间中可用的所有应用。在一些实施方式中,用户可以将滑动条设置为与房屋对应的更大距离,以显示整个房屋中可用的所有应用。在一些实施方式中,可以将滑动条设置为与所有应用对应的最右边,而不考虑位置。“关闭所有”按钮是用于控制和/或操纵应用的示例用户界面元素。如上所述,其他用户界面元素可以全部打开、移动等。图14描绘了打开的应用当中的“你好(HELLO)”应用和“集合”应用的两个不同实例。因此,“所有”按钮可以显示一个应用以及不同应用的多个实例。这里描述的各种混合现实网页浏览技术和应用有时被称为Helio技术或应用,并且混合现实网页浏览器有时可以被称为Helio浏览器。
系统架构概述
图15是适合于实现本公开的实施方式的示例性计算系统1400的框图。计算系统1400包括用于传达信息的总线1406或其他通信机制,其互连子系统和装置,例如处理器1407、系统存储器1408(例如,RAM)、静态存储装置1409(例如,ROM)、磁盘驱动器1410(例如,磁性或光学)、通信接口1414(例如,调制解调器或以太网卡)、显示器1411(例如,头戴式系统160的显示器,其将虚拟内容投影到用户的眼睛)、输入装置1412(例如,键盘和鼠标、手持图腾等)。与头戴式系统160相关联的处理器170可以包括处理器1407。处理器170或处理器1407可以实现再次描述的功能。
根据一个实施方式,计算系统1400通过处理器1407执行包含在系统存储器1408中的一个或多个指令的一个或多个序列来执行特定操作。这样的指令可从另一计算机可读/可用介质(例如,静态存储装置1409或磁盘驱动器1410)读入到系统存储器1408中。在替代实施方式中,可使用硬布线的电路代替软件指令或与软件指令结合来实现在本公开中所描述的功能。因此,本公开的实施方式不限于硬件电路和/或软件的任何特定组合。在一个实施方式中,术语“逻辑”应表示用于实现本公开的全部或部分的软件或硬件的任何组合。
如本文所用,术语“计算机可读介质”或“计算机可用介质”是指参与向处理器1407提供指令以供执行的任何介质。这样的介质可采取许多形式,包括但不限于非易失性介质和易失性介质。非易失性介质包括例如光盘或磁盘,例如磁盘驱动器1410。易失性介质包括动态存储器,例如系统存储器1408。
计算机可读介质的常见形式包括,例如,软盘、柔性盘、硬盘、磁带、任何其他磁介质、CD-ROM、任何其他光学介质、RAM、PROM、EPROM、FLASH-EPROM、任何其他存储器芯片或盒式磁带、或计算机可从中读取的任何其他介质。
在本公开的实施方式中,由单个计算系统1400执行用于实践本公开的指令序列的执行。根据本公开的其他实施方式,由通信链路1415(例如,LAN、PTSN、或无线网络)耦接的两个或更多个计算系统1400可相互协作地执行实践本公开指令的序列。
计算系统1400可经由通信接口1414通过通信链路1415发送和接收消息、数据和指令,包括程序(例如,应用代码)。所接收的程序代码可按其被接收的那样由处理器1407执行和/或被存储在磁盘驱动器1410或其他非易失性存储中,以供以后执行。计算系统1400可通过数据接口1433与外部存储装置1431上的数据库1432通信。
混合现实中的安全授权
混合现实显示系统(例如,参考图1描述的头戴式系统160)的用户可以与由混合现实系统正在执行的一个或多个应用交互。沉浸式应用可以指单个应用,其中由混合现实系统显示的基本上所有虚拟内容都由沉浸式应用生成,从而使用户感觉好像他或她沉浸在应用中。沉浸式应用的一个示例是游戏,其中用户体验他或她在其中交互的游戏环境。横向应用可以指可以与其他(例如,一个或多个)应用一起执行的应用,以便用户可以查看与一些或所有横向应用相关联的虚拟内容。例如,参考图14,用户可以与网络浏览器(例如,Helio)、应用集合(例如,图14中所示的鲸(Whales))、视听媒体播放器应用、社交媒体应用等一个或多个实例进行交互。与每个横向应用相关联的虚拟内容可以被呈现为好像出现在与用户不同的距离处。用户因此可以使多个横向应用打开、可见且同时可交互。
当用户正在与沉浸式或横向混合现实应用交互时,应用可以提供需要用户授权才能访问功能的该功能。例如,在沉浸式游戏环境中,游戏应用可以提供允许用户购买虚拟角色升级(例如,新衣服、新游戏能力等)的功能。类似地,电子商务应用可以允许用户购买商品。作为另一个示例,社交媒体应用可以允许用户搜索并找到社交媒体联系人(例如,朋友)。在这些情况中的每一种情况下,应用可以要求用户在访问功能之前授权访问其他服务或认证他或她的凭证。例如,在进行购买之前,游戏或电子商务应用可能需要对用户进行认证并选择支付方法(例如,有效的信用卡或支付账户)以阻止欺诈。作为另一示例,在允许搜索之前,社交媒体应用可以要求用户安全地登录用户的社交媒体帐户,以便搜索用户的社交网络以保护机密。
将描述通过提供授权或认证用户的功能(除非上下文另有明确说明,术语“授权”或“认证”在本文中可互换使用)来允许混合现实用户安全地与混合现实应用(例如,横向或沉浸式应用)交互的系统和方法的实现。授权协议,在本文中有时称为“OAuth”,可以是一种开放标准,允许应用或服务授权访问应用的资产,并且不能共享任何用户的登录信息,这增强了授权过程的安全性。
在一些情况下,应用是由第三方开发者开发的,而不是由混合现实系统的开发者开发的。可以提供应用编程接口(API)的实现以使得应用的开发者能够例如直接从第三方应用访问授权功能。这样的API可以有利地使开发者容易获得安全授权(他们可以调用API来打开适当的窗口或显示适当的虚拟内容),并且还可以使所有应用之间的这种授权过程相对相似,这使得用户更容易执行授权过程。例如,API可用于调用OAuth浏览器窗口,该窗口提供授权功能(例如,安全登录站点或认证支付凭证的能力)。OAuth浏览器窗口可以只允许有限的一组功能(例如,安全授权),并且可以在授权过程进行时禁用与由混合现实系统正在执行的其他应用的交互。一旦授权完成,可以引导用户回到应用。因此,OAuth服务的实现允许将授权无缝整合到应用流中。下面将描述OAuth浏览器窗口的实现行为的示例。此类示例旨在说明而非限制。在其他实施方式中,网络浏览器窗口、用户界面、按钮和数据输入框可以与所示不同地进行配置。
图16A至图16F示出了在混合现实环境内显示授权窗口的各种方法。在这些图中,应用是沉浸式应用,例如向用户显示沉浸式游戏内容1604的沉浸式游戏。游戏应用可以提供允许用户搜索当前在线并且正在玩游戏的朋友的功能,从而用户可以和他们一起玩游戏。在游戏期间,应用可以请求访问另一服务,例如搜索引擎(简称SearchEngine),以访问用户的电子邮件、联系人或搜索引擎提供的其他服务。应用可以从应用内的任何地方请求OAuth服务。游戏应用可以请求OAuth服务(例如,经由API调用)并且可以向用户显示窗口1610以提供游戏对访问搜索引擎服务的同意。窗口1610可以是不透明的(例如,基本上阻挡其后面的内容)或可以具有一定量的透明度。例如,图16A中所示的窗口1610是部分透明的,使得窗口1610后面的虚拟内容部分可见(使用虚线示出)。用户可以选择按钮1614以连接到搜索引擎或选择按钮1618以取消应用的连接到搜索引擎的尝试。如本文所述选择按钮,用户可以点击控制器(例如,图腾)上的按钮、执行特定手势、或在阈值时间段内注视按钮。
如果用户接受连接,则OAuth协议可以将虚拟内容的显示从沉浸式游戏内容1604转换到OAuth窗口(以下参考图16C描述)。可以使用任何种类的视觉效果转换,例如溶解、逐渐消失、擦除、剪切等。转换中的时刻的示例在图16B中示出,其中在缩小的圆圈内的虚拟游戏内容1604被显示,而在缩小圆圈1612外的虚拟内容1606可以是单色背景。在缩小的圆圈的半径变得足够小之后,游戏内容1604不再被感知,然后圆圈的尺寸可以增加以显示OAuth虚拟内容(见图16C)。
图16C示出了沉浸式OAuth授权窗口1620的示例。窗口1620显示请求用户授权的应用的名称1624(在这种情况下,沉浸式“游戏”应用)和服务(在本例中为搜索引擎)的网址1628,以便用户可以检查他或她被定向到的网络服务器是受信任的服务,而不是网络钓鱼或垃圾邮件服务。网址1628可以是统一资源定位器(URL)。在这个示例中,只有一行URL显示为“https://account.searchengine.com/account...”。在一些情况下,URL可能超过一行,并且用户可以选择显示网址1628的窗口1620的区域来显示链接的完整URL。如果显示URL需要超过阈值的行数(例如,超过6、8、10或更多行)或超过窗口大小的阈值分数(例如,超过窗口的1/4、1/3、1/2、2/3或更多),URL可以与滚动条一起显示,该滚动条允许用户滚动内容以查看所有URL。在一些实施方式中,用户可以通过轻敲控制器上的按钮(例如,图腾上的主按钮)或通过选择显示URL的区域之外的窗口1620的任何区域来隐藏完整的URL。
用户通过使用与服务相关联的授权窗口1632通过OAuth流来继续授权。在该示例中,窗口1632是SearchEngine.com登录窗口,用户可以在其中输入他或她的帐户名并授权访问(例如,通过选择授权按钮1636)。图16C中所示的登录窗口旨在说明由在线服务提供的认证或授权窗口的类型并且不旨在进行限制。在其他示例中,窗口1632可以是用于创建帐户、输入密码(例如,如果用户已经登录服务)、提供支付信息等的窗口。OAuth协议可以接受由第三方服务提供的任何认证或授权流。如果用户选择不继续授权协议,则用户可以选择按钮1638以取消授权过程并返回到应用(在这种情况下,沉浸式游戏)。
如果用户选择继续授权,则窗口1632转换到图16D中的窗口1640。第三方服务可以在后台通过分派(dispatch)序列(以下参考图18至图20B描述)提供一个或多个访问令牌。在该序列期间,前端可以显示窗口1640,其可显示表示正在被链接的服务的图标1642(例如,SearchEngine.com的“S”图标)或指示授权正在进行的文本1643。如果用户希望取消授权,他或她可以选择按钮1644以返回未授权的调用应用(例如,游戏)。在一些情况下,建立授权可能存在问题或难题(例如,输入了不正确的用户名或密码),并且显示可以转换到窗口1648,其可以提供出现问题的文本指示1652。用户可以选择按钮1656以取消授权过程并返回到调用应用(例如,游戏)或选择按钮1661以重试授权过程(在这种情况下,显示可以转换回到图16C中所示的窗口1620)。
在成功授权,调用应用(在该示例中,游戏)可以被置于前台。在授权期间可能已经被置于后台的其他应用也可能被置于前台。将应用置于前台可以包括以(与在后台执行时相比)更高的优先级执行应用,向用户显示应用特定的虚拟内容、增加应用特定的虚拟内容的不透明度或亮度内容,降低应用特定的虚拟内容的透明度,改变已显示的应用特定的虚拟内容的显示深度或尺寸(例如,更接近用户地或以增加的尺寸来显示内容),或允许应用接收用户输入。例如,如图16F所示,显示可以经由扩大的圆圈1660转换回到游戏虚拟内容1604,该扩大的圆圈1660的尺寸增加以使用户沉浸回到游戏中。
图17A至图17D示出了在混合现实环境内显示授权窗口的各种方法。在这些图中,应用是横向应用,例如向用户显示社交媒体内容1705的社交媒体应用。在该示例中,用户(“米亚·莱亚(Mia Leap)”)在线并链接到区域1706中所示的朋友“爱丽丝(Alice)”和“鲍勃(Bob)”。应用可以请求认证服务(例如,也可以访问任何其他应用的SSO服务),例如来自应用内任何位置的OAuth服务。例如,如果用户想要搜索可能在线的其他朋友,则用户可以选择按钮1708。显示转换到图17B所示的窗口1710,其包括允许用户搜索朋友的功能(例如,经由昵称或电话号码)。窗口1710还包括链接到第三方服务以寻找用户可能知道的朋友的功能。例如,用户可以选择按钮1712以链接到包括用户的电子邮件和联系信息的搜索引擎帐户(例如,在本示例中也称为SearchEngine.com)。
如果用户选择按钮1712(例如,以链接他或她的账户),则显示转换到图17C中所示的OAuth授权窗口1620。由于调用程序是横向应用(社交媒体应用),系统可以将调用应用置于后台并以沉浸模式加载OAuth授权窗口(这样用户只能与OAuth窗口交互)。在授权过程期间可以暂时隐藏其他横向应用(如果有横向应用运行的话)。使应用置于后台可以包括以较低优先级执行应用(与在前台执行时相比)、向用户隐藏应用特定的虚拟内容、降低应用特定的虚拟内容的不透明度或亮度,增加应用特定的虚拟内容的透明度,改变已显示的应用特定的虚拟内容的显示深度或尺寸(例如,离用户更远地显示内容或以减小的尺寸来显示内容),或阻止应用接收用户输入。如这里进一步描述的,在授权过程成功(或被用户取消)之后,应用然后可以在前台执行。
图17C中所示的OAuth窗口1620可以大体上类似于参考图16C中所示和描述的OAuth窗口。例如,请求用户授权的应用的名称可以显示在区域1625中。在该示例中,社交媒体程序“社交(Social)”正在请求访问SearchEngine.com,其URL示出在网址1628的区域中。登录窗口1632允许用户授权访问,并且用户可以通过选择按钮1638来取消授权。用户可以大体上如上面针对沉浸式游戏应用所描述的那样继续授权过程。
在OAuth协议完成并且用户成功授权第三方服务之后,用户返回到他或她在调用应用中离开的地方,状态基于授权信息被填充。其他应用(如果有正在运行的话)可以返回到前台或应用的先前状态。在该示例中,显示转换到寻找朋友窗口1730,该窗口现在在区域1734中填充有SearchEngine.com从用户的联系人中找到的联系人“卡琳(Caryn)”和“丹娜(Dana)”。在此示例中,用户可以通过选择相应的“+”按钮来选择关注这些联系人。
参考图16A至图17D描述的示例示出了沉浸式或横向应用可以如何调用OAuth授权协议。OAuth窗口(例如,图16C和17C中所示的窗口1620)可以具有可有益地帮助确保安全、机密授权的多个属性。OAuth窗口的属性可以大致相同(无论哪个应用调用该窗口),这有助于在混合现实平台上的所有应用中提供统一的授权过程,并为用户提供易于学习的过程。现在将描述OAuth窗口属性的非排他性和非限制性示例。这些属性可以单独使用、联合使用或以任何合适的组合使用。
OAuth窗口可以是具有有限特征集的相对基本的浏览器窗口(例如,为了阻止黑客入侵、增强安全性和保密性、以及避免用户被其他用户界面特征分心)。例如,窗口可以示出请求授权的应用的名称1624(例如,图16C中的游戏应用和图17C中的社交应用)。可以显示所链接的服务的网址1628。取消按钮1638可以显示在授权窗口1632下方,使得用户可以容易地取消任何授权过程。OAuth窗口可以基本上是不透明的,从而用户可以专注于授权内容而不会被透过显示可见的其他真实或虚拟内容分心。例如,OAuth窗口的不透明度可以大于50%、60%、75%、80%、90%或高达100%。
混合现实系统通常可以使用户能够调用上下文菜单。一旦显示OAuth窗口,系统可以限制从上下文菜单中可用的特征。例如,除了缩放控件(它可以使用户放大或缩小直到可以舒适地阅读窗口内容)之外,上下文菜单命令可以被隐藏。可以禁止从OAuth窗口中提取对象或链接。如果用户尝试提取对象或链接,则可以忽略该命令。在一些实施方式中,三维(3D)内容不在OAuth窗口内显示。
可以使OAuth窗口以沉浸模式(而不是横向模式)执行,使得向用户显示的所有虚拟内容都来自OAuth服务。因此,OAuth窗口可以被称为模态窗口,它从属于调用应用的窗口或虚拟内容,但在授权过程进行时禁用调用应用的功能。模态、沉浸式OAuth窗口可以阻止其他应用在OAuth窗口上覆盖内容,从而阻止其他应用窃取或读取用户输入或内容。使OAuth窗口具有沉浸式或模态,还阻止其他横向应用分散用户的注意力,这些应用可能会在与用户距离多个深度处显示窗口。在一些实施方式中,当OAuth服务处于活动状态时,横向或沉浸式应用可以被中止(例如,暂停),并且当OAuth服务结束(例如,返回到游戏应用)时,横向或沉浸式应用可以恢复(例如,在应用之前停止的地方继续)。在一些实施方式中,尽管系统不接受横向或沉浸式应用的用户交互,横向或沉浸式应用仍可继续在后台运行,使得在OAuth服务结束与OAuth服务开始时相比,应用可能处于不同的状态(例如,显示当前时间的时钟应用)。通过以沉浸式、模态模式执行OAuth过程,用户被锁定在单个任务中,即经由OAuth窗口完成授权过程。有利的是,用户不会意外地向错误的窗口中输入输入,因为模态OAuth窗口是唯一接受来自用户的输入的窗口。
在混合现实上下文中,在一些实现方式中,沉浸式(模态)OAuth窗口可以在任何时间或从请求应用中的任何地方来执行。OAuth窗口可以作为请求应用(父应用)的子项(child)执行,并且子项可以禁用对父应用或任何其他应用的访问,直到特定的OAuth过程被完成(例如,成功登录到第三方服务、提供支付凭证、取消授权过程等)。只有在完成特定的OAuth过程之后,才能返回到父应用或其他应用。API可以被配置为赋予子项特殊权限,以便当父应用调用OAuth窗口时,自动提供OAuth窗口的功能、特性集和特殊权限,并且自动禁用对于父应用或其他应用的访问。
这种模态功能在3D混合现实环境中可能特别有益,在该环境中,不同的应用可以在距用户不同的深度处呈现虚拟内容并且具有不同的可见性。在这样的环境中,不良行为者(例如,恶意软件)可以在被配置为接受用户输入(例如,密码或其他机密信息)的窗口前面呈现不可见的虚拟内容,从而拦截用户的输入(在用户不知情的情况下)。但是,通过使OAuth窗口成为模态并禁用对所有其他应用的访问,用户可以安全地将机密信息输入到授权过程以安全地登录、传输机密信息等。此外,在3D混合现实环境中的这种模态窗口(其中对所有应用的访问都被阻止)与在2D的移动或桌面环境中实现的一些模态窗口不同。在2D环境中,模态窗口可以禁止访问父应用,但用户可以切换应用并继续输入用户数据(可能会被恶意软件拦截)。
混合现实显示系统可以呈现OAuth窗口,使得该窗口总是在用户前面。这可能是有利的,因为它使用户更难以看不到窗口(例如,在系统或用户的视野内),并且窗口不会丢失或部分被物理或虚拟对象遮挡。在一些实施方式中,OAuth窗口可以使用惰性头部固定设置来显示,其中窗口被附接到用户的头部位置,以便窗口响应用户的头部移动而移动。例如,如果用户向左或向右看,则窗口分别向左或向右移动,以保持窗口在用户前面。同样,如果用户向上或向下看,则窗口分别向上或向下移动,以将窗口保持在用户前面。因此,OAuth窗口会响应用户的头部移动而移动,并在用户的视野中重新居中。重新居中可以与短时间延迟相关联,使得窗口的移动感觉好像它在某种程度上更松散地附接到用户。OAuth窗口的惰性头部固定设置的一个优点是系统不必决定在用户的视野中显示窗口的位置;系统只是在用户视野的中心显示窗口。能够与OAuth服务一起使用的各种窗口移动的示例在美国专利公开No.2019/0197785中进行了描述,该专利公开通过引用整体并入本文。
混合现实显示系统可以在距用户一定距离处呈现OAuth窗口,该改进或优化了窗口中的文本或图形内容的易读性或者改进或优化了用户在OAuth窗口中输入数据的能力。例如,在一些实施方式中,混合现实系统在距用户700mm处显示OAuth窗口,并具有600mm x500mm的窗口尺寸。在其他实施方式中,这些尺寸或距离可以不同,并且在一些实施方式中,尺寸或距离可以是用户可调节的。如上所述,在一些实施方式中,除了缩放控制之外,窗口的上下文功能被禁用,缩放控制为用户提供选择合适的窗口尺寸的能力。
可以从在混合现实显示系统上运行的任何应用调用OAuth服务(例如,经由适当的API调用)。此外,OAuth服务不限于参考图16A至图17D描述的游戏和社交媒体示例,并且可以与其他应用或用例一起使用。例如,应用开发者可能希望向其混合现实应用(横向或沉浸式)添加安全认证,并使用所需的任何后端认证服务器。开发者可能还希望启用cookie(小型文本文件)来设置访问控制(例如,单点登录(SSO))或其他分析。应用开发者可以通过调用OAuth API来启用此功能。开发者能够从混合现实应用中的任何位置进行OAuth API调用的优势在于,它可以让用户与混合现实应用保持互动,因为认证已整合到混合现实应用的流程中。
作为另一个示例,沉浸式电子商务应用的应用开发者可能希望能够通过显示来自电子商务网站的模态浏览器窗口来关闭对商品的销售,或者在直接从沉浸式应用或浏览器搜索访问电子商务网站之间经由cookie跟踪印象。开发者还可能希望通过从沉浸式应用设置的cookie购买或显示商品的广告,或者确保用户在购买商品后被引导回沉浸式应用(例如,而不是被引导回横向应用)。在这种情况下,开发者可以利用OAuth API提供可从沉浸式混合现实应用内部调用的合适模态窗口。
在另一应用中,开发者可能希望在模态窗口中显示某种格式化的文本。例如,开发者可能希望向用户显示横向或沉浸式混合现实应用的最终用户许可协议(EULA)。开发者可能希望使用超文本标记语言(html)来格式化EULA,将其呈现为浏览器窗口,并让EULA尊重不同的语言环境(locale)进行翻译。开发者可能希望能够从服务器远程更新EULA。在这种情况下,开发者可以在模态窗口中呈现EULA,以便用户在返回到混合现实应用之前必须翻阅EULA并表示同意。用户对于EULA的接受或拒绝可以传送给调用应用。
图18是示出沉浸式(例如,模态)OAuth授权服务1804的示例的框图1800。OAuth服务1804可以实现参考图16A至17D描述的功能,并且可以例如由参考图1描述的头戴式显示系统160的处理器170或参考图15描述的计算系统1400执行。OAuth服务1804可以是基于网络的服务,用于授权或验证用户信息并提供访问令牌以授权用户。
应用1806(app)可以从应用内的任何地方(例如,通过API调用)请求OAuth服务1804。应用1806可以是横向应用或沉浸式应用。启动OAuth服务1804将显示系统转换到沉浸式网络浏览器实例(例如,Helio实例)以开始授权过程。如上所述,沉浸式(例如,模态)网络浏览器实例可以提供用户授权体验的一致性,因为显示系统上的所有应用都使用OAuth服务1804,这会导致用户相信授权过程是安全的。如上所述,沉浸模式禁用其他可能正在运行的应用,这可以阻止恶意应用(恶意软件)在授权过程期间拦截用户输入。因此,沉浸模式可以阻止中间人攻击。
在块1808处,当OAuth服务正在加载时,系统将请求应用1806(和其他可能正在运行的应用)置于后台,并且可以显示一个或多个请求用户同意授权过程的窗口(例如,参考图16A描述的窗口1610)。在块1812,系统然后可以将显示转换为用于OAuth授权过程的窗口。OAuth授权窗口的示例参考图16C和图17C中的窗口1620被示出和描述。授权可以包括所请求的第三方服务的登录页面、输入支付信息的页面等。
在块1816,OAuth服务1804继续授权过程。例如,在授权期间,系统可以显示向用户指示授权过程正在进行的窗口(例如,参考图16D描述的窗口1640)。该窗口可以允许用户取消授权过程(例如,通过选择取消按钮1644),并且OAuth服务1804将终止并且用户将返回到请求应用1806。
在块1820,分派序列可以在后台执行。分派序列可以由下面参考图19描述的分派服务来执行。分派服务用于在应用之间共享数据并提供应用到应用的通信。分派序列可以将用户信息(例如,用户名、密码、支付凭证等)传送到第三方服务并从第三方服务接收访问令牌。
在块1824处,如果采用第三方服务的授权过程成功,则在块1828处的用户返回到请求应用1806。在块1824处,如果授权不成功,则OAuth服务1804进行到块1830,它指示授权过程中的错误状态。例如,可以显示窗口(例如,参考图16E描述的窗口1648)以向用户指示在授权过程中存在错误。用户可以选择取消OAuth过程而不继续授权第三方服务(例如,通过选择取消按钮1656),在这种情况下,用户将返回到请求应用1806并且OAuth过程将终止。替代地,用户可以选择重试授权(例如,通过选择重试按钮1661),并且OAuth过程将返回到块1816以重试授权。
图19是OAuth授权服务1804的示例系统架构的框图。在该说明性示例中,系统架构包括授权服务器1902、分派服务1906、授权应用1817、和混合现实浏览器1910(例如,Helio浏览器的实例)。分派服务1906负责在不同应用之间传递数据。混合现实浏览器1910负责网页导航和呈现。浏览器1910可以但不需要使用密码机制。
图19示出了可能在OAuth服务1804的这些部件之间发生的消息类型的示例。例如,应用或服务可以通过从分派服务1906调用openOauthWindow(url)来尝试执行OAuth授权。函数(function)调用的自变量(argument)url包括重定向(redirect)url(统一资源定位器),它具有标识应用本身并且分派服务能够识别的模式(schema)。
在接收到该调用时,分派服务1906调用openOauthWindow(url)以使网络浏览器1910打开浏览器窗口。打开的浏览器窗口可以是特殊的窗口,例如,没有url栏。这个特殊浏览器窗口的示例是参考图16C和图17C所示并且描述的窗口1620。如本文所述,浏览器窗口可以惰性头部固定到用户的头部姿势,以便窗口始终在用户前面。
一旦用户输入他或她的证明并且授权服务指示匹配,浏览器1910就可以拦截http响应状态代码(例如,302重定向),并且可以使用应用url和授权代码(例如,图19中的“1234”)调用分派服务1906。例如,可以使用tryOpen()调用分派服务1906,然后可以关闭浏览器窗口。分派服务1906可以调用与模式匹配的应用,并且该应用执行OAuth授权中的以下动作,即调用授权服务器并交换访问令牌的授权代码。
OAuth服务1804可以提供一个或多个系统或内核导出库。例如,libdispatchservice可用于经由tryOpen()API调用来访问分派服务1906。作为另一示例,libservice_connector可用于初始化和处理服务注册。
提供给开发者的API可以包括进程间导出的API和进程间导入的API。例如,可以使用库或内核导出的API通过openOAuthWindow调用来打开网络浏览器1910(例如,Helio)。
libdispatchservice可以包括以下进程间导出的API。
函数或API名称 | 证明或权限 | 被进程使用 | 使用+验证 |
openOauthWindow | OAuthAuthorization | 应用 |
libdispatchservice可以包括以下进程间导入的API。
函数或API名称 | 证明或权限 | 被进程使用 | 使用+验证 |
tryOpen | 无 | Helio |
图20A示出了用于应用开发者的授权流程2000a的示例。在该示例中,在2004,应用1806注册统一资源标识符(URI),其具有标识应用本身并且分派服务1906能够识别的模式。URI可以包括用于标识名称或资源的字符串,并允许使用特定协议通过网络(例如,万维网或互联网)与资源的表示进行交互。URI还可以标识设备特定的资源,例如应用中的特定用户界面上下文,例如应用的设置页面。统一资源定位器(URL)可以是URI的子集,用于指定已标识资源是可用的位置以及用于检索资源的机制。例如,要标识特定资源以及如何访问该资源,用于结构化查询语言(SQL)数据库的URI可能是:mysql://localhost@databasename:password。URL可以标识可以在网络上的何处找到数据库以及应该使用哪种协议。与此示例关联的URL可能是:mysql://localhost。
应用可以通过请求分派服务1906调用openOAuthWindow来打开网络浏览器OAuth窗口2008来执行OAuth授权。该函数调用的自变量是应用的注册URL和取消URL。网络浏览器窗口可以使用受信任的全域API调用来隐藏应用(例如,将其置于后台)。在一些实施方式中,全域(Universe)可以包括一组或多组软件代码,用于管理用户环境中显示系统的虚拟内容的放置和显示。在一些实施方式中,全域可以接受来自显示系统的不同部分(例如,部件或模块)的场景图以放置在用户环境中。用户在2016继续,例如登录第三方服务或取消授权过程。包括访问令牌的重定向URL被传递回分派服务1906。应用在2020被唤醒并且访问令牌被分派服务1906传递回请求应用1806。
图20B示出了用于使用软件开发工具包(SDK)的应用开发者的授权流程2000b的示例。示例流程2000b大体上类似于参考图20A描述的示例流程2000a。然而,在该示例中,提供了SDK 2040和C API 2044。
示例实施方式
本文所述的系统、方法和装置各自具有若干方面,其中没有一个单独负责其所需属性。在不限制本公开的范围的情况下,现在将简要讨论几个非限制性特征。以下段落描述了本文描述的装置、系统和方法的各种示例实施方式。一台或多台计算机的系统可以被配置为通过在系统上安装软件、固件、硬件或它们的组合来执行特定操作或动作,这些软件、固件、硬件或它们的组合在操作中导致或引起系统执行动作。一个或多个计算机程序可以被配置为通过包括指令来执行特定操作或动作,这些指令在由数据处理装置执行时使该装置执行动作。
示例1:一种用于在三维(3D)空间环境中显示虚拟内容的显示系统,所述显示系统包括:头戴式显示器,被配置为向所述显示系统的用户的眼睛呈现虚拟内容;以及与所述头戴式显示器通信的电路,所述电路被配置为:执行应用,所述应用被配置为向所述用户呈现应用特定的虚拟内容;从所述应用接收用于向所述用户授权网络服务的授权请求;使所述应用在后台;执行授权服务,所述授权服务被配置为:使所述头戴式显示器向所述用户呈现模态授权窗口,所述模态授权窗口被配置为接受用户输入并阻止所述应用或其他应用接收所述用户输入;接收与所述网络服务的授权相关联的所述用户输入;将所述用户输入传送给所述网络服务;从所述网络服务接收访问令牌,所述访问令牌指示所述网络服务的成功授权;以及将所述访问令牌传送给所述应用;终止所述授权服务;以及使所述应用在前台。
示例2:根据示例1所述的显示系统,其中,所述应用包括沉浸式应用。
示例3:根据示例1或2所述的显示系统,其中,所述头戴式显示器被配置为呈现所述应用特定的虚拟内容,并且不显示由所述显示系统执行的其他应用所生成的虚拟内容。
示例4:根据示例1至3中任一项所述的显示系统,其中,所述应用包括横向应用。
示例5:根据示例1至4中任一项所述的显示系统,其中,所述头戴式显示器被配置为呈现所述应用特定的虚拟内容,并且还显示由所述显示系统执行的其他应用所生成的虚拟内容。
示例6:根据示例1至5中任一项所述的显示系统,其中,所述电路被配置为在所述应用的执行期间的任何时间点从所述应用接收所述授权请求。
示例7:根据示例1至6中任一项所述的显示系统,其中,使所述应用在后台包括使所述电路执行以下中的一个或多个:以较低优先级执行所述应用,隐藏所述应用特定的虚拟内容,降低所述应用特定的虚拟内容的不透明度或亮度,增加所述应用特定的虚拟内容的透明度,增加所述应用特定的虚拟内容的显示深度,减小所述应用特定的虚拟内容的尺寸,或阻止所述应用接收用户输入。
示例8:根据示例1至7中任一项所述的显示系统,其中,使所述应用在前台包括使所述电路执行以下中的一个或多个:以更高优先级执行所述应用,显示所述应用特定的虚拟内容,增加所述应用特定的虚拟内容的不透明度或亮度,降低所述应用特定的虚拟内容的透明度,降低所述应用特定的虚拟内容的显示深度,增加所述应用特定的虚拟内容的尺寸,或允许所述应用接收用户输入。
示例9:根据示例1至8中任一项所述的显示系统,其中,所述头戴式显示器被配置为以惰性头部固定设置来显示所述模态授权窗口。
示例10:根据示例1至9中任一项所述的显示系统,其中,所述头戴式显示器被配置为在响应于所述用户的头部移动而移动的位置处显示所述模态授权窗口。
示例11:根据示例10所述的显示系统,其中,所述位置在所述用户的正前方。
示例12:根据示例10或11所述的显示系统,其中,所述位置对应于与用户的距离,以使得所述模态授权窗口中的文本或图形对于所述用户是清晰的。
示例13:根据示例1至12中任一项所述的显示系统,其中,所述模态授权窗口描绘以下中的一个或多个:所述应用的名称,所述网络服务的网址的至少一部分,用于取消所述授权请求的可选择用户输入特征,或来自所述网络服务的授权窗口。
示例14:根据示例13所述的显示系统,其中,所述模态授权窗口被配置为在接收到第一用户输入时显示所述网络服务的完整网址。
示例15:根据示例13所述的显示系统,其中,所述模态授权窗口被配置为显示滚动条,所述滚动条被配置为允许所述用户滚动所述网络服务的网址。
示例16:根据示例12至15中任一项所述的显示系统,其中,来自所述网络服务的所述授权窗口包括以下中的一个或多个:登录窗口,被配置为接受用户密码的窗口,或被配置为接受支付凭证的窗口。
示例17:根据示例1至16中任一项所述的显示系统,其中,所述模态授权窗口包括网络浏览器窗口。
示例18:根据示例1至17中任一项所述的显示系统,其中,所述授权服务作为所述应用的子项来执行。
示例19:根据示例1至18中任一项所述的显示系统,其中,通过应用编程接口(API)调用来从所述应用调用所述授权服务。
示例20:根据示例1至19中任一项所述的显示系统,其中,通过软件开发工具包(SDK)调用来从所述应用调用所述授权服务。
示例21:根据示例1至20中任一项所述的显示系统,其中,所述网络服务是从所述显示系统远程访问的第三方网络服务。
示例22:一种用于授权混合现实显示系统的用户的方法,所述方法包括:从在所述混合现实显示系统上执行的应用接收用于向所述用户授权网络服务的请求;向所述用户显示授权窗口,所述授权窗口被配置为接受与所述网络服务的授权相关联的用户输入并阻止所述应用或其他应用接收所述用户输入;将所述用户输入传送到所述网络服务;从所述网络服务接收访问令牌,所述访问令牌指示所述网络服务的成功授权;以及将所述访问令牌传送给所述应用。
示例23:根据示例22所述的方法,其中,所述应用包括沉浸式应用或横向应用。
示例24:根据示例22或23所述的方法,还包括:在向所述用户显示所述授权窗口之前使所述应用在后台,以及在从所述网络服务接收所述访问令牌之后使所述应用在前台。
示例25:根据示例22至24中任一项所述的方法,其中,所述授权窗口包括模态窗口。
示例26:根据示例22至25中任一项所述的方法,其中,所述授权窗口是所述应用的子项。
示例27:一种用于授权混合现实显示系统的用户的方法,所述方法包括:在所述混合现实显示系统上执行应用,所述应用生成应用特定的虚拟内容以显示给所述用户;注册与所述应用相关联的网址;在对所述用户隐藏所述应用特定的虚拟内容的显示时,向所述用户显示模态授权窗口;响应于经由所述模态授权窗口输入的用户输入,接收网络响应状态代码;以及使用与所述应用相关联的网址,将所述网络响应状态代码传送到所述应用。
示例28:根据示例27所述的方法,其中,所述应用包括沉浸式应用或横向应用。
示例29:根据示例27或28所述的方法,其中,隐藏所述应用特定的虚拟内容包括以下中的一个或多个:不显示所述应用特定的虚拟内容,降低所述应用特定的虚拟内容的不透明度或亮度,增加所述应用特定的虚拟内容的透明度,增加所述应用特定的虚拟内容的显示深度,减小所述应用特定的虚拟内容的尺寸,或以沉浸模式显示所述模态授权窗口。
示例30:根据示例27至29中任一项所述的方法,其中,所述模态授权窗口阻止所述应用或其他应用接收所述用户输入。
示例31:根据示例27至30中任一项所述的方法,其中,所述模态授权窗口是所述应用的子项。
示例32:根据示例27至31中任一项所述的方法,还包括:提供软件开发工具包,所述软件开发工具包被配置为在所述应用与所述模态授权窗口之间提供通信。
示例33:根据示例27至32中任一项所述的方法,还包括:在将所述网络响应状态代码传送给所述应用之后,隐藏所述模态授权窗口;以及向所述用户显示所述应用特定的虚拟内容。
示例34:根据示例33所述的方法,其中,隐藏所述模态授权窗口包括以下中的一个或多个:不显示所述模态授权窗口,降低所述模态授权窗口的不透明度或亮度,增加所述模态授权窗口的透明度,增加所述模态授权窗口的显示深度,减小所述模态授权窗口的尺寸。
如上所述,上面提供的描述示例的实施方式可以包括计算机可访问介质上的计算机软件、方法或过程、和/或硬件。
其它考虑因素
在此描述的和/或在附图中描绘的过程、方法和算法中的每一个可以体现在由一个或多个物理计算系统、硬件计算机处理器、专用电路和/或被配置为执行具体和特定计算机指令的电子硬件执行的代码模块中,并且由以上完全或部分自动化。例如,计算系统可以包括利用特定计算机指令编程的通用计算机(例如,服务器)或专用计算机、专用电路等等。代码模块可以被编译并链接到可执行程序中,安装在动态链接库中,或者可以用解释的编程语言编写。在一些实施方式中,特定操作和方法可以由给定功能特定的电路来执行。
此外,本公开的功能的某些实施方式在数学上、计算上或技术上是足够复杂的,以致于可能需要专用硬件或一个或多个物理计算设备(利用适当的专用可执行指令)来执行功能,例如由于所涉及的计算的数量或复杂性或为了基本实时地提供结果。例如,视频可以包括许多帧,每帧具有数百万个像素,并且专门编程的计算机硬件需要处理视频数据,从而在商业上合理的时间量内提供期望的图像处理任务或应用。
代码模块或任何类型的数据可以存储在任何类型的非瞬态计算机可读介质上,诸如物理计算机存储器,包括硬盘驱动器、固态存储器、随机存取存储器(RAM)、只读存储器(ROM)、光盘、易失性或非易失性存储器、相同和/或类似的组合。方法和模块(或数据)也可以在各种计算机可读传输介质上作为生成的数据信号(例如,作为载波或其他模拟或数字传播信号的一部分)传输,所述传输介质包括基于无线的和基于有线/电缆的介质,并且可以采取多种形式(例如,作为单个或多路复用模拟信号的一部分,或者作为多个离散数字数据包或帧)。所公开的过程或过程框或步骤的结果可以持久地或以其他方式存储在任何类型的非瞬态有形计算机存储器中,或者可以经由计算机可读传输介质来传送。
在此所描述和/或附图中描绘的流程图中的任何过程、框、状态、步骤或功能应当被理解为潜在地表示代码模块、代码段或代码部分,这些代码模块、代码段或代码部分包括用于实现特定功能(例如,逻辑或算术)或过程中的步骤的一个或多个可执行指令。各种过程、框、状态、步骤或功能可以与在此提供的说明性示例相组合、重新排列、添加、删除、修改或以其他方式改变。在一些实施方式中,附加的或不同的计算系统或代码模块可以执行在此描述的功能中的一些或全部。在此描述的方法和过程也不限于任何特定的顺序,并且与其相关的框、步骤或状态可以以适当的其他顺序来执行,例如串行、并行或以某种其他方式。任务或事件可以添加到所公开的示例实现方式或者从中删除。此外,在此描述的实施方式中的各种系统组件的分离是出于说明的目的,并且不应该被理解为在所有实施方式中都需要这种分离。应该理解,所描述的程序组件、方法和系统通常可以一起集成在单个计算机产品中或者封装到多个计算机产品中。许多实施方式变化是可能的。
过程、方法和系统可以实现在网络(或分布式)计算环境中。网络环境包括企业范围的计算机网络、内联网、局域网(LAN)、广域网(WAN)、个人局域网(PAN)、云计算网络、众包(crowd-sourced)计算网络、互联网和万维网。网络可以是有线或无线网络或任何其他类型的通信网络。
本公开的系统和方法各自具有若干创新性方面,其中没有单独一个对在此公开的期望属性负责或需要。上述各种特征和过程可以彼此独立地使用,或者可以以各种方式组合。所有可能的组合和子组合均旨在落入本公开的范围内。对于本公开中所描述的实施方式的各种修改对于本领域技术人员来说可以是容易清楚的,并且在不脱离本公开的精神或范围的情况下,可将在此定义的一般原理应用于其他实施方式。因此,权利要求不旨在限于在此示出的实施方式,而是应被给予与本公开、在此公开的原理和新颖特征一致的最宽范围。
本说明书中在分开的实施方式的上下文中描述的某些特征也可以在单个实施方式中组合地实施。相反地,在单个实施方式的上下文中描述的各种特征也可以在多个实施方式中分开地或以任何合适的子组合方式来实施。此外,尽管上文可以将特征描述为以某些组合起作用并且甚至最初如此要求,但是来自所要求的组合的一个或多个特征可以在一些情况下从组合中删除,并且所要求的组合可以针对子组合或子组合的变体。没有单个特征或特征组是每个实现方式必需或不可缺少。
除非另有特别说明,或者在所使用的上下文中进行理解,在此使用的条件语言,诸如“能(can)”、“能够(could)”、“可能(might)”、“可以(may)”、“例如(e.g.)”等等,一般意在表达某些实施方式包括而其他实施方式不包括某些特征、要素、框和/或步骤。因此,这样的条件语言通常不旨在暗示特征、要素和/或步骤以任何方式对于一个或多个实施方式是必需的,或者一个或多个实施方式必然包括用于在有或者没有作者输入或提示的情况下决定这些特征、要素、框和/或步骤是否包括在或执行在任何特定实施方式中。术语“包括(comprising)”、“包括(including)”、“具有(having)”等是同义词,并且以开放式的方式包含性地使用,并且不排除附加的要素、特征、动作、操作等等。此外,术语“或”以其包含性含义(而不是其排他含义)使用,因此当用于例如连接要素的列表时,术语“或”表示列表中的一个、一些或全部要素。另外,除非另有说明,否则本申请和所附权利要求书中使用的冠词“一”、“一个”和“所述”应被解释为表示“一个或多个”或“至少一个”。
如在此所使用的,提及项目列表中的“至少一个”的短语是指这些项目的任何组合,包括单个成员。作为例子,“A,B或C中的至少一个”旨在涵盖:A、B、C、A和B、A和C、B和C,以及A、B和C。除非另有特别说明,否则诸如短语“X、Y和Z中的至少一个”的连接语言如所使用的在利用上下文进行理解,通常用于表达项目、术语等可以是X、Y或Z中的至少一个。因此,这样的连接语言通常不旨在暗示某些实施方式需要X中的至少一个、Y中的至少一个和Z中的至少一个各自存在。
类似地,虽然可以在附图中以特定顺序示出操作,但是应该认为,不需要以所示出的特定顺序或按顺次顺序执行这样的操作,或者不需要执行所有示出的操作以实现期望的结果。此外,附图可以以流程图的形式示意性地描绘一个或多个示例过程。然而,未示出的其他操作可以并入示意性说明的示例性方法和过程中。例如,一个或多个附加操作可以在任何所示操作之前、之后、同时或之间执行。另外,在其他实施方式中,操作可以重新安排或重新排序。在特定情况下,多任务和并行处理可能是有利的。而且,上述实施方式中的各种系统组件的分离不应当被理解为在所有实施方式中都需要这种分离,并且应该理解的是,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者封装到多个软件产品。另外,其他的实施方式在以下权利要求的范围中。在一些情况下,权利要求中列举的动作能够以不同的顺序执行并且仍然实现期望的结果。
Claims (34)
1.一种用于在三维(3D)空间环境中显示虚拟内容的显示系统,所述显示系统包括:
头戴式显示器,被配置为向所述显示系统的用户的眼睛呈现虚拟内容;以及
与所述头戴式显示器通信的电路,所述电路被配置为:
执行应用,所述应用被配置为向所述用户呈现应用特定的虚拟内容;
从所述应用接收用于向所述用户授权网络服务的授权请求;
使所述应用在后台;
执行授权服务,所述授权服务被配置为:
使所述头戴式显示器向所述用户呈现模态授权窗口,所述模态授权窗口被配置为接受用户输入并阻止所述应用或其他应用接收所述用户输入;
接收与所述网络服务的授权相关联的所述用户输入;
将所述用户输入传送给所述网络服务;
从所述网络服务接收访问令牌,所述访问令牌指示所述网络服务的成功授权;以及
将所述访问令牌传送给所述应用;
终止所述授权服务;以及
使所述应用在前台。
2.根据权利要求1所述的显示系统,其中,所述应用包括沉浸式应用。
3.根据权利要求1或2所述的显示系统,其中,所述头戴式显示器被配置为呈现所述应用特定的虚拟内容,并且不显示由所述显示系统执行的其他应用所生成的虚拟内容。
4.根据权利要求1至3中任一项所述的显示系统,其中,所述应用包括横向应用。
5.根据权利要求1至4中任一项所述的显示系统,其中,所述头戴式显示器被配置为呈现所述应用特定的虚拟内容,并且还显示由所述显示系统执行的其他应用所生成的虚拟内容。
6.根据权利要求1至5中任一项所述的显示系统,其中,所述电路被配置为在所述应用的执行期间的任何时间点从所述应用接收所述授权请求。
7.根据权利要求1至6中任一项所述的显示系统,其中,使所述应用在后台包括使所述电路执行以下中的一个或多个:以较低优先级执行所述应用,隐藏所述应用特定的虚拟内容,降低所述应用特定的虚拟内容的不透明度或亮度,增加所述应用特定的虚拟内容的透明度,增加所述应用特定的虚拟内容的显示深度,减小所述应用特定的虚拟内容的尺寸,或阻止所述应用接收用户输入。
8.根据权利要求1至7中任一项所述的显示系统,其中,使所述应用在前台包括使所述电路执行以下中的一个或多个:以更高优先级执行所述应用,显示所述应用特定的虚拟内容,增加所述应用特定的虚拟内容的不透明度或亮度,降低所述应用特定的虚拟内容的透明度,降低所述应用特定的虚拟内容的显示深度,增加所述应用特定的虚拟内容的尺寸,或允许所述应用接收用户输入。
9.根据权利要求1至8中任一项所述的显示系统,其中,所述头戴式显示器被配置为以惰性头部固定设置来显示所述模态授权窗口。
10.根据权利要求1至9中任一项所述的显示系统,其中,所述头戴式显示器被配置为在响应于所述用户的头部移动而移动的位置处显示所述模态授权窗口。
11.根据权利要求10所述的显示系统,其中,所述位置在所述用户的正前方。
12.根据权利要求10或11所述的显示系统,其中,所述位置对应于与用户的距离,以使得所述模态授权窗口中的文本或图形对于所述用户是清晰的。
13.根据权利要求1至12中任一项所述的显示系统,其中,所述模态授权窗口描绘以下中的一个或多个:所述应用的名称,所述网络服务的网址的至少一部分,用于取消所述授权请求的可选择用户输入特征,或来自所述网络服务的授权窗口。
14.根据权利要求13所述的显示系统,其中,所述模态授权窗口被配置为在接收到第一用户输入时显示所述网络服务的完整网址。
15.根据权利要求13所述的显示系统,其中,所述模态授权窗口被配置为显示滚动条,所述滚动条被配置为允许所述用户滚动所述网络服务的网址。
16.根据权利要求12至15中任一项所述的显示系统,其中,来自所述网络服务的所述授权窗口包括以下中的一个或多个:登录窗口,被配置为接受用户密码的窗口,或被配置为接受支付凭证的窗口。
17.根据权利要求1至16中任一项所述的显示系统,其中,所述模态授权窗口包括网络浏览器窗口。
18.根据权利要求1至17中任一项所述的显示系统,其中,所述授权服务作为所述应用的子项来执行。
19.根据权利要求1至18中任一项所述的显示系统,其中,通过应用编程接口(API)调用来从所述应用调用所述授权服务。
20.根据权利要求1至19中任一项所述的显示系统,其中,通过软件开发工具包(SDK)调用来从所述应用调用所述授权服务。
21.根据权利要求1至20中任一项所述的显示系统,其中,所述网络服务是从所述显示系统远程访问的第三方网络服务。
22.一种用于授权混合现实显示系统的用户的方法,所述方法包括:
从在所述混合现实显示系统上执行的应用接收用于向所述用户授权网络服务的请求;
向所述用户显示授权窗口,所述授权窗口被配置为接受与所述网络服务的授权相关联的用户输入并阻止所述应用或其他应用接收所述用户输入;
将所述用户输入传送到所述网络服务;
从所述网络服务接收访问令牌,所述访问令牌指示所述网络服务的成功授权;以及
将所述访问令牌传送给所述应用。
23.根据权利要求22所述的方法,其中,所述应用包括沉浸式应用或横向应用。
24.根据权利要求22或23所述的方法,还包括:在向所述用户显示所述授权窗口之前使所述应用在后台,以及在从所述网络服务接收所述访问令牌之后使所述应用在前台。
25.根据权利要求22至24中任一项所述的方法,其中,所述授权窗口包括模态窗口。
26.根据权利要求22至25中任一项所述的方法,其中,所述授权窗口是所述应用的子项。
27.一种用于授权混合现实显示系统的用户的方法,所述方法包括:
在所述混合现实显示系统上执行应用,所述应用生成应用特定的虚拟内容以显示给所述用户;
注册与所述应用相关联的网址;
在对所述用户隐藏所述应用特定的虚拟内容的显示时,向所述用户显示模态授权窗口;
响应于经由所述模态授权窗口输入的用户输入,接收网络响应状态代码;以及
使用与所述应用相关联的网址,将所述网络响应状态代码传送到所述应用。
28.根据权利要求27所述的方法,其中,所述应用包括沉浸式应用或横向应用。
29.根据权利要求27或28所述的方法,其中,隐藏所述应用特定的虚拟内容包括以下中的一个或多个:不显示所述应用特定的虚拟内容,降低所述应用特定的虚拟内容的不透明度或亮度,增加所述应用特定的虚拟内容的透明度,增加所述应用特定的虚拟内容的显示深度,减小所述应用特定的虚拟内容的尺寸,或以沉浸模式显示所述模态授权窗口。
30.根据权利要求27至29中任一项所述的方法,其中,所述模态授权窗口阻止所述应用或其他应用接收所述用户输入。
31.根据权利要求27至30中任一项所述的方法,其中,所述模态授权窗口是所述应用的子项。
32.根据权利要求27至31中任一项所述的方法,还包括:提供软件开发工具包,所述软件开发工具包被配置为在所述应用与所述模态授权窗口之间提供通信。
33.根据权利要求27至32中任一项所述的方法,还包括:在将所述网络响应状态代码传送给所述应用之后,
隐藏所述模态授权窗口;以及
向所述用户显示所述应用特定的虚拟内容。
34.根据权利要求33所述的方法,其中,隐藏所述模态授权窗口包括以下中的一个或多个:不显示所述模态授权窗口,降低所述模态授权窗口的不透明度或亮度,增加所述模态授权窗口的透明度,增加所述模态授权窗口的显示深度,减小所述模态授权窗口的尺寸。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962864752P | 2019-06-21 | 2019-06-21 | |
US62/864,752 | 2019-06-21 | ||
US201962890849P | 2019-08-23 | 2019-08-23 | |
US62/890,849 | 2019-08-23 | ||
PCT/US2020/036467 WO2020256973A1 (en) | 2019-06-21 | 2020-06-05 | Secure authorization via modal window |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114270312A true CN114270312A (zh) | 2022-04-01 |
Family
ID=74037184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080058151.6A Pending CN114270312A (zh) | 2019-06-21 | 2020-06-05 | 经由模态窗口的安全授权 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11803628B2 (zh) |
EP (1) | EP3987393A4 (zh) |
JP (2) | JP7311643B2 (zh) |
CN (1) | CN114270312A (zh) |
WO (1) | WO2020256973A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114971764A (zh) * | 2022-04-08 | 2022-08-30 | 浙江赟燊商业信息系统科技有限公司 | 一种基于HoloLens的存储和匹配系统及方法 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114270312A (zh) | 2019-06-21 | 2022-04-01 | 奇跃公司 | 经由模态窗口的安全授权 |
US11405774B2 (en) | 2020-01-14 | 2022-08-02 | Facebook Technologies, Llc | Collective artificial reality device configuration |
US11562059B2 (en) * | 2020-01-14 | 2023-01-24 | Meta Platforms Technologies, Llc | Administered authentication in artificial reality systems |
US11538199B2 (en) * | 2020-02-07 | 2022-12-27 | Lenovo (Singapore) Pte. Ltd. | Displaying a window in an augmented reality view |
US11544227B2 (en) * | 2020-06-18 | 2023-01-03 | T-Mobile Usa, Inc. | Embedded reference object and interaction within a visual collaboration system |
CN114579000A (zh) * | 2020-12-01 | 2022-06-03 | 鸿富锦精密电子(天津)有限公司 | 禁止用户操作方法、装置、电子设备及存储介质 |
KR20220155423A (ko) * | 2021-05-14 | 2022-11-22 | 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 | 컨트롤 디스플레이 방법 및 장치, 디바이스, 매체 및 프로그램 제품 |
US11706292B1 (en) * | 2022-03-15 | 2023-07-18 | Disney Enterprises, Inc. | Local preference in anycast CDN routing |
US11836205B2 (en) * | 2022-04-20 | 2023-12-05 | Meta Platforms Technologies, Llc | Artificial reality browser configured to trigger an immersive experience |
US11755180B1 (en) | 2022-06-22 | 2023-09-12 | Meta Platforms Technologies, Llc | Browser enabled switching between virtual worlds in artificial reality |
Family Cites Families (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6222525B1 (en) | 1992-03-05 | 2001-04-24 | Brad A. Armstrong | Image controllers with sheet connected sensors |
US5670988A (en) | 1995-09-05 | 1997-09-23 | Interlink Electronics, Inc. | Trigger operated electronic device |
US20040056900A1 (en) * | 2002-09-23 | 2004-03-25 | Blume Leo R | System and method for window priority rendering |
US11428937B2 (en) | 2005-10-07 | 2022-08-30 | Percept Technologies | Enhanced optical and perceptual digital eyewear |
US8696113B2 (en) | 2005-10-07 | 2014-04-15 | Percept Technologies Inc. | Enhanced optical and perceptual digital eyewear |
US20070081123A1 (en) | 2005-10-07 | 2007-04-12 | Lewis Scott W | Digital eyewear |
US9129295B2 (en) | 2010-02-28 | 2015-09-08 | Microsoft Technology Licensing, Llc | See-through near-eye display glasses with a fast response photochromic film system for quick transition from dark to clear |
KR20120023883A (ko) * | 2010-09-02 | 2012-03-14 | 주식회사 팬택 | 증강현실 정보 표시 방법 및 장치 |
US9304319B2 (en) | 2010-11-18 | 2016-04-05 | Microsoft Technology Licensing, Llc | Automatic focus improvement for augmented reality displays |
US10156722B2 (en) | 2010-12-24 | 2018-12-18 | Magic Leap, Inc. | Methods and systems for displaying stereoscopy with a freeform optical system with addressable focus for virtual and augmented reality |
JP6185844B2 (ja) | 2010-12-24 | 2017-08-30 | マジック リープ, インコーポレイテッド | 人間工学的ヘッドマウントディスプレイデバイスおよび光学システム |
CN103635891B (zh) | 2011-05-06 | 2017-10-27 | 奇跃公司 | 大量同时远程数字呈现世界 |
EP2760363A4 (en) | 2011-09-29 | 2015-06-24 | Magic Leap Inc | TACTILE GLOVE FOR HUMAN COMPUTER INTERACTION |
US9578014B2 (en) * | 2011-09-29 | 2017-02-21 | Oracle International Corporation | Service profile-specific token attributes and resource server token attribute overriding |
BR112014010230A8 (pt) | 2011-10-28 | 2017-06-20 | Magic Leap Inc | sistema e método para realidade virtual e aumentada |
US9230089B2 (en) | 2012-07-16 | 2016-01-05 | Ebay Inc. | User device security manager |
WO2013152205A1 (en) | 2012-04-05 | 2013-10-10 | Augmented Vision Inc. | Wide-field of view (fov) imaging devices with active foveation capability |
US9671566B2 (en) | 2012-06-11 | 2017-06-06 | Magic Leap, Inc. | Planar waveguide apparatus with diffraction element(s) and system employing same |
JP5935610B2 (ja) * | 2012-09-07 | 2016-06-15 | 富士通株式会社 | 操作制御プログラム、携帯電子機器及び操作制御方法 |
EP2895910A4 (en) | 2012-09-11 | 2016-04-20 | Magic Leap Inc | ERGONOMIC HEAD-MOUNTED DISPLAY DEVICE AND OPTICAL SYSTEM |
US9092600B2 (en) | 2012-11-05 | 2015-07-28 | Microsoft Technology Licensing, Llc | User authentication on augmented reality display device |
US9240991B2 (en) * | 2012-12-13 | 2016-01-19 | Sap Se | Anti-phishing system for cross-domain web browser single sign-on |
KR102057964B1 (ko) * | 2013-03-08 | 2019-12-23 | 엘지전자 주식회사 | 이동 단말기 |
NZ751602A (en) | 2013-03-15 | 2020-01-31 | Magic Leap Inc | Display system and method |
US10235511B2 (en) * | 2013-04-19 | 2019-03-19 | Pearson Education, Inc. | Authentication integrity protection |
US9874749B2 (en) | 2013-11-27 | 2018-01-23 | Magic Leap, Inc. | Virtual and augmented reality systems and methods |
EP3058418B1 (en) | 2013-10-16 | 2023-10-04 | Magic Leap, Inc. | Virtual or augmented reality headsets having adjustable interpupillary distance |
KR102268462B1 (ko) | 2013-11-27 | 2021-06-22 | 매직 립, 인코포레이티드 | 가상 및 증강 현실 시스템들 및 방법들 |
US9857591B2 (en) | 2014-05-30 | 2018-01-02 | Magic Leap, Inc. | Methods and system for creating focal planes in virtual and augmented reality |
US10203762B2 (en) | 2014-03-11 | 2019-02-12 | Magic Leap, Inc. | Methods and systems for creating virtual and augmented reality |
US20150324568A1 (en) | 2014-05-09 | 2015-11-12 | Eyefluence, Inc. | Systems and methods for using eye signals with secure mobile communications |
AU2015274283B2 (en) * | 2014-06-14 | 2020-09-10 | Magic Leap, Inc. | Methods and systems for creating virtual and augmented reality |
US9882892B1 (en) * | 2014-06-18 | 2018-01-30 | Intuit Inc. | User authorization using intent tokens |
US10062354B2 (en) | 2014-10-10 | 2018-08-28 | DimensionalMechanics, Inc. | System and methods for creating virtual environments |
KR102377277B1 (ko) * | 2015-02-27 | 2022-03-23 | 삼성전자주식회사 | 전자 장치에서 커뮤니케이션 지원 방법 및 장치 |
CN107196892B (zh) * | 2016-03-15 | 2020-03-06 | 阿里巴巴集团控股有限公司 | 一种网站登录方法和装置 |
US10430558B2 (en) * | 2016-04-28 | 2019-10-01 | Verizon Patent And Licensing Inc. | Methods and systems for controlling access to virtual reality media content |
US10515475B2 (en) * | 2016-06-09 | 2019-12-24 | Verizon Patent And Licensing Inc. | Implementing layered navigation using interface layers |
WO2017218069A1 (en) * | 2016-06-12 | 2017-12-21 | Apple Inc. | Devices, methods, and graphical user interfaces for processing intensity information associated with touch inputs |
GB2552458A (en) * | 2016-06-30 | 2018-01-31 | Vocalink Ltd | Generation of web pages for verification of data |
US10726595B2 (en) * | 2016-12-30 | 2020-07-28 | Facebook, Inc. | Systems and methods to transition between media content items |
US11586338B2 (en) * | 2017-04-05 | 2023-02-21 | Open Text Sa Ulc | Systems and methods for animated computer generated display |
JP7141410B2 (ja) | 2017-05-01 | 2022-09-22 | マジック リープ, インコーポレイテッド | 空間的3d環境に対するコンテンツのマッチング |
US10880086B2 (en) | 2017-05-02 | 2020-12-29 | PracticalVR Inc. | Systems and methods for authenticating a user on an augmented, mixed and/or virtual reality platform to deploy experiences |
JP2018205840A (ja) * | 2017-05-30 | 2018-12-27 | キヤノン株式会社 | システム、その方法およびそのプログラム |
US10839064B2 (en) | 2017-06-20 | 2020-11-17 | Citrix Systems, Inc. | Securely entering credentials via head-mounted display device |
US10686600B1 (en) * | 2017-10-27 | 2020-06-16 | United Services Automobile Association (Usaa) | Asynchronous step-up authentication for client applications |
US10666706B2 (en) * | 2017-11-22 | 2020-05-26 | Citrix Systems, Inc. | Rendering a web application in a cloud service |
US11024086B2 (en) | 2017-12-22 | 2021-06-01 | Magic Leap, Inc. | Methods and system for managing and displaying virtual content in a mixed reality system |
US10504290B2 (en) * | 2018-05-04 | 2019-12-10 | Facebook Technologies, Llc | User interface security in a virtual reality environment |
US10855674B1 (en) * | 2018-05-10 | 2020-12-01 | Microstrategy Incorporated | Pre-boot network-based authentication |
US11070540B1 (en) * | 2018-12-28 | 2021-07-20 | Juniper Networks, Inc. | Dynamic provisioning of user groups within computer networks based on user attributes |
CN114270312A (zh) | 2019-06-21 | 2022-04-01 | 奇跃公司 | 经由模态窗口的安全授权 |
-
2020
- 2020-06-05 CN CN202080058151.6A patent/CN114270312A/zh active Pending
- 2020-06-05 WO PCT/US2020/036467 patent/WO2020256973A1/en active Application Filing
- 2020-06-05 US US16/894,170 patent/US11803628B2/en active Active
- 2020-06-05 EP EP20827586.7A patent/EP3987393A4/en active Pending
- 2020-06-05 JP JP2021575368A patent/JP7311643B2/ja active Active
-
2023
- 2023-07-06 JP JP2023111335A patent/JP2023133307A/ja active Pending
- 2023-07-24 US US18/357,902 patent/US20230367861A1/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114971764A (zh) * | 2022-04-08 | 2022-08-30 | 浙江赟燊商业信息系统科技有限公司 | 一种基于HoloLens的存储和匹配系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2022536856A (ja) | 2022-08-19 |
JP7311643B2 (ja) | 2023-07-19 |
US11803628B2 (en) | 2023-10-31 |
US20230367861A1 (en) | 2023-11-16 |
EP3987393A4 (en) | 2023-07-19 |
EP3987393A1 (en) | 2022-04-27 |
US20200401687A1 (en) | 2020-12-24 |
JP2023133307A (ja) | 2023-09-22 |
WO2020256973A1 (en) | 2020-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7311643B2 (ja) | モード式ウィンドウを介したセキュアな認可 | |
CN112219205B (zh) | 内容到空间3d环境的匹配 | |
CN111133365B (zh) | 内容到空间3d环境的匹配 | |
US11636660B2 (en) | Object creation with physical manipulation | |
US9679144B2 (en) | Protecting privacy in web-based immersive augmented reality | |
US11036364B2 (en) | Browser for mixed reality systems | |
US10650118B2 (en) | Authentication-based presentation of virtual content | |
US11972092B2 (en) | Browser for mixed reality systems |
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 |