CN115601671B - 用于向用户显示虚拟内容的系统和方法 - Google Patents

用于向用户显示虚拟内容的系统和方法 Download PDF

Info

Publication number
CN115601671B
CN115601671B CN202211225067.6A CN202211225067A CN115601671B CN 115601671 B CN115601671 B CN 115601671B CN 202211225067 A CN202211225067 A CN 202211225067A CN 115601671 B CN115601671 B CN 115601671B
Authority
CN
China
Prior art keywords
content
user
view
field
virtual
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
CN202211225067.6A
Other languages
English (en)
Other versions
CN115601671A (zh
Inventor
G·马克
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.)
Magic Leap Inc
Original Assignee
Magic Leap Inc
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 Magic Leap Inc filed Critical Magic Leap Inc
Priority to CN202211225067.6A priority Critical patent/CN115601671B/zh
Publication of CN115601671A publication Critical patent/CN115601671A/zh
Application granted granted Critical
Publication of CN115601671B publication Critical patent/CN115601671B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/147Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • 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/012Head 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/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/22Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/22Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
    • G06V10/235Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition based on user input or interaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/945User interactive design; Environments; Toolboxes
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/37Details of the operation on graphic patterns
    • G09G5/373Details of the operation on graphic patterns for modifying the size of the graphic pattern
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/38Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory with means for controlling the display position
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/0141Head-up displays characterised by optical features characterised by the informative content of the display
    • 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
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0464Positioning
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/12Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2354/00Aspects of interface with display user

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Optics & Photonics (AREA)
  • Computer Graphics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

用于当可穿戴显示设备检测到触发事件时调整虚拟内容的显示以改变相对于物理或虚拟表面的内容的显示的系统和方法。该方法包括:相对于第一表面显示内容;检测运动或内容驱动中的一个的触发;并且将内容的显示调整到用户视场中以用户为中心的虚拟表面。

Description

用于向用户显示虚拟内容的系统和方法
本申请是申请号为201980037197.7的中国专利申请“内容到空间3D环境的匹配”(申请日为2019年6月4日)的分案申请。
技术领域
本公开涉及用于在空间3D环境中显示内容的系统和方法。
背景技术
观看内容的典型方式是打开将在显示设备的显示屏幕(例如,计算机、智能手机、平板电脑等的监控器)上显示内容的应用。用户将导航该应用以观看内容。通常,当用户观看显示器的显示屏幕时,存在有关如何在应用内以及在显示设备的显示屏幕上显示内容的固定格式。
使用虚拟现实(VR)、增强现实(AR)和/或混合现实(MR)系统(以下统称为“混合现实”系统),应用将在空间三维(3D)环境中显示内容。当在空间3D环境中使用时,在显示屏幕上显示内容的常规方法效果不佳。一个原因是因为,使用传统方法,显示设备的显示区域是限于在其上显示内容的显示屏幕的屏幕区域的2D介质。结果,传统方法被配置为仅知道如何在显示屏幕的该屏幕区域内组织和显示内容。相反,空间3D环境不限于显示屏幕的屏幕区域的严格边界。因此,传统方法在空间3D环境中使用时可能会表现欠佳,因为传统方法不一定具有利用空间3D环境来显示内容的功能或能力。
因此,需要一种改进的方法来在空间3D环境中显示内容。
仅由于在背景技术部分中提到的主题,不应因为在背景技术部分中被讨论就被认为是现有技术。类似地,背景技术部分中提到的或与背景技术部分的主题相关联的问题或对问题的原因的理解不应该被认为是现有技术中先前已经认识到的。背景技术部分中的主题可以仅表示不同的方法,其本身也可以是公开内容。
发明内容
本公开的实施例提供了一种改进的系统和方法以在空间化组织的3D环境中显示信息。该方法包括:以世界为中心的模式和用户为中心的模式中的一种模式显示虚拟内容;检测调整虚拟内容的显示的触发;以及以世界为中心的模式和用户为中心的模式中的另一模式显示虚拟内容。本公开的附加实施例提供了一种改进的系统和方法以响应于用户的姿势的改变而改变所显示的虚拟对象的位置。
在一个实施例中,方法包括使用可穿戴显示设备以世界为中心的模式向用户显示虚拟内容。该方法还包括检测调整虚拟内容的显示的触发。该方法还包括响应于检测到触发,使用可穿戴显示设备以用户为中心的模式向用户显示虚拟内容。
在一个或多个实施例中,触发包括用户的视场的移动。视场的移动可以包括以下视场的移动:使得在该视场内没有用于显示虚拟内容的适当表面。视场的移动可以包括视场的平移或旋转。视场的移动可以包括视场的超过阈值的平移或旋转。阈值可以是视场在预定时间量内的预定平移或旋转量。阈值可以是视场在预定时间量内的预定连续平移或旋转量。阈值可以是视场在预定时间量内出现预定数量的平移或旋转最大值。
在一个或多个实施例中,触发包括用户对界面对象的选择。触发可以包括虚拟内容的类型的检测。虚拟内容的类型的检测可以包括该类型的虚拟内容的显示或即将显示的检测。该方法还可以包括在使用可穿戴显示设备在以世界为中心的模式下向用户显示虚拟内容与使用可穿戴显示设备在以用户为中心的模式下向用户显示虚拟内容之间,改变虚拟内容的大小。改变之后的虚拟内容的大小可以与用户的视场范围有关。使用可穿戴显示设备在以用户为中心的模式下向用户显示虚拟内容可以包括在用户的视场的中心附近显示虚拟内容或偏离中心地显示虚拟内容。
在另一个实施例中,一种方法包括:使用可穿戴显示设备在以用户为中心的模式下向用户显示虚拟内容。该方法还包括检测调整虚拟内容的显示的触发。该方法还包括响应于检测到触发,使用可穿戴显示设备在以世界为中心的模式下向用户显示虚拟内容。
在一个或多个实施例中,触发包括在用户的视场中检测到表面连续存在预定时间量。触发可以包括用户对界面对象的选择。该触发可以包括虚拟内容的类型的检测。虚拟内容的类型的检测可以包括该类型的虚拟内容的显示或即将显示的检测。该方法还可以包括在使用可穿戴显示设备在以用户为中心的模式下向用户显示虚拟内容与使用可穿戴显示设备在以世界为中心的模式下向用户显示虚拟内容之间,改变虚拟内容的大小。
在又一个实施例中,一种方法包括使用可穿戴显示设备在用户的第一视场中的第一位置处向用户显示虚拟内容。该方法还包括检测导致第二视场的用户的姿势的变化。该方法还包括响应于检测到用户的姿势的变化,使用可穿戴显示设备在用户的第二视场中的第二位置处向用户显示虚拟内容。
在一个或多个实施例中,第一位置对应于第一视场中的第一表面,第二位置对应于第二视场中的第二表面。该方法还可以包括显示虚拟内容从第一位置移动到第二位置的动画。动画可以以等于用户的姿势的变化的速度的百分比的动画速度使虚拟内容从第一位置移动到第二位置。动画速度可以选自包括以下项的组:90%,70%,50%,和10%。动画速度可以基于用户的姿势的变化的速度而被确定。当用户的姿势的变化的速度等于或小于阈值时,动画速度可以是第一值,以及当用户的姿势的变化的速度大于阈值时,动画速度可以是第二值。用户的姿势的变化的速度可以是旋转变化的速度。
在一个或多个实施例中,动画包括改变虚拟对象的取向,以使得虚拟对象看起来从与用户的光轴正交的平面倾斜出。改变虚拟对象的取向可以包括:首先倾斜虚拟对象的前缘使其远离用户,然后倾斜虚拟对象的后缘使其远离用户。第一位置相对于第一视场可以基本上与第二位置相对于第二视场类似。第一位置相对于第一视场可以与第二位置相对于第二视场不同。
在又一个实施例中,一种方法包括相对于第一表面向用户可穿戴显示设备显示内容。该方法还包括检测调整内容向可穿戴用户显示设备的显示的触发。该方法还包括将内容的显示调整到以用户为中心的虚拟表面。
在一个或多个实施例中,检测触发包括检测可穿戴显示设备的运动。检测运动可以包括在阈值持续时间内检测平移或旋转中的一个。检测触发可以包括接收来自内容的通知。调整内容的显示可以包括将内容的至少一个属性调整为可穿戴显示设备的参数。调整内容的显示可以包括将以用户为中心的虚拟表面定位到可穿戴显示设备的视场内的固定位置。
在一个实施例中,一种方法包括接收内容。该方法还包括识别内容中的一个或多个元素。该方法还包括确定一个或多个表面。此外,该方法包括将一个或多个元素匹配到一个或多个表面。另外,该方法包括将一个或多个元素作为虚拟内容显示在一个或多个表面上。
在一个或多个实施例中,内容包括被拉取(pull)内容或推送(push)内容中的至少一个。识别一个或多个元素可以包括确定一个或多个元素中的每一个元素的一个或多个属性。一个或多个属性包括优先级属性、取向属性、长宽比属性、尺寸属性、面积属性、相对观看位置属性、颜色属性、对比度属性、位置类型属性、边缘属性、内容类型属性、焦点属性、可读性指标属性或放置表面类型属性中的至少一个。确定一个或多个元素中的每一个元素的一个或多个属性是基于内容中的显式指示。
在一个或多个实施例中,确定一个或多个元素中的每一个元素的一个或多个属性是基于一个或多个元素在内容内的放置。该方法还包括将一个或多个元素存储到一个或多个逻辑结构中。一个或多个逻辑结构包括有序阵列、分层表、树结构或逻辑图结构中的至少一个。一个或多个表面包括物理表面或虚拟表面中的至少一个。确定一个或多个表面包括解析环境以确定一个或多个表面中的至少一个表面。
在一个或多个实施例中,确定一个或多个表面包括:接收原始传感器数据;简化原始传感器数据以产生简化数据;以及基于简化数据创建一个或多个虚拟表面。一个或多个表面包括一个或多个虚拟表面。简化原始传感器数据包括:过滤原始传感器数据以产生过滤数据;以及通过点云点将过滤数据分组为一个或多个组。简化数据包括一个或多个组。创建一个或多个虚拟表面包括:遍历一个或多个组中的每一个组以确定一个或多个真实世界表面;以及基于一个或多个真实世界表面创建一个或多个虚拟表面。
在一个或多个实施例中,确定一个或多个表面包括确定一个或多个表面中的每一个表面的一个或多个属性。一个或多个属性包括优先级属性、取向属性、长宽比属性、尺寸属性、面积属性、相对观看位置属性、颜色属性、对比度属性、位置类型属性、边缘属性、内容类型属性、焦点属性、可读性指标属性或放置表面类型属性中的至少一个。该方法还包括将一个或多个表面存储到一个或多个逻辑结构中。将一个或多个元素与一个或多个表面进行匹配包括:对一个或多个元素进行优先级排序;对于一个或多个元素中的每一个元素,将该元素的一个或多个属性与一个或多个表面中的每一个表面的一个或多个属性进行比较;基于该元素的一个或多个属性以及一个或多个表面中的每一个表面的一个或多个属性来计算匹配分数;以及识别具有最高匹配分数的最佳匹配表面。另外,对于一个或多个元素中的每一个元素,存储该元素和最佳匹配表面之间的关联。
在一个或多个实施例中,一个元素与一个或多个表面匹配。此外,向用户显示一个或多个表面中的每一个表面。另外,接收指示所显示的一个或多个表面中的获胜表面的用户选择。更进一步,根据用户选择,将获胜表面的表面属性保存在用户偏好数据结构中。内容是从内容提供者流式传输的数据。一个或多个元素通过混合现实设备显示给用户。
在一个或多个实施例中,该方法还包括至少部分地基于用户的改变视场来显示用于显示一个或多个元素的一个或多个附加表面选项。一个或多个附加表面选项的显示至少部分地基于与改变视场相对应的时间阈值。一个或多个附加表面选项的显示至少部分地基于头部姿势(headpose)改变阈值。
在一个或多个实施例中,该方法还包括覆盖一个或多个元素在匹配的一个或多个表面上的显示。覆盖一个或多个元素在一个或多个表面上的显示至少部分地基于历史上经常使用的表面。该方法甚至进一步包括至少部分地基于用户选择将在一个或多个表面处显示的特定元素移动到不同表面的而将在一个或多个表面上显示的一个或多个元素移动到该不同表面。将特定元素移动到至少被用户可观看的不同表面。
在一个或多个实施例中,该方法另外包括:响应于用户的视场从第一视场到第二视场的改变,将一个或多个元素的显示缓慢地移动到新表面以跟随用户视场到第二视场的改变。在接收到来自用户的确认以将内容移动为在用户第二视场的正前面时,一个或多个元素可以仅移动为在用户第二视场的正前面。该方法包括:在第一位置处暂停一个或多个元素在一个或多个表面上的显示以及在第二位置处恢复一个或多个元素在一个或多个其他表面上的显示是至少部分地基于用户从第一位置移动到第二位置。至少部分地基于对用户正在或已经从第一位置移动到第二位置的确定,自动暂停一个或多个元素的显示。至少部分地基于第二位置处的一个或多个其他表面与一个或多个元素的识别和匹配,自动恢复一个或多个元素的显示。
在一个或多个实施例中,确定一个或多个表面包括识别用于显示一个或多个元素的一个或多个虚拟对象。识别一个或多个虚拟对象是至少部分地基于从一个或多个传感器接收的指示缺少合适表面的数据。一个或多个元素中的元素是电视频道。用户通过购买显示给用户的一个或多个项目或服务来与显示的一个或多个元素中的元素进行交互。
在一个或多个实施例中,该方法还包括:检测环境从第一位置到第二位置的改变;确定第二位置处的一个或多个附加表面;将当前在第一位置处显示的一个或多个元素与该一个或多个附加表面进行匹配;以及将该一个或多个元素作为虚拟内容显示在第二位置处的一个或多个附加表面上。在环境的改变超过时间阈值之后,开始一个或多个附加表面的确定。用户暂停在第一位置处显示的活动内容,并恢复将要在第二位置处显示的活动内容,活动内容在与用户在第一位置处暂停活动内容相同交互点处恢复。
在一个或多个实施例中,该方法还包括:当用户离开第一位置时,将从与第一位置处的显示内容相关联的位置传递给用户的空间化音频转移到指向用户的头部的中心的音频虚拟扬声器;以及从指向用户的头部的中心的音频虚拟扬声器转移到从在第二位置处显示一个或多个元素的一个或多个附加表面传递给用户的空间化音频。
在另一实施例中,一种用于向混合现实系统的用户推送内容的方法包括从用户的环境接收一个或多个可用表面。该方法还包括识别与一个或多个可用表面中的一个可用表面的尺寸匹配的一个或多个内容。该方法还包括基于一个或多个内容的一个或多个约束与该一个可用表面的一个或多个表面约束比较来计算分数。此外,该方法包括从一个或多个内容中选择具有最高分数的内容。此外,该方法包括存储所选择的内容与该一个可用表面的一对一匹配。此外,在该可用表面上向用户显示所选择的内容。
在一个或多个实施例中,用户的环境是用户的个人住所。来自用户的环境的一个或多个可用表面在用户的焦点观看区域的外围。一个或多个内容是广告。广告定向给位于特定环境的特定用户组。一个或多个内容是来自应用的通知。该应用是社交媒体应用。一个或多个内容的一个或多个约束中的一个约束是取向。所选择的内容是3D内容。
在另一实施例中,增强现实(AR)显示系统包括头戴式系统,该头戴式系统包括一个或多个传感器以及一个或多个相机,该相机包括面向外部的相机。该系统还包括执行一组程序代码指令的处理器。此外,该系统包括用于存储该组程序代码指令的存储器,其中,该组程序代码指令包括用于执行接收内容的程序代码。程序代码还执行识别内容中的一个或多个元素。此外,程序代码还执行确定一个或多个表面。另外,程序代码还执行将一个或多个元素与一个或多个表面进行匹配。更进一步,程序代码还执行将一个或多个元素作为虚拟内容显示在一个或多个表面上。
在一个或多个实施例中,内容包括拉取内容或推送内容中的至少一个。识别一个或多个元素包括解析内容以识别一个或多个元素。识别一个或多个元素包括确定一个或多个元素中的每一个元素的一个或多个属性。另外,程序代码还执行将一个或多个元素存储到一个或多个逻辑结构中。一个或多个表面包括物理表面或虚拟表面中的至少一个。确定一个或多个表面包括解析环境以确定一个或多个表面中的至少一个表面。
在一个或多个实施例中,确定一个或多个表面包括:接收原始传感器数据;简化原始传感器数据以产生简化数据;以及基于简化数据来创建一个或多个虚拟表面,其中,一个或多个表面包括一个或多个虚拟表面。确定一个或多个表面包括确定一个或多个表面中的每一个表面的一个或多个属性。另外,程序代码还执行将一个或多个表面存储到一个或多个逻辑结构中。
在一个或多个实施例中,将一个或多个元素与一个或多个表面进行匹配包括:对一个或多个元素进行优先级排序;对于一个或多个元素中的每一个元素,将该元素的一个或多个属性与一个或多个表面中的每一个表面的一个或多个属性进行比较;基于该元素的一个或多个属性以及一个或多个表面中的每一个表面的一个或多个属性来计算匹配分数;以及识别具有最高匹配分数的最佳匹配表面。一个元素与一个或多个表面匹配。内容是从内容提供者流式传输的数据。
在一个或多个实施例中,程序代码还执行至少部分地基于用户的改变视场来显示用于显示一个或多个元素的一个或多个表面选项。程序代码还执行覆盖一个或多个元素在匹配的一个或多个表面上的显示。程序代码还执行:至少部分地基于用户选择将一个或多个表面处显示的特定元素移动到不同表面,来将一个或多个表面上显示的一个或多个元素移动到该不同表面。程序代码还执行:响应于用户的视场从第一视场到第二视场的改变,而将一个或多个元素的显示缓慢地移动到新表面上以跟随用户的视场到第二视场的改变。
在一个或多个实施例中,程序代码还执行:在第一位置处暂停一个或多个元素在一个或多个表面上的显示并在第二位置处恢复一个或多个元素在一个或多个其他表面上的显示是至少部分地基于用户从第一位置移动到第二位置。确定一个或多个表面包括识别用于显示一个或多个元素的一个或多个虚拟对象。一个或多个元素中的元素是电视频道。
在一个或多个实施例中,用户通过购买向用户显示的一个或多个项目或服务来与所显示的一个或多个元素中的元素进行交互。程序代码还执行:检测环境从第一位置到第二位置的改变;确定第二位置处的一个或多个附加表面;将当前在第一位置处显示的一个或多个元素与一个或多个附加表面进行匹配;以及将一个或多个元素作为虚拟内容显示在第二位置处的一个或多个附加表面上。
在另一实施例中,增强现实(AR)显示系统包括头戴式系统,该头戴式系统包括一个或多个传感器以及一个或多个相机,该相机包括面向外部的相机。该系统还包括执行一组程序代码指令的处理器。该系统还包括用于存储该组程序代码指令的存储器,其中,该组程序代码指令包括用于执行从用户的环境接收一个或多个可用表面的程序代码。程序代码还执行识别与一个或多个可用表面中的一个可用表面的尺寸匹配的一个或多个内容。程序代码还执行基于一个或多个内容的一个或多个约束与该一个可用表面的一个或多个表面约束比较来计算分数。程序代码还执行从一个或多个内容中选择具有最高分数的内容。此外,程序代码执行存储所选择的内容到该一个可用表面的一对一匹配。程序代码还执行在可用表面上向用户显示所选择的内容。
在一个或多个实施例中,用户的环境是该用户的个人住所。来自用户的环境的一个或多个可用表面在用户的焦点观看区域的外围。一个或多个内容是广告。一个或多个内容是来自应用的通知。一个或多个内容的一个或多个约束中的一个约束是取向。所选择的内容是3D内容。
在另一实施例中,一种用于解构2D内容的计算机实现的方法包括识别内容中的一个或多个元素。该方法还包括识别一个或多个周围表面。该方法还包括将一个或多个元素映射到一个或多个周围表面。此外,该方法包括将一个或多个元素作为虚拟内容显示在一个或多个表面上。
在一个或多个实施例中,内容是网页。一个或多个元素中的元素是视频。一个或多个周围表面包括物理环境内的物理表面或不在物理上位于物理环境内的虚拟对象。虚拟对象是多个堆叠的虚拟对象。所识别的一个或多个元素的第一组结果和所识别的一个或多个周围表面的第二组结果存储在存储设备内的数据库表中。该存储设备是本地存储设备。存储所识别的一个或多个周围表面的结果的数据库表包括:表面ID、宽度尺寸、高度尺寸、取向描述和相对于参考系的位置。
在一个或多个实施例中,识别内容中的一个或多个元素包括:从与元素的放置相对应的标签中识别属性;从对于一个或多个元素的标签中提取提示;以及存储该一个或多个元素。识别一个或多个周围表面包括:识别用户当前的周围表面;确定用户的姿势;识别周围表面的尺寸;以及存储一个或多个周围表面。将一个或多个元素映射到一个或多个周围表面包括:查找用于识别候选周围表面以进行映射的预定义规则;以及对于一个或多个元素中的每一个元素选择最适合表面。通过增强现实设备执行一个或多个元素在一个或多个周围表面上的显示。
本文描述和示出的每一个单独的实施例具有离散的组件和特征,其可以容易地与其他几个实施例中的任何一个实施例的组件和特征分离或组合。
在下面的详细描述、附图和权利要求中描述了本公开的特征、目的和优点的进一步细节。前面的一般描述和下面的详细描述都是示例性和说明性的,并且不意图限制本公开的范围。
附图说明
附图示出了本公开的各种实施例的设计和实用性。应当注意,附图未按比例绘制,并且在整个附图中,相似结构或功能的元件由相似的附图标记表示。为了更好地理解如何获得本公开的各个实施例的上述和其他优点和目的,将通过参考附图中示出的本发明的具体实施例来给出上面简要描述的本公开的更详细的描述。理解这些附图仅描绘了本公开的典型实施例,因此不应认为是对本公开范围的限制,本公开将通过使用附图以附加的特征和细节来描述和解释,其中:
图1A-1B示出了根据一些实施例的将内容的内容元素匹配至空间三维(3D)环境的示例系统和计算机实现的方法。
图2A-2E示出了根据一些实施例的用于将内容元素匹配至空间三维(3D)环境中的表面的示例。
图3A-3B示出了根据一些实施例的被调整为光照和颜色条件的网络内容的示例。
图4是示出根据一些实施例的用于将内容元素匹配至要在3D环境中显示的表面的方法的流程图。
图5是示出根据一些实施例的用于识别内容中的元素的方法的流程图。
图6是示出根据一些实施例的用于根据用户的环境确定表面的方法的流程图。
图7A-7B是示出根据一些实施例的用于将来自内容的元素匹配到表面的各种方法的流程图。
图7C示出了根据一些实施例的用户将内容移动到其中随后在显示表面中显示内容的工作区域的示例。
图8示出了根据一些实施例的匹配分数方法。
图9示出了根据一些实施例的提供位置特定环境的世界位置环境API的示例。
图10是示出根据一些实施例的用于将内容推送到VR/AR系统的用户的方法的流程图。
图11示出了根据一些实施例的用于将内容元素匹配/显示到表面的增强现实环境。
图12示出了根据一些实施例的将内容元素匹配/显示到表面的增强现实环境。
图13A-13B示出了根据一些实施例的示例性双面网页。
图14A-14B示出了根据一些实施例的用于存储来自内容的内容元素的不同结构的示例。
图15示出了根据一些实施例的表的示例,该表用于存储从用户的本地环境中识别出的表面的清单。
图16示出了根据一些实施例的用于网络链接的示例3D预览。
图17示出了根据一些实施例的具有蚀刻到网页中的3D体积的网页的示例。
图18示出了根据一些实施例的用于存储内容元素到表面的匹配/映射的表的示例。
图19示出了根据一些实施例的包括与表面匹配的内容元素的环境的示例。
图20A-20O示出了根据一些实施例的用于内容元素的动态环境匹配协议的示例。
图21示出了根据一些实施例的在环境改变期间的音频转移。
图22是适合于实现本公开的实施例的说明性计算系统的框图。
图23是示出用于在表面之间转移向用户显示内容的方法的流程图。
具体实施方式
现在将参考附图详细描述各种实施例,这些实施例被提供为本公开的说明性示例,以使得本领域技术人员能够实践本公开。值得注意的是,下面的附图和示例并不意味着限制本公开的范围。在可以使用已知组件(或方法或过程)来部分或全部实现本公开的某些要素的情况下,将仅描述理解本公开所必需的这些已知组件(或方法或过程)的那些部分,并且将省略对这些已知组件(或方法或过程)的其他部分的详细描述,以免模糊本公开。此外,各种实施例涵盖通过举例说明的方式在本文中提及的组件的当前和将来已知的等同物。
本公开的实施例在空间组织的3D环境中显示内容或内容元素。例如,内容或内容元素可以包括被推送内容、被拉取内容、第一方内容和第三方内容。被推送内容是服务器(例如,内容设计者)发送到客户端(例如,用户)的内容,其中,初始请求源自服务器。被推送内容的示例可以包括:(a)来自各种应用的通知,诸如股票通知、新闻供应;(b)优先内容,诸如例如,来自社交媒体应用的更新和通知、电子邮件更新等;和/或(c)以广泛目标群体和/或特定目标群体为目标的广告,等等。被拉取内容是客户端(例如,用户)从服务器(例如,内容设计者)请求的内容,其中,初始请求源自客户端。被拉取内容的示例可以包括:(a)用户使用例如浏览器请求的网页;(b)用户使用例如数据流应用(诸如视频和/或音频流应用)从内容提供商请求的流数据;(c)和/或用户可能要请求/访问/查询的任何数字格式数据。第一方内容是由客户端(例如,用户)在客户端拥有/使用的任何设备(例如,诸如移动设备、平板电脑、相机、头戴式显示设备等的客户端设备)上生成的内容。第一方内容的示例包括照片、视频等。第三方内容是由不是客户端的一方生成的内容(例如,电视网络、电影流服务提供商、由除用户之外的其他人开发的网页和/或未由用户生成的任何数据)。第三方内容的示例可以包括由除用户以外的其他人生成的网页、从一个或多个源接收的数据/音频/视频流和相关联内容、由除用户以外的其他人生成的任何数据、等等。
内容可以源自于头戴式系统、移动设备(例如,蜂窝电话)、平板电脑、电视、源自服务器等上的网页和/或应用。在一些实施例中,可以从另一应用或设备接收内容,诸如膝上型计算机、台式计算机、具有到内容的链接的电子邮件应用、引用或包括到内容的链接的电子消息等等。以下详细描述包括网页作为内容的示例。然而,内容可以是任何内容,并且本文公开的原理将适用。
框图
图1A示出了根据一些实施例的将内容的内容元素匹配到空间三维(3D)环境的示例系统和计算机实现的方法。系统100包括内容结构化过程120、环境结构化过程160和合成过程140。系统100或其部分可以在诸如头戴式显示设备的设备上实现。
内容结构化过程120是读取内容110并将内容110组织/存储到逻辑结构中的过程,以使内容110可以访问并且更容易以编程方式从内容110中提取内容元素。内容结构化过程120包括解析器115。解析器115接收内容110。例如,解析器115从实体(例如,内容设计者)接收内容110。该实体可以是例如应用。该实体可以在系统100的外部。如上所述,内容110可以是例如被推送内容、被拉取内容、第一方内容和/或第三方内容。当请求内容110时,外部网络服务器可以服务于内容110。解析器115解析内容110以识别内容110的内容元素。解析器115可以将内容元素识别并随后组织并存储在逻辑结构中,诸如用于盘点内容110的内容表。内容表可以是例如树结构(诸如文档树或图形)和/或数据库表(诸如关系数据库表)。
解析器115可以识别/确定并存储每一个内容元素的属性。每一个内容元素的属性可以由内容110的内容设计者显式指示,或者可以由解析器115例如基于内容元素在内容110内的放置来确定或推断。例如,解析器115可以基于内容元素在内容110内相对于彼此的放置来确定或推断每一个内容元素的属性。内容元素的属性在下面进一步详细描述。解析器115可以生成从内容110解析的所有内容元素以及各个属性的列表。在解析并存储内容元素之后,解析器115可以基于相关联的优先级(例如,从最高到最低)对内容元素进行排序。
在逻辑结构组织和存储内容元素的一些好处是,一旦将内容元素组织并存储到逻辑结构中,系统100就可以查询和操纵内容元素。例如,在表示为具有节点的树结构的分层/逻辑结构中,如果删除节点,则所删除的节点之下的所有内容也可能被删除。同样,如果移动节点,则节点之下的所有内容都可能随之移动。
环境结构化过程160是解析与环境有关的数据以识别表面的过程。环境结构化过程160可以包括传感器162、计算机视觉处理单元(CVPU)164、感知框架166和环境解析器168。传感器162提供有关真实世界表面的原始数据(例如,来自环境的对象以及结构的点云)到CVPU 164进行处理。传感器162的示例可以包括全球定位系统(GPS)、无线信号传感器(Wi-Fi、蓝牙等)、相机、深度传感器、包括加速度计三元组(triad)和角速率传感器三元组的惯性测量单元(IMU)、磁力计、雷达、气压计、高度计、加速度计、测光计、陀螺仪等。
CVPU 164简化或过滤原始数据。在一些实施例中,CVPU 164可以从原始数据中滤除噪声以产生简化的原始数据。在一些实施例中,CVPU 164可以从原始数据和/或简化的原始数据中滤除可能未被使用和/或可能与当前环境扫描任务无关的数据以产生过滤的数据。CVPU 164可以通过距离和平面性将剩余数据更改为组点云点,从而使得下游的提取/识别/确定表面更容易。CVPU 164将处理的环境数据提供给感知框架166以用于进一步处理。
感知框架166从CVPU 164接收组点云点,并为环境解析器168准备环境数据。感知框架166创建/确定结构/表面/平面(例如,表面的列表)并填充一个或多个数据存储设备(诸如例如,外部数据库、本地数据库、专用本地存储设备、本地存储器等)。例如,感知框架166遍历(iterate through)从CVPU 164接收的所有分组的点云点,并且创建/确定与真实世界表面对应的虚拟结构/表面/平面。虚拟平面可以是四个顶点(从分组的点云点中挑选的),该四个顶点创建虚拟构造的矩形(例如,在渲染管线(pipeline)中分成两个三角形)。由感知框架166创建/确定的结构/表面/平面被称为环境数据。当渲染并叠加在真实世界表面上时,虚拟表面基本上放置在其对应的一个或多个真实世界表面上。在一些实施例中,虚拟表面完美地放置在其对应的一个或多个真实世界表面上。感知框架286可以维持虚拟表面与对应的真实世界表面的一对一或一对多匹配/映射。一对一或一对多匹配/映射可用于查询。当环境改变时,感知框架286可以更新一对一或一对多匹配/映射。
环境解析器168解析来自感知框架166的环境数据以确定环境中的表面。环境解析器168可以基于从感知框架166接收的环境数据使用对象识别来识别对象。关于对象识别的更多细节在题为“PLANAR WAVEGUIDE APPARATUS WITH DIFFRACTION ELEMENT(S)ANDSYSTEM EMPLOYING SAME(具有衍射元件的平面波导装置和使用具有衍射元件的平面波导装置的系统)”的美国专利号No.9,671,566以及题为“USING OBJECT RECOGNIZERS IN ANAUGMENTED OR VIRUTAL REALITY SYSTEM(在增强或虚拟现实系统中使用对象识别器)”的美国专利号9,761,055中有所描述。环境解析器168可以将表面组织和存储在逻辑结构中,诸如用于盘点表面的表面表。表面表可以是例如有序阵列、分层表、树结构、逻辑图结构等。在一个示例中,可以线性地迭代有序阵列,直到确定良好的合适表面为止。在一个示例中,对于由特定参数(例如,最大表面积)排序的树结构,可以通过连续比较树中的每一个表面是否小于或大于请求的面积来确定最合适表面。在一个示例中,在逻辑图数据结构中,搜索最合适表面可以基于相关的邻接参数(例如,距观察者的距离),或者可以具有针对特定表面请求的快速搜索的表。
上面描述的数据结构可以是环境解析器168在运行时将与所确定的表面相对应的数据存储到其中(并且如果需要的话,基于环境改变来更新该数据)以处理表面匹配并在其上运行任何其他算法。在一个实施例中,以上关于环境解析器168描述的数据结构可能不是更持久地存储数据的地方。该数据可以由感知框架166更持久地存储,感知框架166当接收并处理该数据时可以是运行时存储器RAM、外部数据库、本地数据库等。在处理表面之前,环境解析器168可以从持久存储设备接收表面数据,并根据它们填充逻辑数据结构,然后在逻辑数据结构上运行匹配算法。
环境解析器168可以确定和存储每一个表面的属性。相对于来自解析器115的内容表中的内容元素的属性,每一个表面的属性可能是有意义的。下面将进一步详细描述表面的属性。环境解析器168可以生成从环境解析的所有表面以及各个属性的列表。在解析并存储表面之后,环境解析器168可以基于相关联的优先级(例如,从最高到最低)对表面进行排序。当环境解析器168从持久存储设备接收表面数据并根据它们填充逻辑数据结构时可以建立表面的相关联优先级。例如,如果逻辑数据结构包括二进制搜索树,则对于来自存储设备的每一个表面(在常规枚举列表中接收的),环境解析器168可以首先计算优先级(例如,基于表面的一个或多个属性),然后在适当的位置处将表面插入到逻辑数据结构中。环境解析器168可以解析点云并且基于空间中的点/关系的接近度提取表面和/或平面。例如,环境解析器168可以提取水平和垂直平面并将尺寸与平面相关联。
内容结构化过程120解析内容110,并将内容元素组织到逻辑结构中。环境结构化过程160解析来自传感器162的数据,并将来自环境的表面组织到逻辑结构中。包括内容元素的逻辑结构和包括表面的逻辑结构用于匹配和操纵。包括内容元素的逻辑结构可以与包括表面的逻辑结构不同(在类型上)。
合成过程140是将来自解析器115的内容元素(例如,存储在逻辑结构中的内容元素的表)与来自环境解析器168的环境的表面(例如,存储在逻辑结构中的表面的表)进行匹配以确定要在环境的哪些表面上渲染/映射/显示哪个内容元素的过程。在一些实施例中,如图1A所示,合成过程140可以包括匹配模块142、渲染模块146和可选的创建虚拟对象模块144。在一些实施例中,如图1B所示,合成过程140还可以包括显示模块148和接收模块150。
匹配模块142将存储在逻辑结构中的内容元素与存储在逻辑结构中的表面进行配对/匹配。匹配可以是内容元素与表面的一对一或一对多匹配(例如,一个内容元素与一个表面、一个内容元素与两个或更多个表面、两个或更多个内容元素与一个表面等)。在一些实施例中,匹配模块142可以将内容元素与表面的一部分进行配对/匹配。在一些实施例中,匹配模块142可以将一个或多个内容元素与一个表面进行配对/匹配。匹配模块142将内容元素的属性与表面的属性进行比较。匹配模块142基于内容元素和表面共享相似和/或相反属性将内容元素与表面进行匹配。具有存储在逻辑结构中的内容元素和存储在逻辑结构中的表面的这种有组织的基础结构允许容易地创建、更新和实现匹配规则、策略和约束,以支持和改善由匹配模块142执行的匹配过程。
匹配模块142可以访问诸如用户偏好、系统偏好和/或可通行偏好的一个或多个偏好数据结构,并且可以在匹配过程中使用一个或多个偏好数据结构。用户偏好可以是基于例如基于过去动作的总体偏好的模型,并且可以特定于特定内容元素类型。对于一个内容元素,系统偏好可以包括前两个或更多个表面,其中,用户可以具有在两个或更多个表面中导航以选择偏好表面的能力。前两个或更多个表面可以基于用户偏好和/或可通行偏好。可以从云数据库中检索可通行偏好,其中,可通行偏好可以是基于例如其他用户、相似用户、所有用户、相似环境、内容元素类型等的分组的模型。甚至在累积大数据集(例如,用户的数据集)之前,也可以用消费者数据(例如,总体消费者数据、消费者测试数据等)预先填充可通行偏好数据库,以提供合理的匹配。
匹配模块142至少部分地基于内容矢量(例如,取向属性)、头部姿势矢量(例如,VR/AR设备的属性,不是表面)和一个或多个表面的表面法线矢量将一个内容元素与一个或多个表面进行匹配。内容矢量、头部姿势矢量和表面法线矢量在下面详细描述。
匹配模块142生成匹配结果,该匹配结果具有内容元素到表面的至少一对一或一对多(例如,一个内容元素到一个表面、一个内容元素到两个或更多个表面、两个或更多个内容元素到一个表面等)匹配/映射。结果可以存储在高速缓存存储器或永久存储设备中以进行进一步处理。可以将结果组织并存储在表中以盘点匹配。
在一些实施例中,匹配模块142可以生成匹配结果,其中,一个内容元素可以被匹配/映射到多个表面,使得该内容元素可以被渲染和显示在多个表面中的任何一个表面上。例如,内容元素可以匹配/映射到五个表面。然后,用户可以从五个表面中选择一个表面作为然后应在其上显示内容元素的偏好表面。在一些实施例中,匹配模块142可以生成匹配结果,其中,一个内容元素可以被匹配/映射到多个表面的前三个表面。
在一些实施例中,当用户挑选或选择偏好表面时,由用户进行的选择可以更新用户偏好,使得系统100可以将内容元素更准确和精确地推荐给表面。
如果匹配模块142将所有内容元素匹配到至少一个表面,或丢弃内容元素(例如,用于映射到其他表面,或找不到合适的匹配),则合成过程140可以进行到渲染模块146。在一些实施例中,对于不具有匹配表面的内容元素,匹配模块142可以创建内容元素到虚拟表面的匹配/映射。在一些实施例中,匹配模块142可以消除不具有匹配表面的内容元素。
可选的创建虚拟对象模块144可以创建用于显示内容元素的虚拟对象,例如虚拟平面。在匹配模块142的匹配过程中,可以确定虚拟表面可以是用于在其上显示某些内容元素的可选表面。该确定可以基于由环境解析器168确定的表面的纹理属性、被占用的属性和/或其他属性和/或由解析器115确定的内容元素的属性。表面的纹理属性和被占用的属性在下面详细描述。例如,匹配模块142可以确定纹理属性和/或被占用的属性可能是潜在表面的失格(disqualify)属性。匹配模块142可以至少基于纹理属性和/或被占用属性来确定内容元素可以替代地被显示在虚拟表面上。虚拟表面的位置可以相对于一个或多个(真实)表面的位置。例如,虚拟表面的位置可以与一个或多个(真实)表面的位置相距一定距离。在一些实施例中,匹配模块142可以确定不存在合适的(真实)表面,或者传感器162可以根本不检测任何表面,并且因此,创建虚拟对象模块144可以创建虚拟表面以在其上显示内容元素。
在一些实施例中,可以基于从传感器162的一个或多个特定传感器接收的数据,或者由于缺乏来自一个或多个特定传感器的传感器输入,来创建用于显示内容元素的虚拟对象。从传感器162的以环境为中心的传感器(诸如相机或深度传感器)接收的数据可能基于用户的当前物理环境指示缺少合适的表面,或者此类传感器可能根本无法辨别表面的存在(例如,取决于深度传感器的质量,高吸收性的表面可能使表面识别变得困难,或者缺乏连接性使得妨碍访问某些可能提供表面信息的可共享地图)。
在一些实施例中,如果环境解析器168在特定时间帧内没有从传感器162或感知框架166接收到数据,则环境解析器168可以被动地确定不存在合适的表面。在一些实施例中,传感器162可以主动确认以环境为中心的传感器不能确定表面,并且可以将这种确定传递给环境解析器168或渲染模块146。在一些实施例中,如果环境结构化160没有要提供给合成140的表面,或通过环境解析器168的被动确定或通过传感器162的主动确认,则合成过程140可以创建虚拟表面或访问诸如来自存储模块152的存储的或注册的表面。在一些实施例中,环境解析器168可以诸如从热点或第三方感知框架或存储模块直接接收表面数据,而没有来自设备自身的传感器162的输入。
在一些实施例中,诸如GPS的某些传感器可以确定用户所处的位置没有合适的表面来显示内容元素(例如空地公园或海滩),或提供数据的唯一传感器是不提供地图信息而是提供取向信息的传感器(例如磁力计)。在一些实施例中,某种类型的显示内容元素可能需要一种在用户的物理环境中可能不可用或不可检测的显示表面。例如,用户可能想要观看显示从用户的酒店房间到某个位置的步行路线的地图。为了使用户在用户导航到该位置时能够保持步行地图的视图,AR系统可能需要考虑创建虚拟对象(诸如虚拟表面或屏幕)以显示步行地图,因为基于从传感器162接收的(或没有接收的)数据,环境解析器168可能没有足够的可用表面或可检测到的表面,这将使用户无法连续观看从步行地图上酒店的用户房间的起始位置到目的地位置的步行地图。例如,用户可能必须进入可能会限制或阻止网络连接的电梯、离开酒店、穿过诸如公园之类的开放区域,那里可能没有可用的表面来显示内容元素,或者噪声太大使传感器无法准确检测所需的表面。在该示例中,AR系统可以确定基于要显示的内容以及可能包括缺少网络连接性或缺少合适的显示表面的潜在问题(例如,基于用户当前位置的GPS数据),AR系统可以确定最好是创建虚拟对象来显示内容元素,这与依赖于环境解析器168使用从传感器162接收的信息来找到合适的显示表面相反。在一些实施例中,创建来显示内容元素的虚拟对象可以是棱镜。关于棱镜的更多细节的2017年12月22日提交的题为“METHODS AND SYSTEM FORMANAGING ANDDISPLAYING VIRTUALCONTENT IN A MIXED REALITY SYSTE(用于在混合现实系统中管理和显示虚拟内容的方法和系统)”的共有的美国临时专利申请号62/610,101中进行了描述。本领域的普通技术人员可以理解创建虚拟表面以在其上显示内容元素比在(真实)表面上显示内容元素可能更有益的许多示例。
渲染模块146将内容元素渲染到它们的匹配表面。匹配表面可以包括真实表面和/或虚拟表面。在一些实施例中,尽管在内容元素和表面之间进行匹配,但是该匹配可能不是完美匹配。例如,内容元素可能需要1000x500的2D区域。但是,最佳的匹配表面可能具有900x 450的尺寸。在一个示例中,渲染模块146可以渲染1000x500内容元素以最适合900x450表面,这可以包括例如在保持长宽比不变的情况下缩放内容元素。在另一个示例中,渲染模块146可以裁剪1000×500内容元素以适合在900×450表面内。
在一些实施例中,实现系统100的设备可以移动。例如,实现系统100的设备可以从第一房间移动到第二房间。
在一些实施例中,与第一房间中的表面(真实和/或虚拟)相匹配的内容元素可以保持与第一房间中的表面相匹配。例如,实现系统100的设备可以从第一房间移动到第二房间,并且与第一房间中的表面匹配的内容元素将不与第二房间中的表面匹配并且因此不会在其上渲染。如果设备然后要从第二房间移动到第一房间,则与第一房间中的表面匹配的内容元素将被渲染到第一房间中的对应表面/显示在第一房间中的对应表面上。在一些实施例中,内容将继续在第一房间中渲染,尽管由于在设备的视场之外而不被显示,但是某些特征将继续运行,例如音频播放或播放时间,使得当设备返回到具有视场中的匹配内容时,渲染将无缝地恢复(类似的效果,就好像用户离开房间,电影在传统电视上播放一样)。
在一些实施例中,与第一房间中的表面匹配的内容元素可以与第二房间中的表面匹配。例如,实现系统100的设备可以从第一房间移动到第二房间,并且在设备处于第二房间之后,环境结构化过程160和合成过程140可以发生/运行/执行,并且内容元素可以与第二房间中的表面(真实和/或虚拟)相匹配。
在一些实施例中,与第一房间中的表面匹配的一些内容元素可以保持在第一房间中,而与第一房间中的表面匹配的其他内容元素可以移动到第二房间。例如,与第一房间中的表面匹配的第一组内容元素可以保持与第一房间中的表面匹配,而与第一房间中的表面匹配的第二组内容元素可以与实现系统100的设备一起移动到第二房间。当设备从第一房间进入第二房间时,第二组内容元素可以与设备一起移动。可以基于内容元素的属性、内容元素所匹配的第一房间中的一个或多个表面的属性、用户偏好、系统偏好和/或可通行世界偏好,来确定内容元素是在第一组中还是第二组中。这些各种情况的基础是匹配和渲染可能是排他性的;内容可能与表面匹配但不是渲染。由于用户设备不需要不断地匹配表面,这可以节省计算周期和功率,并且选择性渲染可以减少在匹配的表面处重新观看内容时的延迟。
图1B示出了根据一些实施例的将内容的内容元素匹配到空间3D环境的示例系统和计算机实现的方法。系统105包括类似于图1A的内容结构化过程120、环境结构化过程160和合成过程140。图1B的合成过程140包括附加模块,该附加模块包括显示模块148和接收模块150。
如上所述,匹配模块142可以生成匹配结果,其中,一个内容元素可以被匹配/映射到多个表面,使得该内容元素可以被渲染和显示在多个表面中的任何一个表面上。显示模块148在多个表面上或在单个表面的多个部分中显示内容元素或内容元素的轮廓或内容元素的降低的分辨率版本(在本文中均称为“候选视图”)。在一些实施例中,多个表面显示是依次的,使得用户一次仅看到单个候选视图,并且可以一个接一个地循环或滚动浏览附加候选视图选项。在一些实施例中,所有候选视图被同时显示,并且用户选择单个候选视图(诸如通过语音命令、到硬件接口的输入、眼睛追踪等)。接收模块150从用户接收在多个表面中的一个表面上的一个候选视图的选择。所选择的候选视图可以被称为偏好表面。可以将偏好表面作为用户偏好或可通行偏好保存在存储模块152中,使得在将内容元素与表面进行匹配时将来的匹配可以受益于这种偏好,如从接收模块150到匹配模块142的信息流156或从存储模块152到匹配模型142的信息流154所指示的。信息流156可以是迭代过程,使得根据一些实施例,在几次迭代之后,用户偏好可以开始优先系统和/或可通行偏好。相比之下,信息流154可以是固定输出,使得始终向即时用户或在相同环境中输入或希望显示内容的其他用户给予匹配优先级。系统和/或可通行偏好可以优先于用户偏好,但是随着更多的信息流156继续影响用户对图1A的系统100或图1B的系统105的使用,用户的偏好可能会开始通过自然学习过程算法被系统偏好。因此,在一些实施例中,无论其他表面的可用性或否则将导致匹配模块142将内容元素放置在其他地方的环境输入如何,内容元素将渲染/显示在偏好表面上。类似地,信息流154可以指定(dictate)为从未在环境中并且还没有建立第一用户具有的偏好表面的迭代信息流156的第二用户渲染/显示到偏好表面的匹配。
有利地,由于传感器数据和虚拟模型通常存储在短期计算机存储器中,如果在内容放置会话之间存在设备关闭,则存储偏好表面的持久性存储模块可以更快地循环合成过程140。例如,如果传感器162收集深度信息以通过环境结构化160创建虚拟网格重建以在第一会话中匹配内容,并且系统关闭清空存储该环境数据的随机存取存储器,则系统将不得不在重新启动时重复环境结构化管线用于下一个匹配会话。然而,通过存储模块152利用偏好表面信息更新匹配142来节省计算资源,而无需环境结构化过程160的完整迭代。
在一些实施例中,内容元素可以一次全部显示在前三个表面上。然后,用户可以从前三个表面中选择一个表面作为偏好表面。在一些实施例中,内容元素可以一次仅显示在前三个表面之一上,并向用户指示内容元素可以显示在两个其他表面上。然后,用户可以浏览其他表面选项,并且随着用户激活每一个表面选项,内容元素可以被显示在激活的表面上。然后,用户可以从表面选项中选择一个表面作为偏好表面。
图2A-2E描绘了与用户的物理环境1105内的三个可能位置匹配的内容元素(例如,计算机的监控器、智能手机、平板电脑、电视、网页浏览器、屏幕等)。图2A示出了被匹配/映射到如观看位置建议214所指示的三个可能位置的内容元素。显示在观看位置建议214中左手侧的三个白点指示可能存在三个显示位置。带有“x”的第四白点可以是关闭按钮,以在用户选择“x”时关闭观看位置建议214并基于所选择的/突出显示的显示位置来指示对偏好显示位置的选择。显示位置212a是用于显示内容元素的第一选项,如左手侧的三个白点中突出显示的第一白点所指示的。图2B示出了相同的用户环境1105,其中,显示位置212b是用于显示内容元素的第二选项,如由左手侧的三个白点中突出显示的第二白点所指示的。图2C示出了相同的用户环境1105,其中,显示位置212c是用于显示内容元素的第三选项,如由左手侧的三个白点中突出显示的第三白点所指示的。本领域的普通技术人员可以理解,可以存在其他方法来示出显示选项供用户选择,并且图2A-2C中示出的示例只是一个示例。例如,另一种方法可以是一次显示所有显示选项,并让用户使用VR/AR设备(例如,控制器,通过注视等)选择偏好选项。
将理解,AR系统具有虚拟内容可以投影的某些视场,并且这种视场通常小于人类的全部视场潜力。人类通常可以具有介于110度和120度之间的自然视场,在一些实施例中,如图2D所示,AR系统224的显示视场小于该潜力,这意味着表面候选212c可能在用户的自然视场内,但在设备的视场外(例如,系统能够在该表面上渲染内容,但实际上不会显示该内容)。在一些实施例中,将视场属性(属性在下面进一步描述)分配给表面,以标示表面是否能够支持对设备的显示场(field of display)显示的内容。在一些实施例中,如上所述,显示场之外的表面不被呈现给用户用于显示选项。
在一些实施例中,如图2E所示的默认位置212作为虚拟表面在规定距离处(诸如在设备的显示系统的特定焦距规格)在用户正前方。然后,用户可以诸如通过传感器162测量的头部姿势或手势或其他输入方式将默认位置212调整到环境中的期望位置(例如,来自存储设备285的注册位置或来自合成140的匹配表面)。在一些实施例中,默认位置可以相对于用户保持固定,使得随着用户在环境中移动,默认位置212保持在用户视场的基本上相同的部分中(与这个实施例中的设备显示场相同)。
图2E还作为示例示出了默认位置212处的虚拟电视(TV),该默认位置具有与虚拟TV相关联的三个TV应用预览(例如,TV App1、TV App2、TV App3)。这三个TV应用可以对应于不同的TV频道或者不同TV应用对应于不同的TV频道/TV内容提供商。用户可以通过选择虚拟TV下方显示的相应TV应用/频道来提取用于TV播放的单个频道。用户可以通过以下方式提取TV频道:(a)使用图腾对准频道;(b)按下图腾上的触发器以选择频道,并将触发器保持一段时间(例如,约1秒);(c)四处移动图腾以识别环境中用于显示所提取的TV频道的期望位置;以及(d)按下图腾上的触发器以将所提取的TV频道放置在环境中的期望位置处。在美国专利申请15/296,869中进一步描述了选择虚拟内容,该申请要求2015年10月20日的优先权,标题为“SELECTING VIRTUAL OBJECTS IN A THREE-DIMENSIONAL SPACE(在三维空间中选择虚拟对象)”。
期望位置可以是适合于显示TV频道的表面,或者是根据本公开的教导识别的其他表面。在一些实施例中,可以在期望位置处创建新的棱镜,其中将所选频道内容加载并显示在新的棱镜内。关于图腾的更多细节在标题为“PLANAR WAVEGUIDE APPARATUS WITHDIFFRACTION ELEMENT(S)AND SYSTEM EMPLOYING SAME(具有衍射元件的平面波导装置和采用具有衍射元件的平面波导装置的系统)”的美国专利No.9,671,566中描述。在一些实施例中,这三个TV应用可以是“频道预览”,其是用于通过显示频道内容的动态或静态描绘来观看各个频道上正在播放的内容的小孔。在一些实施例中,(c)在移动图腾以识别环境中用于显示所提取的TV频道的期望位置的同时,可以向用户显示视觉。视觉可以是例如图示该频道的单个图像、图示该频道的预览的一个或多个图像、图示该频道的当前内容的视频流等。视频流可以是例如低分辨率或高分辨率,并且(在分辨率、帧速率上等)可以作为可用资源和/或带宽的函数而改变。
图2A-2E示出了不同的显示选项以在用户的原始视场内(例如,基于特定的头部姿势)显示内容(例如,作为虚拟内容的元素)。在一些实施例中,用户的视场可以改变(例如,用户将其头部从一个视场移动到另一视场)。作为改变视场的结果,可以至少部分地基于用户的视场的改变(例如,头部姿势的改变)使用于显示内容的附加表面选项对用户可用。用于显示内容的附加表面选项也可能至少部分地基于用户的原始视场中最初不可用但现在基于用户的视场改变而对用户可见的其他表面而可用。因此,图2A-2D的视图位置选项214还可以描绘用于显示内容的附加选项。例如,图2A-2D描绘了三个显示选项。随着用户视场的改变,更多的显示选项可能可用,这可能导致视图位置选项214显示更多的点以指示附加显示选项。同样,如果新视场具有较少的表面选项,则视图位置选项214可以显示少于3个点,以指示可用于在新视场中显示的内容的多个显示选项。因此,可以基于用户的改变视场将用于显示内容的一个或多个附加表面选项显示给用户以供选择,改变视场对应于用户的头部姿势改变。
在一些实施例中,用户可以具有第一视场。第一视场可以用于生成用于在其上显示内容的表面选项。例如,第一视场中的三个表面选项可用于在其上显示内容元素。然后,用户可以将其视场从第一视场改变为第二视场。然后,第二视场可用于生成用于在其上显示内容的附加表面选项。例如,第二视场中的两个表面选项可以用于在其上显示内容元素。在第一视场中的表面和第二视场中的表面之间,可能总共有五个表面选项。五个表面选项可以作为观看位置建议显示给用户。如果用户正在第二视场中观看并且在第一视场中选择观看位置建议,则用户可以在第一视场的方向上接收指示(例如,箭头、微光等),该指示向用户指示他们应该沿所指示的方向导航回到第一视场,以观看所选的表面选项/观看位置。
在一些实施例中,用户可能正在观看在第一视场中的第一表面上显示的内容。第一视场可以具有相关联的第一头部姿势。如果用户将其视场从第一视场改变为第二视场,则在一段时间后,系统可以向用户提供选项,以将内容的显示位置从第一视场中的第一表面改变为第二视场中的一个或多个表面选项。第二视场可以具有相关联的第二头部姿势。在一些实施例中,一旦用户的视场从第一视场改变到第二视场并且因此从第一头部姿势改变为第二头部姿势,则系统可以立即向用户提供移动内容的选项,第一头部姿势和第二头部姿势的位置改变大于头部姿势改变阈值。在一些实施例中,用户与第二视场并且因此第二头部姿势保持在一起的时间阈值(例如,5秒)可以确定系统是否向用户提供改变内容的显示位置的选项。在一些实施例中,视场的改变可以是轻微的改变,诸如小于对应的头部姿势改变阈值(例如,相对于第一视场的任何方向并且因此第一头部姿势的方向小于90度),以触发系统提供改变内容的显示位置的选项。在一些实施例中,在系统向用户提供改变内容的显示位置的选项之前,头部姿势的改变可以大于头部姿势改变阈值(例如,在任何方向上大于90度)。因此,可以至少部分地基于与改变视场相对应的时间阈值来显示用于基于改变视场显示内容的一个或多个附加表面选项。在一些实施例中,可以至少部分地基于头部姿势改变阈值来显示用于基于用户的改变视场显示内容的一个或多个附加表面选项。
在一些实施例中,系统可以在一个或多个第一表面上渲染/显示内容,其中,观看内容的用户具有第一头部姿势。观看内容的用户可以将其头部姿势从第一头部姿势改变为第二头部姿势。响应于头部姿势的改变,系统可以在一个或多个第二表面上渲染/显示内容,其中,观看内容的用户具有第二头部姿势。在一些实施例中,系统可以向用户提供将内容的渲染/显示位置从一个或多个第一表面改变为一个或多个第二表面的选项。在一些实施例中,一旦用户的头部姿势已经从第一头部姿势改变为第二头部姿势,则系统可以立即向用户提供移动内容的选项。在一些实施例中,如果头部姿势改变大于对应的头部姿势改变阈值(例如,90度),则系统可以向用户提供改变内容的渲染/显示位置的选项。在一些实施例中,如果头部姿势改变保持阈值时间段(例如,5秒),则系统可以向用户提供改变内容的渲染/显示位置的选项。在一些实施例中,头部姿势的改变可以是轻微的改变,诸如小于对应的头部姿势改变阈值(例如,小于90度),以触发系统提供改变内容的渲染/显示位置的选项。
属性
一般属性
如上所述,解析器115可以识别/确定和存储每一个内容元素的属性,而环境解析器168可以确定和存储每一个表面的属性。内容元素的属性可以由内容110的内容设计者显式指示,或者可以由解析器115确定或以其他方式推断。表面的属性可以由环境解析器168确定。
内容元素和表面两者都可以具有的属性包括例如取向、长宽比、尺寸、面积(例如,大小)、相对观看位置、颜色、对比度、可读性指标和/或时间。下面提供了有关这些属性的进一步细节。本领域普通技术人员可以理解,内容元素和表面可以具有附加属性。
对于内容元素和表面,取向属性指示取向。取向值可以包括垂直、水平和/或特定角度(例如,水平为0度,垂直为90度,或介于0-90度之间的任何位置用于成角度的取向)。特定角度取向属性可以以度或辐射度(radiant)来指定/确定,或者可以相对于x轴或y轴来指定/确定。在一些实施例中,可以定义倾斜的表面以用于显示例如以倾斜角度流动的内容的水流,以显示不同的艺术作品。在一些实施例中,对于内容元素,可以将应用的导航栏定义为水平取向,但是以特定角度倾斜。
对于内容元素和表面,长宽比属性指示长宽比。可以将长宽比属性指定为例如4:3或16:9比例。可以基于内容元素和对应的一个或多个表面的长宽比属性来缩放内容元素。在一些实施例中,系统可以基于内容元素的其他属性(例如,尺寸和/或面积)来确定内容元素(例如,视频)的长宽比,并基于所确定的长宽比来缩放内容元素。在一些实施例中,系统可以基于表面的其他属性来确定表面的长宽比。
在长宽比属性内,内容元素的内容设计者可以使用特定特性来推荐特定长宽比用于维持或改变内容元素。在一个示例中,如果将该特定特性被设置为“维持”或类似的关键字或短语,则将维持内容元素的长宽比(即,不改变)。在一个示例中,如果将该特定属性设置为例如“自由”或类似的关键字或短语,则可以改变(例如,缩放或以其他方式)内容元素的长宽比,例如,以匹配内容元素所匹配到的一个或多个表面的长宽比。长宽比属性的默认值可以保持内容元素的原始长宽比,并且如果内容设计者为该内容元素的长宽比属性指定一些其他值或关键字,和/或如果系统确定应该重写长宽比属性以更好地将内容元素与一个或多个表面匹配,则可以重写长宽比属性的默认值。
对于内容元素和表面,尺寸属性指示尺寸。内容元素的尺寸属性可以指示内容元素的尺寸作为像素的函数(例如,800像素乘600像素)。表面的尺寸属性可以指示表面的尺寸作为米或任何其他测量单位的函数(例如,0.8米乘0.6米)。表面的尺寸属性可以指示表面的可测量范围,其中,可测量范围可以包括长度、宽度、深度和/或高度。对于内容元素,内容设计者可以指定尺寸属性,以建议要在其上显示内容元素的表面的某种形状和外部尺寸。
对于内容元素和表面,面积属性指示面积或大小。内容元素的面积属性可以指示内容元素的面积作为像素的函数(例如,480,000平方像素)。表面的面积属性可以指示表面的面积作为米或任何其他测量单位的函数的(例如,.48平方米)。对于表面,面积可以是用户感知的感知面积,也可以是绝对面积。可以通过增加绝对面积以及所显示的内容元素与用户的角度和距离来定义感知面积,使得当内容元素被显示为更靠近用户时,内容元素被感知为较小的尺寸,并且当内容元素距离用户更远时,可以相应地放大内容元素,以便用户仍将其感知为具有相同的特定尺寸,反之当内容元素距离用户更近时亦如此。绝对面积可以简单地由例如平方米来定义,而不管与环境中所显示的内容元素的距离如何。
对于内容元素和表面,相对观看位置属性涉及相对于用户的头部姿势矢量的位置。头部姿势矢量可以是用户佩戴的头戴式设备的位置和取向的组合。该位置可以是佩戴在用户头部上的设备的固定点,该固定点使用从环境和/或用户感测系统接收的信息在真实世界坐标系中进行追踪。可以通过在头戴式设备本地的三维设备坐标系与三维真实世界坐标系之间的关系来定义用户的头部姿势矢量的取向分量。可以通过三个正交方向来定义设备坐标系:接近用户通过设备的前视线的前向观看方向、设备的直立方向和设备的右方向。也可以选择其他参考方向。由环境和/或用户感测系统中的传感器获得的信息可以用于确定本地坐标系相对于真实世界坐标系的取向。
为了进一步说明设备坐标系,如果用户正佩戴设备并倒吊,则该用户和设备的直立方向实际上是指向地面的方向(例如,重力的向下方向)。然而,从用户的角度来看,设备的相对直立方向仍与用户的直立方向对齐;例如,如果用户倒吊时以典型的从上到下、从左到右的方式看书,则其他站立正常但未倒吊的用户会看到该用户与真实世界坐标系倒吊地持有该书,但相对于接近用户角度的本地设备坐标系而言,这本书取向为直立。
对于内容元素,相对观看位置属性可以指示相对于头部姿势矢量应该在什么位置处显示内容元素。对于表面,相对观看位置属性可以指示环境中的表面相对于用户的头部姿势矢量的位置。应当理解,头部姿势矢量的分量矢量,例如前向观看方向矢量,也可以用作用于确定表面的相对观看位置属性和/或用于确定内容元素的相对观看位置属性的标准。例如,内容设计者可以指示内容元素(诸如搜索栏)应始终相对于用户的头部姿势矢量与用户的左侧或右侧最多成30度,以及如果用户向左或右移动超过30度,则应该调整搜索栏,使得其仍位于用户的头部姿势矢量的左侧或右侧30度内。在一些实施例中,内容被即时调整。在一些实施例中,一旦已经满足时间阈值,就调整内容。例如,用户向左或向右移动30度以上,并且在经过5秒的时间阈值后应调整搜索栏。
可以指定相对观看角度以维持相对于用户的头部姿势矢量的角度或角度范围。例如,诸如视频的内容元素可能具有相对观看位置属性,该属性指示视频应显示在与用户的前向观看矢量近似正交的表面上。如果用户站在表面(诸如墙壁)的前面,直接朝前方观看,则相对于用户的前向观看矢量的墙壁相对观看位置属性可以满足内容元素的相对观看位置属性要求。但是,如果用户向下看地板,则墙壁的相对观看位置属性会改变,并且地板的相对观看位置属性会更好地满足内容元素的相对观看位置属性要求。在这种情况下,可以移动内容元素,使得其投影在地板上而不是墙壁上。在一些实施例中,相对观看位置属性可以是距用户的深度或距离。在一些实施例中,相对观看位置属性可以是相对于用户的当前观看位置的相对位置。
对于内容元素和表面,颜色属性指示颜色。对于内容元素,颜色属性可以指示一个或多个颜色、是否可以改变颜色、不透明度等。对于表面,颜色属性可以指示一个或多个颜色、颜色梯度等。颜色属性可以与内容元素的可读性和/或感知/如何在表面上感知内容元素相关联。在一些实施例中,内容设计者可以将内容元素的颜色定义为例如白色或浅色。在一些实施例中,内容设计者可能不希望系统改变内容元素(例如,公司徽标)的颜色。在这些实施例中,系统可以改变在其上显示内容元素的一个或多个表面的背景,以创建用于可读性的必要对比度。
对于内容元素和表面,对比度属性指示对比度。对于内容元素,对比度属性可以指示当前对比度、是否可以改变对比度、关于可以如何改变对比度的说明等。对于表面,对比度属性可以指示当前对比度。对比度偏好属性可以与内容元素的可读性和/或感知/将如何在表面上感知内容元素相关联。在一些实施例中,内容设计者可能希望相对于表面的背景以高对比度显示内容元素。例如,内容元素的版本可以在计算机、智能手机、平板电脑等的监控器上的网页中呈现为黑色背景上的白色文本。可以匹配白色墙壁以显示也是白色的文本内容元素。在一些实施例中,系统可以将文本内容元素改变为较深的颜色(例如,黑色)以提供满足对比度属性的对比度。
在一些实施例中,系统可以在不改变内容元素的情况下改变表面的背景颜色以提供满足颜色和/或对比度属性的颜色和/或对比度。该系统可以通过在(真实)表面的位置处创建虚拟表面来改变(真实)表面的背景颜色,其中,虚拟表面的颜色是期望的背景颜色。例如,如果徽标的颜色不应该改变,则系统可以通过改变表面的背景颜色来提供足够的对比度,以在保留徽标的同时提供满足颜色和/或对比度偏好属性的颜色对比度。
对于内容元素和表面,可读性指标属性可以指示可读性度量。对于内容元素,可读性指标属性指示应该为内容元素维持的可读性度量。对于内容元素,系统可以使用可读性指标属性来确定其他属性的优先级。例如,如果内容元素的可读性指标为“高”,则系统可以将这些属性的优先级设置为“高”。在一些示例中,即使内容元素在焦点上并且存在足够的对比度,系统也可以基于可读性指标属性来缩放内容元素,以确保维持可读性度量。在一些实施例中,如果特定内容元素的优先级被设置为“高”,则特定内容元素的高可读性指标属性值可以优先于或优于其他内容元素的其他显式属性。对于表面,可读性指标属性可以指示如果显示在表面上,用户将如何感知包含文本的内容元素。
对于纯VR环境,文本易读性是难以解决的问题。在AR环境中该问题变得更加复杂,因为真实世界颜色、亮度、照明、反射和其他能力会直接影响用户阅读由AR设备渲染的文本的能力。例如,由网页浏览器渲染的网络内容可以主要是文本驱动的。作为示例,一组JavaScript API(例如,通过当前的W3C Camera API的新扩展)可以为内容设计者提供当前的世界调色板以及用于字体和背景色的对比度替代调色板。一组JavaScript API可以为内容设计者提供独特的能力,以根据真实的世界颜色模式来调整网络内容颜色模式,以改善内容对比度和文本易读性(例如,可读性)。内容设计者可以通过设置字体颜色来使用此信息,以为网络内容提供更好的易读性。这些API可以用于实时追踪此信息,因此网页可以根据环境的光变化来调整其对比度和颜色模式。例如,图3A示出了至少通过调整将要以浅色模式显示的网络内容313的文本来将网络内容313调整为深色真实世界环境的光照和颜色条件,以相对于深色真实世界环境而言易读。如图3A所示,网络内容313中的文本具有浅色,而网络内容313中的背景具有深色。图3B示出了至少通过调整将要以深色模式显示的网络内容315的文本来将网络内容315调整为明亮的真实世界环境的光照和颜色条件,以相对于明亮的真实世界环境而言易读。如图3B所示,网络内容315中的文本具有深色,而网络内容313中的背景具有浅色。本领域普通技术人员可以理解,也可以调整其他因素,例如网络内容313的背景颜色(例如,较深的背景和较浅的文本)或网络内容315(例如,较浅的背景和较深的文本)以提供颜色的对比,使得至少部分地基于真实世界环境的光照和颜色条件,使文本更易读。在一些实施例中,与属性解析器或内容设计器相反,用户可以基于优选的外观来选择背景颜色或调整背景颜色,例如避免使用纯白色背景来显示文本,这样可能产生太多对比度或感觉到的伪影。例如,响应于用户输入,Javascript API可以调整内容的背景颜色,然后可以相应地调整各种关联的特征,诸如内容在用户视场中的文本颜色或其他内容在用户视场中的配色方案。
对于内容元素,时间属性指示应显示内容元素多长时间。时间属性可以是短的(例如,小于5秒)、中等的(例如,在5秒与30秒之间)、长的(例如,大于30秒)。在一些实施例中,时间属性可以是无限的。如果时间属性是无限的,则内容元素可以保留直到被去除和/或加载另一内容元素。在一些实施例中,时间属性可以是输入的函数。在一个示例中,如果内容元素是文章,则时间属性可以是输入的函数,该输入指示用户已经到达文章的末尾并在那里停留了阈值时间段。在一个示例中,如果内容元素是视频,则时间属性可以是输入的函数,该输入指示用户已经到达视频的末尾。
对于表面,时间属性指示表面将可用多长时间。时间属性可以是短的(例如,小于5秒)、中等的(例如,在5秒与30秒之间)、长的(例如,大于30秒)。在一些实施例中,时间属性可以是无限的。在一些实施例中,时间属性可以是例如来自传感器162的传感器输入的函数。来自传感器162(例如,来自IMU、加速度计、陀螺仪等)的传感器输入可以用于相对于设备的视场预测表面的可用性。在一个示例中,如果用户正在行走,则用户附近的表面可能具有短的时间属性,距离用户稍远的表面可能具有中等的时间属性,而距离远的表面可能具有长的时间属性。在一个示例中,如果用户闲坐在沙发上,则用户前方的墙壁可以具有无限时间属性,直到从传感器162接收到大于阈值的数据的改变为止,之后该用户前方的墙壁的时间属性可能从无限改变为另一个值。
内容元素属性
内容元素可以具有特定于内容元素的属性,例如,优先级、表面类型、位置类型、边缘、内容类型和/或焦点属性。下面提供了有关这些属性的进一步细节。本领域普通技术人员可以理解,内容元素可以具有附加属性。
优先级属性指示内容元素(例如,视频、图片或文本)的优先级值。优先级值可以包括高、中或低优先级,例如,从0到100的数值范围和/或必需或不需要的指示符。在一些实施例中,可以为内容元素本身指定优先级值。在一些实施例中,可以为特定属性指定优先级值。例如,可以将内容元素的可读性指标属性设置为高,指示内容设计者已将重点放在内容元素的可读性上。
表面类型的属性或“表面类型”属性指示内容元素应匹配的表面的类型。表面类型属性可以基于语义,诸如某些内容元素是否应放置在某些位置和/或某些表面上。在一些示例中,内容设计者可以建议不在窗口或绘画上显示特定的内容元素。在一些示例中,内容设计者可以建议总是将特定内容元素基本上显示在用户前面的最大垂直表面上。
位置类型属性指示内容元素的位置。位置类型属性可以是动态的或固定的。动态位置类型可以假定例如内容元素被固定在用户的手上,使得当用户的手移动时,内容元素就会与用户的手一起动态移动。固定位置类型假定例如内容元素相对于表面、环境或虚拟世界中相对于用户的身体或头部/视图位置的特定位置是固定的,其示例如下详细描述。
术语“固定的”也可以有不同级别,例如:(a)世界固定的、(b)对象/表面固定的、(c)身体固定的、和(d)头部固定的。对于(a)世界固定的,内容元素相对于世界是固定的。例如,如果用户在世界范围中走来走去,则内容元素不会移动,而是固定在相对于世界的位置上。对于(b)对象/表面固定的,内容元素被固定于对象或表面,使得如果对象或表面移动,则内容元素随对象或表面移动。例如,内容元素可以被固定到用户所握持的记事本上。在这种情况下,内容是固定于记事本表面的对象,并相应地随记事本一起移动。对于(c)身体固定的,内容元素相对于用户的身体是固定的。如果用户移动其身体,则内容元素将随用户移动以保持相对于用户身体的固定位置。对于(d)头部固定的,内容元素相对于用户的头部或姿势是固定的。如果用户旋转其头部,则内容元素将相对于用户的头部运动而移动。同样,如果用户走路,则内容元素也会相对于用户的头部移动。
边缘(或填充)属性指示内容元素周围的边缘。边缘属性是一个布局属性,它描述内容元素相对于其他内容元素的放置。例如,边缘属性表示从内容元素边界到另一个内容元素的最近允许边界的距离。在一些实施例中,该距离是基于x、y、z坐标的边缘,并且可以从内容元素边界的顶点或其他指定位置来测量;在一些实施例中,该距离是基于极坐标的边缘,并且可以从内容元素的中心或其他指定位置(诸如内容元素的顶点)来测量。在一些实施例中,边缘属性定义了从内容元素到内容元素内部的实际内容的距离。在一些实施例中,诸如对于分解的内容元素,边缘属性表示相对于分解的内容元素所匹配的表面的边界要维持多大边缘,使得该边缘充当内容元素和匹配的表面之间的偏移。在一些实施例中,可以从内容元素本身中提取边缘属性。
内容类型属性或“内容类型”属性指示内容元素的类型。内容类型可以包括对对应媒体的引用和/或链接。例如,内容类型属性可以将内容元素指定为图像、视频、音乐文件、文本文件、视频图像、3D图像、3D模型、容器内容(例如,可以是包装在容器内的任何内容)、广告和/或内容设计者定义的渲染画布(例如,2D画布或3D画布)。内容设计者定义的渲染画布可以包括例如游戏、渲染、地图、数据可视化等。广告内容类型可以包括定义当用户聚焦或位于特定内容元素附近声音或广告应呈现给用户的属性。广告可以是:(a)声音,诸如叮当声,(b)视觉,诸如视频/图像/文本,和/或(c)触觉指示符,诸如用户控制器或耳机中的振动,等等。
焦点属性指示内容元素是否应处于焦点。在一些实施例中,焦点可以是从用户到在其上显示内容元素的表面的距离的函数。如果将内容元素的焦点属性设置为始终处于焦点状态,则无论用户距内容元素多远,系统都会使内容元素处于焦点状态。如果未指定内容元素的焦点属性,则当用户距离内容元素一定距离时,系统可能会使内容处于离开焦点状态。这可以取决于内容元素的其他属性,例如,尺寸属性、面积属性、相对观看位置属性等。
表面属性
表面可以具有特定于表面的属性,例如,表面轮廓、纹理和/或被占用的属性。下面提供了有关这些属性的进一步细节。本领域普通技术人员可以理解,表面可以具有附加属性。
在一些实施例中,环境解析器168可以确定表面轮廓属性(和相关联属性),诸如一个和/或所有表面的表面法线矢量、取向矢量和/或直立矢量。在3D情况下,点P处的表面的表面法线或仅仅法线是垂直于点P处的表面的切平面的矢量。术语“法线”也可以用作形容词;法线于平面的线、到力的法线分量、法线矢量等。
上文讨论的围绕用户的环境表面的表面法线矢量和头部姿势矢量的至少一个分量对于匹配模块142可能是重要的,因为尽管表面的某些属性(例如,尺寸、纹理、长宽比等)对于显示某些内容元素(例如,视频、三维模型、文本等)可能是理想的,此类表面相对于由用户头部姿势矢量的至少一个分量矢量近似的用户视线的对应表面法线的定位可能较差。通过将表面法线矢量与用户的头部姿势矢量进行比较,可能另外适合于所显示的内容的表面可能会被取消资格或过滤。
例如,表面的表面法线矢量可以在与用户的头部姿势矢量基本相同的方向上。这意味着用户和表面面对的方向相同,而不是彼此面对。例如,如果用户的前向朝北,则具有指向北的法向矢量的表面要么面对用户的背面,要么用户面对该表面的背面。如果用户由于该表面背对用户而看不见该表面,则该特定表面将不是用于显示内容的最佳表面,尽管可能存在该表面的另外有益属性值。
设备的前向观看矢量(近似于用户的前向观看方向)与表面法线矢量之间的比较可以提供数值。例如,点积函数可用于比较两个矢量并确定描述两个矢量之间的相对角度的数值关系。这样的计算可以得到介于1和-1之间的数字,其中,更负的值对应于更有利于观看的相对角度,因为该表面接近正交于用户的前向观看方向,使得用户能够舒适地看到放置在该表面上的虚拟内容。因此,基于识别出的表面法线矢量,用于良好表面选择的特征可能与用户的头部姿势矢量或其分量有关,使得应将该内容显示在面向用户的前向观看矢量的表面上。应当理解,可以对头部姿势矢量分量和表面法线分量之间的可接受关系施加约束。例如,可以选择将与用户的前向观看矢量产生负点积的所有表面视为内容显示。根据内容,可以考虑影响可接受范围的内容提供者或算法或用户偏好。在视频需要基本垂直于用户的前进方向被显示的情况下,可以允许较小范围的点积输出。本领域技术人员将理解,取决于其他表面属性、用户偏好、内容属性等,许多设计选项是可能的。
在一些实施例中,根据尺寸和位置以及头部姿势的视角,表面可能是非常合适的,但是该表面可能不是用于选择的很好选项,因为该表面可能包括诸如纹理属性和/或被占用属性的属性。纹理属性可以包括材料和/或设计,该材料和/或设计可以将用于呈现的简单外观的清洁且干净表面改变为不理想的用于呈现的杂乱表面的。例如,砖墙可能具有理想的用于显示内容的大空白面积。但是,由于砖墙中的红色堆叠砖块,系统可能会认为砖墙对于将内容直接显示在其上是不令人希望的。这是因为表面的纹理在砖块和灰浆之间具有粗糙度变化,并且具有非中性红色,这可能导致内容的对比度增强。另一个不希望有的纹理示例可能包括具有壁纸设计的表面,不仅用于背景设计图案和颜色,而且还包括诸如气泡或不均匀涂覆的缺陷,从而产生表面粗糙度变化。在一些实施例中,壁纸设计可以包括许多图案和/或颜色,以至于直接在壁纸上显示内容可能无法以有利的视图显示内容。所占用的属性可以指示该表面当前被另一内容所占用,从而在具有指示表面被占用的值的特定表面上显示附加内容可能会导致新内容未在占用内容之上被显示,反之亦然。在一些实施例中,被占用属性表示存在小的真实世界缺陷或占用表面的对象。这样的占用真实世界对象可以包括对于传感器套件162内的深度传感器而言可能是不可辨别的但是对于传感器162内的相机而言是可察觉的可忽略表面区域的项目(诸如裂缝或钉子)。其他占用真实世界对象可以包括从具有低纹理变化的墙壁上悬挂的具有设置在其上的表面的图片或海报,并且某些传感器162不能将其区分为与表面不同,但是162的相机可以识别并且被占用属性相应地更新表面,以排除系统做出表面是“空画布”的确定。
在一些实施例中,内容可以被显示在虚拟表面上,该虚拟表面的相对位置与(真实)表面有关。例如,如果纹理属性指示表面不是简单/干净的和/或被占用属性指示表面被占用,则内容可以显示在(真实)表面前面的虚拟表面上,例如,在边缘属性公差范围内。在一些实施例中,内容元素的边缘属性是表面的纹理属性和/或被占用属性的函数。
流程
将内容元素与表面匹配(高级)
图4是示出根据一些实施例的用于将内容元素与表面进行匹配的方法的流程图。该方法包括:在410处接收内容;在420处识别内容中的内容元素;在430处确定表面;在440处在表面中匹配内容元素;以及在450处将内容元素作为虚拟内容渲染到匹配的表面上。解析器115接收410内容110。解析器115识别420内容110中的内容元素。解析器115可以识别/确定并存储每一个内容元素的属性。环境解析器168确定430环境中的表面。环境解析器168可以确定并存储每一个表面的属性。在一些实施例中,环境解析器168连续确定430环境中的表面。在一些实施例中,当解析器115接收410内容110和/或识别420内容110中的内容元素时,环境解析器168确定430环境中的表面。匹配模块142基于内容元素的属性和表面的属性将内容元素匹配440到表面。渲染模块146将内容元素渲染450到其匹配表面。存储模块152注册表面以备将来使用,诸如通过用户指定以便将来将内容元素放置在该表面上。在一些实施例中,存储模块152可以在感知框架166中。
识别内容中的内容元素
图5是示出根据一些实施例的用于识别内容中的内容元素的方法的流程图。图5是根据一些实施例的公开图4的420处的识别内容中的元素的详细流程。该方法包括在510处识别内容内的内容元素,类似于在图4的420处识别内容中的元素。该方法进行到识别/确定属性的下一步骤520。例如,可以从与内容放置有关的标签来识别/确定属性。例如,内容设计者在设计和配置内容时,可以使用属性(如上所述)来定义在何处以及如何显示内容元素。属性可以关于内容元素相对于彼此在特定位置中的放置。在一些实施例中,识别/确定属性的步骤520可以包括推断属性。例如,可以基于内容元素相对于彼此在内容内的放置来确定或推断每一个内容元素的属性。在530处,执行从每一个内容元素提取提示/标签。提示或标签可以是由内容的内容设计者提供的格式化提示或格式化标签。在540处执行查找/搜索内容元素的替代显示形式。可以为在特定观看设备上显示的内容元素指定某些格式化规则。例如,可以为网页上的图像指定某些格式化规则。系统可以访问替代显示形式。在550处执行存储所识别的内容元素。该方法可以将所识别的元素存储到非瞬时性存储介质中,以在合成过程140中使用以将内容元素与表面进行匹配。在一些实施例中,内容元素可以存储在瞬时性存储介质中。
确定环境中的表面
图6是示出根据一些实施例的用于从用户的环境确定表面的方法的流程图。图6是公开图4的在430处确定表面的示例详细流程。图6以610处确定表面开始。在610处确定表面可以包括从传感器162的深度传感器收集环境的深度信息并执行重构和/或表面分析。在一些实施例中,传感器162提供点的图,并且系统100在点之间重构一系列连接的顶点以创建代表环境的虚拟网格。在一些实施例中,执行平面提取或分析以确定指示共同表面或解释表面可能是什么(例如,墙壁,天花板等)的网格特性。该方法前进到确定用户的姿势的下一步骤620,该步骤可以包括确定来自传感器162的头部姿势矢量。在一些实施例中,传感器162收集惯性测量单元(IMU)数据以确定用户上的设备的旋转;在一些实施例中,传感器162收集相机图像以确定用户上的设备相对于真实世界的位置。在一些实施例中,从IMU和相机图像数据之一或两者导出头部姿势矢量。在620处确定用户的姿势是识别表面的重要步骤,因为用户的姿势将为用户提供相对于表面的视角。在630处,该方法确定表面的属性。每一个表面都被对应的属性标记并分类。当匹配内容元素和表面时,将使用此信息。在一些实施例中,传感器162从图1A和图1B向CVPU 164提供原始数据用于处理,并且CVPU 164将处理后的数据提供给感知框架166以为环境解析器168准备数据。环境解析器168解析来自感知框架166的环境数据,以确定环境中的表面和对应的属性。在640处,该方法将表面的清单存储到非瞬时性存储介质中,以供合成过程/匹配/映射例程用来将提取的元素匹配/映射到特定表面。非瞬时性存储介质可以包括数据存储设备。所确定的表面可以被存储在特定的表中,诸如下面描述的图15中公开的表。在一些实施例中,所识别的表面可以被存储在瞬时存储介质中。在一些实施例中,在640处存储包括将表面指定为用于内容元素的未来匹配的偏好表面。
将内容元素与表面进行匹配(特定)
图7A-7B是示出用于将内容元素与表面进行匹配的各种方法的流程图。
图7A描绘了示出根据一些实施例的用于将内容元素与表面进行匹配的方法的流程图。图7A是公开图4的在440处将内容元素与表面进行匹配的详细流程。
在710处,该方法确定所识别的内容元素是否包含由内容设计者提供的提示。内容设计者可以提供有关在何处最佳显示内容元素的提示。
在一些实施例中,这可以通过使用现有标签元素(例如,HTML标签元素)来进一步定义如果3D环境可用则如何显示内容元素来实现。作为另一个示例,内容设计者可以提供提示,该提示指出3D图像而不是2D图像可用作用于特定内容元素的资源。例如,在2D图像的情况下,除了提供用于识别内容元素的资源的基本标签之外,内容设计者还可以提供其他不常用的标签来识别包括与2D图像相对应的3D图像的资源,并且另外,如果使用3D图像,则提供提示以将其突出显示在用户视图的前面。在一些实施例中,在渲染内容的显示设备可能不具有利用3D图像的3D显示功能的情况下,内容设计者可以向用于2D图像的资源提供该附加“提示”。
在720处,该方法确定是使用内容设计者提供的提示还是使用预定义的规则集来将内容元素匹配/映射到表面。在一些实施例中,在内容设计者没有提供针对特定内容元素的提示的情况下,该系统和方法可以使用预定义的规则集来确定将特定内容元素匹配/映射到表面的最佳方式。在一些实施例中,即使当可能存在由内容设计者提供的针对内容元素的提示时,该系统和方法也可以确定最好使用预定义的规则集将内容元素匹配/映射到表面。例如,如果内容提供者提供了在水平表面上显示视频内容的提示,但是系统设置了预定义规则以在垂直表面上显示视频内容,则该预定义规则可能会覆盖该提示。在一些实施例中,该系统和方法可以确定由内容设计者提供的提示是足够的,并因此使用这些提示来将内容元素匹配/映射到表面。最后,确定是使用内容设计者提供的提示还是使用预定义的规则将内容元素匹配/映射到表面是系统的最终决定。
在730处,如果系统利用由内容设计者提供的提示,则该系统和方法分析提示并至少部分地基于提示搜索包括识别出的可用于显示特定内容元素的周围表面的逻辑结构。
在740处,系统和方法运行最适合算法,以基于所提供的提示为特定内容元素选择最适合表面。例如,最适合算法可能会提示特定内容元素以建议直接观看,并尝试识别相对于用户和/或设备的当前视场位于前面和中心的表面。
在750处,系统和方法存储具有内容元素与表面的匹配的匹配结果。该表可以存储在非瞬时性存储介质中,以供显示算法用来将内容元素显示在其分别匹配/映射的表面上。
图7B描绘了示出根据一些实施例的用于将来自内容元素的元素匹配/映射到表面的方法的流程图。图7B是示出了参考图1A和图1B的各种元素,如在图4的步骤440处公开,将逻辑结构中存储的内容元素与逻辑结构中存储的表面进行匹配/映射的流程。
在715处,基于相关联的优先级对由图1A和图1B的内容结构化过程120产生的存储在逻辑结构中的内容元素进行排序。在一些实施例中,内容设计者可以为每一个内容元素定义优先级属性。对于内容设计者而言,为每一个内容元素设置优先级以确保某些内容元素在环境内突出显示可能是有益的。在一些实施例中,例如如果内容设计者未定义内容元素的优先级,则内容结构化过程120可以确定内容元素的优先级。在一些实施例中,如果没有内容元素不具有开发者提供的优先级属性,则系统将使表面取向的点积关系成为默认优先级属性。
在725处,将内容元素的属性与表面的属性进行比较,以识别是否存在匹配内容元素的表面并确定最佳匹配表面。例如,从具有最高相关联优先级的内容元素开始(例如,如下面相对于图14A进一步详细描述的“主”或父元素ID),系统可以将内容元素的属性与表面的属性进行比较,以识别最佳匹配表面,然后继续处理具有第二高相关联优先级的内容元素,依此类推,从而连续地遍历包括内容元素的逻辑结构。
在735处,基于内容元素的属性与对应的最佳匹配表面的属性匹配的程度来计算匹配分数。本领域普通技术人员可以理解,可以使用许多不同的评分算法和模型来计算匹配分数。例如,在一些实施例中,分数是内容元素的属性值与表面的属性值的简单求和。图8示出了各种匹配得分方法。
图8描绘了具有可以在逻辑结构中的属性的三个假设的内容元素和三个假设的表面,其在下面图14A-14B中进一步详细描述。对于表面选择,元素A可能更偏向于点积取向表面关系而不是纹理或颜色;元素B可能偏向于平滑的纹理,但是内容是多色的,对比度约束较少,并且没有优先考虑颜色;元素C可以是虚拟绘画,并且可能更偏向于颜色属性而不是其他属性。本领域的技术人员将理解,内容元素结构中的值可以反映内容本身(例如,元素C的颜色权重高),或反映所需的表面属性(例如,元素B偏向于要渲染的更平滑的表面)。此外,尽管被描绘为数值,但是其他属性值当然也是可能的,诸如色域中的显式颜色或房间中/对用户的精确尺寸或位置。
在745处,识别具有最高匹配分数的表面。返回图8所示的求和示例,元素A在表面A和C上得分最高,元素B在表面B上得分最高,元素C在表面C上得分最高。在这样的说明性示例中,系统可以渲染元素A到表面A,元素B到表面B,元素C到表面C。元素A在表面A和C上的得分相同,但是元素C在表面C上的最高得分促使元素A分配到表面A。换句话说,系统可以迭代匹配分数的第二求和以确定产生最高总计匹配分数的内容元素和表面的组合。应该注意的是,图8中点积的样本数字反映的是属性值而不是客观的测量值;例如,-1点积结果是良好的数学关系,但为避免将负数引入方程中,表面属性将-1点积关系的得分记为表面属性的正1。
在一些实施例中,或者通过在评估表面列表时标记具有最高匹配分数的表面并取消标记先前标记的表面,或者通过追踪最高匹配分数和到具有最高匹配分数的表面的链接,或者通过追踪与表面匹配的所有内容元素的最高匹配分数,来在745处识别最高分数。在一个实施例中,一旦识别出具有足够匹配分数的表面,就可以将其从表面列表中移除,从而将其排除在进一步处理之外。在一个实施例中,一旦识别出具有最高匹配分数的表面,它就可以保留在表面列表中,并具有它已经与内容元素匹配的指示。在该实施例中,几个表面可以与单个内容元素匹配,并且可以存储每一个的匹配分数。
在一些实施例中,当评估周围表面列表中的每一个表面时,一个接一个地计算匹配分数,确定匹配(例如,表面支持的内容元素的所列属性的80%或更大构成匹配),并且如果这样,则将各个表面标记为最佳匹配,然后继续到下一个表面,并且如果下一个表面更匹配,则将该表面标记为最佳匹配。一旦所有表面针对内容元素都被评估,仍然标记为最佳匹配的表面就是给定表面的最佳匹配。在一些实施例中,最高匹配分数可能需要大于预定义阈值才有资格成为良好匹配。例如,如果确定最佳匹配表面仅为40%匹配(无论是支持的属性数量还是目标匹配分数的百分比),并且才有资格成为良好匹配的阈值是高于75%,则最好是创建虚拟对象以在其上显示内容元素,而不是依赖于来自用户的环境的表面。当用户的环境是例如海滩、海洋和天空之外没有可识别表面的海滩时,尤其如此。本领域的普通技术人员可以理解,可以为该过程定义许多不同的匹配/映射算法,并且这仅仅是许多不同类型的算法的一个示例。
在750处,如上所述存储匹配/映射结果。在一个实施例中,如果在745处从表面列表中移除了表面,则所存储的匹配可以被认为是最终的。在一个实施例中,如果在745处表面保留在表面列表中并且几个表面匹配到单个内容元素,则可以在冲突的内容元素和表面上运行算法以消除冲突的歧义并且具有一对一匹配而不是一对多匹配或多对一匹配。如果高优先级内容元素与表面不匹配,则高优先级内容元素可以与虚拟表面匹配/映射。如果低优先级内容元素与表面不匹配,则渲染模块146可以选择不渲染低优先级内容元素。匹配结果可以被存储在特定的表中,诸如下面描述的图18中公开的表。
返回参考图7A,在760处,假设确定使用预定义规则是进行的方法,则该方法查询包含内容元素与表面的匹配规则的数据库,并确定特定内容元素,应考虑将内容元素与其进行匹配的表面的类型。在770处,预定义的规则集可以运行最适合算法以从可用候选表面中选择一个或多个表面,其最适合于内容元素。至少部分地基于最适合算法,确定内容元素应匹配/映射到特定表面,由于所有候选表面中该特定表面是其属性与内容元素的属性最匹配的表面。一旦确定了内容元素和表面的匹配,则在750处,该方法如上所述将内容元素到表面的匹配结果存储到非瞬时性存储介质中的表中。
在一些实施例中,用户可以覆盖匹配的表面。例如,即使当通过匹配算法确定表面是内容的最佳表面时,用户也可以选择何处覆盖该表面以显示内容。在一些实施例中,用户可以从系统提供的一个或多个表面选项中选择表面,其中,该一个或多个表面选项可以包括小于最佳表面的表面。该系统可以向用户呈现一个或多个显示表面选项,其中,显示表面选项可以包括用户的物理环境内的物理表面、用于在用户的物理环境中显示内容的虚拟表面、和/或虚拟屏幕。在一些实施例中,用户可以选择存储的屏幕(例如,虚拟屏幕)以显示内容。例如,对于用户当前所处的特定物理环境,用户可能偏好在某些类型的表面(例如,具有默认屏幕尺寸、距用户的位置等的存储的屏幕)上显示某些类型的内容(例如,视频)。存储的屏幕可以是历史上频繁使用的表面,或者存储的屏幕可以是在用户的资料或偏好设置中识别的用于显示某些类型的内容的存储屏幕。因此,覆盖一个或多个元素在一个或多个表面上的显示可以至少部分地基于历史上频繁使用的表面和/或存储的屏幕。
图7C示出了用户可以将内容780从第一表面移动到用户可用的任何表面上的示例。例如,用户可以能够将内容780从第一表面移动到第二表面(即,垂直墙壁795)上。垂直墙壁795可以具有工作区域784。垂直墙壁795的工作区域784可以由例如环境解析器168确定。工作区域784可以具有例如不受其他内容/对象阻挡的可以在其中显示内容780的显示表面782。显示表面782可以由例如环境解析器168确定。在图7C所示的示例中,工作区域784包括相框和灯,其可以使工作区域784的显示表面小于如显示表面782所示的整个工作区域784。内容向垂直墙壁795的移动(例如,移动786a-786c)可能不一定是内容780在显示表面782、工作区域784的中心和/或到垂直墙壁795的完美放置。相反,内容可以基于用户的手势在垂直墙壁795的外围工作空间的至少一部分内(例如,工作区域784和/或显示表面782)移动,以将内容移动到垂直墙壁。只要内容780落在垂直墙壁795、工作区域784和/或显示表面782内,系统就会在显示表面782中显示内容780。
在一些实施例中,外围工作空间是包围目标显示表面(例如,显示表面782)的抽象边界。在一些实施例中,用户的手势可以是通过图腾/控制器790的选择,以选择第一表面处的内容780并移动内容780,使得至少一部分在显示表面782的外围工作空间内。然后,内容780可以与显示表面782的轮廓和取向对齐。选择虚拟内容在美国专利申请15/296,869中进一步描述,其要求2015年10月20日的优先权,标题为“SELECTING VIRTUAL OBJECTS IN ATHREE-DIMENSIONAL SPACE(在三维空间中选择虚拟对象)”,并且将内容与所选表面对齐在美国专利申请15/673,135中进一步描述,其要求2016年8月11日的优先权,标题为“AUTOMATIC PLACEMENT OF A VIRTUAL OBJECT IN A THREE-DIMENSIONAL SPACE(在三维空间中自动放置虚拟对象)”。
在一些实施例中,用户的手势可以是手部姿势,其可以包括以下指示:(a)从第一表面选择内容,(b)将内容从第一表面移动到第二表面,以及(c)将内容放置在第二表面处。在一些实施例中,内容从第一表面移动到第二表面是到第二表面的特定部分。在一些实施例中,当内容放置在第二表面处时适合/填充(例如,缩放以适合、填充等)第二表面。在一些实施例中,放置在第二表面处的内容保持在第一表面处时的大小。在这些实施例中,第二表面可以比第一表面更大和/或第二表面可以比显示内容所需的尺寸更大。AR系统可以在第二表面处在用户指示以显示内容的位置处或附近显示内容。换句话说,内容从第一表面到第二表面的移动可能不需要系统将内容完美地放置到第二表面的整个可工作空间中。内容可能仅必须至少终止于至少用户可见的第二表面的第一外围区域。
环境驱动的内容
迄今为止,已经公开了内容驱动在环境中何处显示内容元素的内容。换句话说,用户可能正在选择要显示到用户的环境中的各种内容(例如,从网页中拉取的内容)。然而,在一些实施例中,环境可以至少部分地基于用户的环境和/或环境中的表面来驱动向用户显示什么内容。例如,环境解析器168基于来自传感器162的数据不断评估表面的列表。因为当用户从一个环境移动到另一环境或在环境内四处移动时,环境解析器168不断评估表面的列表,新的/附加的表面可以变得可用,其可以适合于显示某些类型的内容(例如,被推送的内容),该内容可以被推送到用户环境中而用户不必在内容上进行搜索或选择并且可能不是源自网页。例如,某些类型的推送内容可以包括:(a)来自各种应用的通知,诸如股票通知、新闻摘要,(b)优先内容,诸如来自社交媒体应用的更新和通知、电子邮件更新等,和/或(c)以广泛的目标群体和/或特定的目标群体为目标的广告,等等。每一个这些类型的推送内容都可以具有相关联的属性,例如大小、尺寸、取向等,以便以最有效的形式显示广告。取决于环境,某些表面可能会提供机会显示这些环境驱动的内容(例如,推送内容)。在一些实施例中,拉取的内容可以首先匹配/映射到环境中的表面,并且推送的内容可以与环境中尚未将拉取内容匹配/映射到其上的任何表面匹配/映射。
以广告作为推送内容类型的示例,考虑用户处于环境中的场景,其中,环境中可能存在许多具有各种尺寸和取向的表面。某些广告可能最好在具有某些尺寸和取向的表面上以及在特定位置(例如,诸如在家、在工作场所、在棒球场、在杂货店等的地理位置,以及诸如在环境中某些实物/产品前面的项目位置)中显示。在这些情况下,系统可以搜索推送内容的数据库,以确定哪些推送内容与环境的表面最匹配。如果找到匹配,则内容可以显示在特定位置的匹配表面上。在一些实施例中,系统向广告服务器提供表面列表,该广告服务器使用内置逻辑来确定推送的内容。
与传统的在线广告不同,传统的在线广告依赖于用户正在观看的网页的布局来确定网页窗口上的哪些部分具有可用于显示在线广告的可用空间,本公开包括环境解析器168,环境解析器168识别环境内的表面,并确定某些推送内容(例如,广告)的候选表面。
在一些实施例中,用户可以规定何时以及在何处可以显示某些类型的推送内容的偏好属性。例如,用户可以指示将来自某些人或组织的具有高优先级内容的偏好属性突出显示在用户前面的表面上,而将其他类型的推送内容(诸如广告)显示在用户的主要焦点视图区域外围的较小表面上,其中,用户的主要焦点视图区域是通常朝向用户正在观看的方向的视图区域,而不是用户的主要焦点视图区域一侧的外围视图。在一些实施例中,用户选择的高优先级内容元素(例如,被拉取的内容,而不是推送的内容)被显示在用户的环境中最突出的表面上(例如,在用户的焦点观看区域内),而用户焦点观看区域外围的其他不匹配/未映射表面可能可用于推送内容。
在一些实施例中,可以将世界位置环境API提供给内容设计者/网络开发者/广告商以创建位置感知内容。世界位置环境API可以提供一组功能,该组功能描述特定于用户当前所在的特定位置的本地环境。世界位置环境API可以提供位置环境信息,该位置环境信息可以包括特定类型的房间(例如,客厅、健身房、办公室、厨房)的识别、用户从各个位置执行的特定查询(例如,用户倾向于从客厅搜索电影、从健身房搜索音乐、从厨房搜索食谱等)、以及用户在各个位置使用的特定服务和应用(例如,从办公室使用Mail客户端、从客厅使用Netflix)。内容设计者可以将关于世界位置环境的某些动作关联为内容元素的属性。
内容提供商可以将该信息与搜索历史、对象识别器和应用数据一起使用以提供位置特定的内容。例如,如果用户在厨房中进行搜索,则广告和搜索结果将主要与食品相关,因为搜索引擎将知道用户正在从用户的厨房进行搜索。世界位置环境API提供的信息可以提供每个房间或每个位置的准确信息,这使其比地理位置更准确,并且环境感知比地理围栏更高。图9是如何使用世界位置环境API来提供位置特定环境的示例。作为示例,用户的厨房905可以包括显示在用户的当前物理位置内的某些表面上的位置特定内容915a、915b和/或915c。内容915a可以是特定餐食的食谱,内容915b可以是餐食的广告,和/或915c可以是在厨房准备的餐食的建议。
图10是用于将内容推送到VR/AR系统的用户的方法1000的示例。在1010,确定一个或多个表面及其属性。可以从环境结构化过程160确定一个或多个表面,其中,环境解析器168解析环境数据以确定环境中的表面,并且在逻辑结构中组织和存储表面。用户的环境可以携带表面的位置属性,诸如用户的个人住所、住所内的特定房间、用户的工作位置等。一个或多个表面可以在用户的焦点观看区域的外围。在一些实施例中,取决于用户可能希望被通知的推送内容(例如,来自权威实体的紧急通知、列入白名单的应用/通知等),一个或多个表面可以在用户的焦点观看区域内。表面的尺寸可以是2D和/或3D尺寸。
在1020,接收与一个或多个表面匹配的一个或多个内容元素。在一些实施例中,基于至少一个表面属性接收内容元素或单个内容元素。例如,“厨房”的位置属性可以提示要推送与食物项目相对应的内容元素。在另一示例中,用户可能正在观看第一表面上的第一内容元素,并且该内容元素具有仅在具有某些表面属性的表面可用时才在第二表面上显示的子内容元素。
在1030,基于内容元素的属性与表面的属性匹配的程度来计算匹配分数。在一些实施例中,得分可以基于1-100的等级,其中,得分100是最高得分而得分1是最低得分。本领域普通技术人员可以理解,可以使用许多不同的评分算法和模型来计算匹配分数。在其中内容元素包括通知的一些实施例中,基于属性计算的匹配分数可以指示需要被通知的内容元素的优先级,而不是与特定表面的匹配。例如,当内容元素是来自社交媒体应用的通知时,分数可以基于用户在用户的社交媒体帐户中定义的通知的优先级,而不是基于社交媒体内容的属性和表面的属性的匹配分数。
在一些实施例中,当用户在他们的环境中相对静止时,表面的列表可能不会改变太多。但是,当用户移动时,取决于用户行进的速度,表面的列表可能会迅速改变。在动态情况下,如果确定用户的静止时间可能不够长而无法完全观看内容,则可以计算出较低的匹配分数。用户是否有足够的时间观看整个内容的确定可以是由内容设计者定义的属性。
在1040,选择具有最高匹配分数的内容元素。当存在想要显示给用户的竞争内容元素(例如,广告)时,可能需要对竞争内容进行分类并挑选偏好内容元素。在此,作为示例,选择偏好内容元素的一个选项是使竞争基于内容元素的属性与表面的属性匹配的程度。作为另一示例,可以至少部分地基于内容元素提供商可能愿意为显示推送的内容而支付的金额来选择获胜者。在一些实施例中,可以基于内容类型(例如,3D内容或来自社交媒体联系人的通知)来选择偏好内容元素。
在1050,可以将偏好内容与对应表面的匹配/映射存储在高速缓存存储器或永久存储器中。匹配的存储可能很重要,因为在用户移动和环境改变的情况下,能够在用户返回时保持用户环境的某些历史记录可能很重要。可以将匹配/映射存储在诸如图18中公开的表之类的表中。在1060,将内容渲染在对应的表面上。匹配可以是内容元素与表面的一对一或一对多匹配/映射。
已经公开了一种用于解构内容以在环境中显示的系统和方法。另外,该系统和方法还可以将内容推送到虚拟现实或增强现实系统的用户的表面。
示例
网页
参考图11,环境1100表示用于实现本文所描述的过程的物理环境和系统(例如,将来自网页中的内容的内容元素匹配以显示在用户的物理环境1105中的表面上)。环境1100的代表物理环境和系统包括由用户1108通过头戴式系统1160所观察到的用户的物理环境1105。环境1100的代表系统还包括经由可操作地耦合到网络1120的网页浏览器1110访问内容(例如,网页)。在一些实施例中,可以经由诸如视频流应用的应用(未示出)访问内容,其中,视频流可以是被访问的内容。在一些实施例中,视频流应用可以是体育组织,并且正在流传输的内容可以是实际的现场比赛、摘要、简明新闻/重点、技术统计、实况报道、球队数据、球员统计、相关视频、新闻源、产品信息等。
网络1120可以是互联网、内部网络、私有云网络、公共云网络等。网页浏览器1110还经由网络1120可操作地耦合到处理器1170。尽管示出了处理器1170作为与头戴式系统1160分离的隔离组件,在替代实施例中,处理器1170可以与头戴式系统1160的一个或多个组件集成,和/或可以集成到环境1100内的其他系统组件,例如集成到网络1120以访问计算网络1125和存储设备1130。处理器1170可以配置有用于接收和处理信息的软件1150,例如从头戴式系统1160、本地存储设备1140、网页浏览器1110、计算网络1125和存储设备1130接收视频、音频和内容。软件1150可以经由网络1120与计算网络1125和存储设备1130通信。软件1150可以安装在处理器1170上或者在另一实施例中;可以将软件的特征和功能集成到处理器1170中。处理器1170还可以配置有本地存储设备1140,用于存储处理器1170使用的信息以进行快速访问,而不必依赖于远程存储在用户1108附近的外部存储设备上的信息。在其他实施例中,处理器1170可以集成在头戴式系统1160内。
当用户通过头戴式系统1160在用户的物理环境1105周围移动并观看时,用户的物理环境1105是用户1108的物理环境。例如,参考图11,用户的物理环境1105示出了具有两个墙壁(例如,主墙壁1180和侧墙壁1184,主墙壁和侧墙壁是相对于用户的视图)和桌子1188的房间。在主墙壁1180上,存在由实黑线描绘的矩形表面1182,用于显示带有物理边界的物理表面(例如,悬挂或附着在墙壁或窗户等上的绘画),其可以是将某些内容投影到其上的候选表面。在侧墙壁1184上,存在由实黑线描绘的第二矩形表面1186,以显示具有物理边界的物理表面(例如,悬挂或附着在墙壁或窗户等上的绘画)。在桌子1188上,可能有不同的对象。1)虚拟名片盒(Rolodex)1190,其中,可以存储和显示某些内容;2)由实黑线描绘的水平表面1192代表具有物理边界的物理表面,以将某些内容投影到其上;以及3)由黑色虚线描绘的多个堆叠的虚拟正方形表面1194以表示例如可以存储和显示某些内容的堆叠的虚拟报纸。本领域的技术人员将理解上述物理边界,尽管对于放置内容元素是有帮助的,因为内容元素已经将表面分解成离散的观看部分并且可能本身就是表面属性,但是对于识别合格的表面不是必需的。
网页浏览器1110还可以显示来自互联网或内联网/专用网络内的博客页面。另外,网页浏览器1110也可以是显示数字内容的任何技术。数字内容可以包括例如网页、博客、数字图片、视频、新闻文章、新闻通讯或音乐。内容可以存储在用户1108经由网络1120可访问的存储设备1130中。在一些实施例中,内容也可以是流式内容,例如,实时视频馈送或实时音频馈送。存储设备1130可以包括例如数据库、文件系统、永久性存储器设备、闪存驱动器、高速缓存等。在一些实施例中,包含内容(例如,网页)的网页浏览器1110经由计算网络1125被显示。
计算网络1125访问存储设备1130以检索和存储内容以供在网页浏览器1110上的网页中显示。在一些实施例中,本地存储设备1140可以向用户1108提供感兴趣的内容。本地存储设备1140可以包括例如闪存驱动器、高速缓存、硬盘驱动器、数据库、文件系统等。存储在本地存储设备1140中的信息可以包括3D空间中的最近访问的内容或最近显示的内容。本地存储设备1140通过向软件1150本地提供某些内容以帮助解构内容以在3D空间环境(例如,用户的物理环境1105中的3D表面)上显示内容,从而允许对环境1100的系统的性能予以改善。
软件1150包括存储在非瞬时性计算机可读介质中的软件程序,以执行解构将要在用户的物理环境1105内显示的内容的功能。软件1150可以在处理器1170上运行,其中,处理器1170可以本地附接到用户1108,或者在一些其他实施例中,软件1150和处理器1170可以包括在头戴式系统1160内。在一些实施例中,可以在远离用户1108的计算网络1125上存储和执行软件1150的部分特征和功能。例如,在一些实施例中,在计算网络1125上可以进行解构内容,并且解构的结果可以存储在存储设备1130中,其中,可以在处理器1170内对用于在其上呈现解构的内容的用户的本地环境的表面进行清点,其中,在本地存储设备1140内存储表面的清点和匹配/映射。在一个实施例中,可以在处理器1170和软件1150内本地进行以下过程:解构内容、清点本地表面、将内容的元素匹配/映射到本地表面以及显示内容的元素。
头戴式系统1160可以是包括用户接口、用户感测系统、环境感测系统和处理器(均未示出)的虚拟现实(VR)或增强现实(AR)头戴式系统(例如,混合现实设备)。头戴式系统1160向用户1108呈现用于与数字世界交互和体验数字世界的接口。这样的交互可以涉及用户和数字世界、与环境1100交流的一个或多个其他用户、以及数字和物理世界内的对象。
用户接口可以包括接收内容以及通过用户接口由用户输入来选择内容内的元素。用户接口可以是触觉接口设备、键盘、鼠标、操纵杆、移动捕获控制器、光学追踪设备和音频输入设备中的至少一个或组合。触觉接口设备是允许人通过身体的感觉和动作与计算机进行交互的设备。触觉是指一种人机交互技术,其包含触觉反馈或其他身体感觉以在计算设备上执行动作或过程。
用户感测系统可以包括一个或多个传感器1162,其可操作以检测与佩戴头戴式系统1160的用户1108有关的某些特征、特性或信息。例如,在一些实施例中,传感器1162可以包括能够检测用户1108的实时光学特性/测量值的相机或光学检测/扫描电路,例如,以下一项或多项:瞳孔收缩/扩张、每一个瞳孔的角度测量/定位、球度、眼睛形状(因为眼睛形状随着时间而改变)和其他结构上数据。该数据可以提供或用于计算可由头戴式系统1160用来增强用户的观看体验的信息(例如,用户的视觉焦点)。
环境感测系统可以包括一个或多个传感器1164,用于从用户的物理环境1105获取数据。可以将由传感器1164检测的对象或信息作为输入提供给头戴式系统1160。在一些实施例中,该输入可以表示与虚拟世界的用户交互。例如,观看桌子(例如,桌子1188)上的虚拟键盘的用户(例如,用户1108)可以用他们的手指作手势,就像该用户正在虚拟键盘上打字一样。手指移动的动作可以由传感器1164捕获,并作为输入提供给头戴式系统1160,其中,该输入可以用于改变虚拟世界或创建新的虚拟对象。
传感器1164可以包括例如通常面向外部的相机或扫描仪,用于例如通过连续和/或间歇地投影的红外结构光来解释场景信息。通过检测和注册本地环境,环境感测系统可用于在用户1108周围匹配/映射用户的物理环境1105的一个或多个元素,包括静态对象、动态对象、人物、手势和各种照明、大气和声学条件。因此,在一些实施例中,环境感测系统可以包括嵌入在本地计算系统(例如,处理器1170)中并且可操作地数字重构由传感器1164检测到的一个或多个对象或信息的基于图像的3D重构软件。
在一个示例性实施例中,环境感测系统提供以下一项或多项:移动捕获数据(包括手势识别)、深度感测、面部识别、对象识别、唯一对象特征识别、语音/音频识别和处理、声源定位、降噪、红外或类似激光投影、以及单色和/或彩色CMOS传感器(或其他类似的传感器)、视场传感器以及各种其他光学增强传感器。应当理解,环境感测系统可以包括除了以上讨论的那些组件之外的其他组件。
如上所述,在一些实施例中,处理器1170可以与头戴式系统1160的其他组件集成、与环境1100的系统的其他组件集成,或者可以是如图11所示的隔离设备(可穿戴或与用户1108分离)。处理器1170可以通过物理、有线连接或通过无线连接(例如,移动网络连接(包括蜂窝电话和数据网络)、Wi-Fi、蓝牙或任何其他无线连接协议)连接到头戴式系统1160的各个组件。处理器1170可以包括存储器模块、集成的和/或附加的图形处理单元、无线和/或有线互联网连接、以及能够将来自源(例如,计算网络1125和来自头戴式系统1160的用户感测系统和环境感测系统)的数据转换为图像和音频数据的编解码器和/或固件,其中,图像/视频和音频可以通过用户接口(未示出)呈现给用户1108。
处理器1170处理用于头戴式系统1160的各个组件的数据处理以及在头戴式系统1160与来自由网页浏览器1110和计算网络1125显示或访问的网页的内容之间的数据交换。例如,处理器1170可以用于缓冲和处理用户1108和计算网络1125之间的数据流,从而实现平滑、连续和高保真度的用户体验。
可以以智能和逻辑的方式来完成将来自网页的内容解构为内容元素并且将要显示的元素匹配/映射在3D环境中的表面上。例如,内容解析器115可以是文档对象模型(DOM)解析器,接收输入(例如,整个HTML页面),解构输入内的各种内容元素并且在逻辑结构中存储所解构的内容元素,使得内容的元素是可访问的,并且易于以编程方式操作/提取。预定的一组规则可用于推荐、建议或规定在例如网页内识别的某些类型的元素/内容的放置位置。例如,某些类型的内容元素可能具有一个或多个内容元素,其可能需要匹配/映射到适合于存储和显示一个或多个元素的物理或虚拟对象表面,而其他类型的内容元素可能是单个对象,例如网页内的主要视频或主要文章,在这种情况下,可以将单个对象匹配/映射到最有意义的以向用户显示该单个对象的表面。在一些实施例中,单个对象可以是从视频应用流式传输的视频,使得单个内容对象可以显示在用户的环境内的表面(例如,虚拟表面或物理表面)上。
图12,环境1200描绘了由网页浏览器1110和用户的物理环境1105显示或访问的内容(例如,网页)。带箭头的虚线描绘了来自内容(例如,网页)的元素(例如,特定类型的内容)匹配或映射到用户的物理环境1105并在其上显示。来自内容的某些元素基于或者网页设计者提示或者预定义的浏览器规则被匹配/映射到用户的物理环境1105中的某些物理或虚拟对象。
作为示例,由网页浏览器1110访问或显示的内容可以是具有多个标签(tab)的网页,其中,当前活动的标签1260被显示,并且第二标签1250当前被隐藏直到被选择以显示在网页浏览器1110上为止。活动的标签1260内显示的通常是网页。在该特定示例中,活动的标签1260正在显示包括主要视频1220、用户评论1230和建议视频1240的YOUTUBE页面。如该示例性图12所示,可以匹配/映射主要视频1220以在垂直表面1182上显示,可以匹配/映射用户评论1230以在水平表面1192上显示,并且可以匹配/映射建议视频1240以在与垂直表面1182不同的垂直表面1186上显示。此外,可以匹配/映射第二标签1250以在虚拟Rolodex1190上和/或作为虚拟Rolodex 1190和/或在多个堆叠的虚拟对象1194上显示。在一些实施例中,第二标签1250内的特定内容可以存储在多个堆叠的虚拟对象1194中。在其它实施例中,位于第二标签1250内的全部内容可以被存储和/或显示在多个堆叠的虚拟对象1194上。类似地,虚拟Rolodex 1190可以包含来自第二标签1250的特定内容,或者虚拟Rolodex1190可以包含位于第二标签1250内的全部内容。
在一些实施例中,可以在用户的物理环境1105中的双面平面窗口虚拟对象(未示出)上显示网页浏览器1110的内容元素(例如,第二标签1250中的网页的内容元素)。例如,在平面窗口虚拟对象的第一面(例如,正面)上显示的可以是网页的主要内容,而在平面窗口虚拟对象的第二面(例如,背面)上显示的可以是诸如与主要内容相关的额外内容的附加信息。作为示例,可以在第一面上显示商家网页(例如,百思买(BESTBUY)),在第二面上显示一组优惠券和折扣。折扣信息可以在第二面上更新,反映用户在第一面上正在浏览的内容的当前环境(例如,第二面上仅笔记本电脑或家用电器折扣)。
当在网页浏览器1110中观看时,一些网页可能跨越多个网页。当在网页浏览器1110中观看时,可以通过在网页浏览器1110中滚动或在网页浏览器1110中导航多个页面来观看此类网页。当将来自网页浏览器1110的此类网页匹配/映射到用户的物理环境1105时,这样的网页可以被匹配/映射为双面网页。图13A-13B示出了根据一些实施例的示例性双面网页。图13A示出了冰沙饮料,而图13B示出了冰沙饮料的示例性背面/第二面,其包括用于制造冰沙的成分和说明。在一些实施例中,主墙壁1180的正面可以包括双面网页的第一面,而主墙壁1180的背面可以包括双面网页的第二面。在该示例中,用户1108将不得不在主墙壁1180周围走动以看到双面网页的两面。在一些实施例中,主墙壁1180的正面可以包括双面网页的两面。在该示例中,用户1108可以经由用户输入在双面网页的两面之间切换。响应于用户输入,双面网页可能看起来从第一面翻转到第二面。尽管将双面网页描述为在网页浏览器1110中跨越多个页面观看时从网页生成,但是双面网页可以从任何网页或其部分或其多个生成。VR和/或AR系统可以提供一组易于使用的HTML特性,该HTML特性可以被添加到现有内容(例如,第二标签1250或网页)中,以使其可用于渲染模块以将内容渲染到双面2D浏览器平面窗口虚拟对象上。尽管该示例描述了双面平面窗口虚拟对象,但是该虚拟对象可以具有任意数量的面(N面)。尽管该示例描述了在双面平面窗口虚拟对象上显示内容,但是内容元素可以在真实对象的多个表面上(例如,门的正面和门的后面)。
垂直表面1182可以是已经在房间的主墙壁1180(描绘为用户的物理环境1105)上的任何类型的结构,例如窗玻璃或相框。在一些实施例中,垂直表面1182可以是空墙壁,其中,头戴式系统1160确定适合于用户1108观看主视频1220的垂直表面1182的框架的最佳尺寸。垂直表面1182的尺寸的该确定可以至少部分地基于用户1108距主墙壁1180的距离、主视频1220的大小和尺寸、主视频1220的质量、未覆盖的墙壁空间的量和/或用户在观看主墙壁1180时的姿势。例如,如果主视频1220的质量是高清晰度的,则垂直表面1182的大小可能会更大,因为主视频1220的质量不会受到垂直表面1182的不利影响。但是,如果主视频1220的视频质量质量较差,则具有较大的垂直表面1182可能会大大妨碍视频质量,在这种情况下,本公开的方法和系统可以重新调整尺寸/重新定义在垂直表面1182内如何显示内容以使其更小以最小化来自像素化的不良视频质量。
垂直表面1186与垂直表面1182一样,是用户的物理环境1105中相邻墙壁(例如,侧墙壁1184)上的垂直表面。在一些实施例中,基于用户1108的取向,侧墙壁1184和垂直表面1186可能看起来是在斜坡上的倾斜表面。除了垂直表面和水平表面之外,斜坡上的倾斜表面还可以是表面的一种取向类型。在该示例中,可以将来自YOUTUBE网页的建议视频1240放置在侧墙壁1184上的垂直表面1186上,以允许用户1108只需将其头部稍微向右移动即能够观看建议视频。
虚拟Rolodex 1190是由头戴式系统1160创建并显示给用户1108的虚拟对象。虚拟Rolodex 1190可以使用户1108有能力双向浏览(cycle through)一组虚拟页面。虚拟Rolodex 1190可以包含整个网页,或者它可以包含单独的文章或视频或音频。如该示例中所示,虚拟Rolodex 1190可以包含来自第二标签1250的一部分内容,或者在一些实施例中,虚拟Rolodex 1190可以包含第二标签1250的整个页面。用户1108可以通过简单地聚焦于虚拟Rolodex 1190内的特定标签上来双向浏览虚拟Rolodex 1190内的内容,并且头戴式系统1160内的一个或多个传感器(例如,传感器1162)将检测用户1108的眼睛焦点并相应地浏览虚拟Rolodex 1190内的标签以获得用户1108的相关信息。在一些实施例中,用户1108可以从虚拟Rolodex 1190中选择相关信息,并指示头戴式系统1160将相关信息显示到可用周围表面上或者另一个虚拟对象(诸如紧邻用户1108的虚拟显示器)(未显示)上。
与虚拟Rolodex 1190相似,多个堆叠的虚拟对象1194可以包含以下内容:来自一个或多个标签的完整内容或来自用户1108标记、保存以供将来观看、或已打开(即,非活动标签)的各种网页或标签的特定内容。多个堆叠的虚拟对象1194也类似于真实世界报纸的堆叠。多个堆叠的虚拟对象1194内的每一个堆叠可以属于特定的报纸文章、页面、杂志发行、食谱等。本领域普通技术人员可以理解,可以存在多种类型的虚拟对象来实现该提供表面以放置来自内容源的内容元素或内容的相同目的。
本领域的普通技术人员可以理解,网页浏览器1110访问或显示的内容可能不仅仅是网页。在一些实施例中,内容可以是来自相册的图片、来自电影的视频、电视节目、YOUTUBE视频、交互式表格等。然而,在其他实施例中,内容可以是电子书或显示书本的任何电子方式。最后,在其他实施例中,内容可以是尚未描述的其他类型的内容,因为内容通常是当前信息的呈现方式。如果电子设备可以消费内容,则头戴式系统1160可以使用内容来在3D设置(例如,AR)中解构和显示内容。
在一些实施例中,匹配/映射访问的内容可以包括(例如,从浏览器)提取内容并将其放置在表面上(使得内容不再在浏览器中并且仅在表面上),以及在一些实施例中,匹配/映射可以包括(例如,从浏览器)复制内容并将其放置在表面上(使得内容既在浏览器中又在表面上)。
解构内容是互联网和计算机相关技术领域中存在的技术问题。使用某些类型的编程语言(诸如HTML)来构造诸如网页的数字内容,以指示计算机处理器和技术组件在何处以及如何在屏幕上为用户显示网页内的元素。如上所述,网页设计者通常在2D画布(例如,屏幕)的限制内工作,以在2D画布内放置和显示元素(例如,内容)。HTML标签用于确定如何格式化HTML文档或HTML文档中的部分。在一些实施例中,(提取或复制的)内容可以维护HTML标签引用,并且在一些实施例中,可以重新定义HTML标签引用。
关于该示例,简要地参考图4,在410处接收内容可以涉及使用头戴式系统1160来搜索数字内容。在410处接收内容还可以包括访问连接到网络1120的服务器(例如,存储设备1130)上的数字内容。在410处接收内容可以包括浏览互联网以寻找用户1108感兴趣的网页。在一些实施例中,在410处接收内容可以包括由用户1108给出的用于在互联网上搜索内容的语音激活命令。例如,用户1108可能正在与设备(例如,头戴式系统1160)交互,其中,用户1108通过说出搜索视频的命令然后说出视频名称和视频简短描述来请求设备搜索特定视频,从而在互联网上搜索特定视频。然后,设备可以搜索互联网并在2D浏览器上拉取视频,以允许用户1108看到设备的2D浏览器上显示的视频。然后,用户1108可以确认视频是用户1108想要在空间3D环境中观看的视频。
一旦接收到内容,方法就在420处识别内容中的内容元素以清点用于显示给用户1108的内容内的内容元素。内容内的内容元素可以例如包括视频、张贴在网页上的文章和新闻通讯、社交媒体网站上的评论和帖子、博客、张贴在各种网站上的图片、有声读物等。内容(例如,网页)内的这些元素可以通过HTML标签在内容脚本中可辨别,并且可以进一步包括HTML标签或类似HTML的标签,它们具有由内容设计者提供的属性以定义将特定元素放置在何处以及在某些情况下何时以及如何显示元素。在一些实施例中,本公开的方法和系统将利用这些HTML标签和属性作为由内容设计者提供的提示和建议,以辅助在440处的匹配/映射过程以确定在何处以及如何在3D设置中显示元素。例如,以下是由内容设计者(例如,网页开发者)提供的示例HTML网页代码。
内容设计者提供的示例HTML网页代码
内容设计者提供的示例HTML网页代码包括有关如何在网页上显示主视频的偏好,以及有关如何显示推荐(或建议视频)的偏好。偏好可以作为标签中的一个或多个属性来传达。上面和下面描述了内容元素的示例属性。可以如上所述确定或推断属性。特别是,此HTML网页代码使用“style”标签来指定如何使用“垂直”类型值来指定显示视频的垂直表面来显示主视频。另外,在“style”标签内,内容设计者提供的附加提示可以包括用于匹配算法的“优先级”偏好属性,以用于对网页(例如,主视频)中的哪个HTML元素/内容应被匹配/映射到哪个潜在表面区域进行优先级排序。在示例HTML网页代码中,将具有垂直平面布局的视频的优先级设置为100的值,其中,在该示例中,较高的优先级值指示较高的优先级。另外,在该示例中,内容设计者指示偏好属性,以将建议的视频放置在堆叠布局中类型值为“水平”的堆叠中,其中,堆叠的对象之间的距离(例如,在该情况中,建议视频关于另一个建议视频)应为20厘米。
在一些实施例中,诸如<ml-container>的标签可以允许内容设计者提供关于应在环境(例如,3D空间环境)中何处以及如何显示内容元素的特定偏好属性(例如,提示),使得解析器(例如,解析器115)可能能够解释在标签内指定的属性,以确定应在3D空间环境中何处以及如何显示内容元素。特定偏好属性可以包括一个或多个用于定义内容元素的显示偏好的属性。属性可以包括上述任何属性。
本领域的普通技术人员可以理解,由内容设计者定义的这些建议、提示和/或属性可以在诸如<ml-container>的标签中定义,其可以指示用于在3D空间环境中显示内容元素的相似特性。另外,本领域的普通技术人员还可以理解,内容设计者可以以任何组合来指定属性。本文公开的实施例可以通过使用解析器(例如,解析器115)或其他类似技术来分析网页的内容以确定如何以及在何处最佳地显示内容内的内容元素来解释期望的显示结果。
简要地参考图5,关于该示例,在510处识别内容内的元素可以类似于图4的在420处识别内容中的元素。方法进行到在520处从关于内容的放置的标签识别属性的下一步骤。如上所述,内容设计者在设计和配置网页时,可以将网页内的内容元素与HTML标签相关联以定义在何处以及如何显示每一个内容元素。这些HTML标签还可以包括关于将内容元素放置在网页的特定部分上的属性。头戴式系统1160将检测到这些HTML标签及其属性,并与系统的其他组件进行协调,以用作关于可以在何处显示特定元素的输入。在一些实施例中,诸如<ml-container>的标签可以包括由内容设计者指定的属性,以建议3D空间环境中内容元素的显示偏好属性,其中,标签与内容元素相关联。
在530处,执行从每一个元素中提取提示或标签。提示或标签通常是由网页的内容设计者提供的格式化提示或格式化标签。如上所述,内容设计者可以提供指令或提示,例如以“网页开发者提供的示例HTML网页代码”中所示的HTML标签的形式,以指示网页浏览器1110在页面或屏幕的特定部分中显示内容元素。在一些实施例中,内容设计者可以使用附加的HTML标签属性来定义附加的格式化规则。例如,如果用户对特定颜色(例如,红色)的敏感度降低,则不显示红色,而是使用另一颜色,或者如果偏好在垂直表面上显示的视频无法显示在垂直表面上,则替代地在另一个(物理)表面上显示视频,或者创建虚拟表面并在该虚拟表面上显示视频。以下是在浏览器中实现的示例HTML页面解析器,用于解析HTML页面以从HTML页面中的每一个元素提取提示/标签。
浏览器中实现的示例HTML页面解析器
示例HTML页面解析器示出了可以如何解析和识别和/或提取/复制包含用于为特定内容元素提供显示偏好属性的HTML标签的HTML页面。如示例HTML页面解析器中所公开的,可以使用所公开的示例代码来解析内容元素。HTML页面解析器可以识别/提取使用各种元素名称和值的某些HTML标签(例如,ML.layout、ML.container等),以确定要如何在3D环境中向用户显示特定元素(例如,通过将内容元素匹配到特定表面)。
在540处,执行查找/搜索内容元素的替代显示形式。可以为在特定观看设备上显示的内容元素指定某些格式化规则。例如,可以为网页上的图像指定某些格式化规则。系统可以访问替代显示形式。例如,如果网页浏览器1110能够显示图像的3D版本(或更一般地3D资产或3D媒体),则网页设计者可以放置附加标签或定义特定标签的某些属性以允许网页浏览器1110以识别图像可以具有图像的替代版本(例如,图像的3D版本)。然后,网页浏览器1110可以访问将在启用3D的浏览器中显示的图像的替代版本(例如,图像的3D版本)。
在一些实施例中,网页内的3D图像可能无法从网页中提取或复制而无法显示在3D环境中的表面上。在这些实施例中,可以在用户的3D环境内显示3D图像,其中,3D图像看起来像在旋转、发光等,并且用户可以与3D图像进行交互,但只能在包括3D图像的网页内。在这些实施例中,由于未从网页提取或复制3D图像,因此3D图像的显示是在网页内显示的。在这种情况下,整个网页被提取并显示在用户的3D环境中,并且网页内一些内容元素(诸如3D图像)尽管未从网页中提取或复制,但可以相对于网页的其余部分以3D形式出现,并且在网页内是可交互的。
在一些实施例中,网页内的3D图像可以被复制但不能从网页中提取。在这些实施例中,可以在用户的3D环境中显示3D图像,其中,3D图像看起来像在旋转、发光等,并且用户不仅可以在包括3D图像的网页内也可以在包括3D图像的副本的网页的外部的3D环境中与3D图像进行交互。网页看起来与3D图像相同,并且在网页外部有3D图像的副本。
在一些实施例中,可以从网页中提取网页内的3D图像。在这些实施例中,可以在用户的3D环境内显示3D图像,其中,3D图像看起来像在旋转、发光等,并且用户可以与3D图像进行交互,但只能在网页外部,因为3D图像是从网页提取的。由于3D图像是从网页提取的,3D图像仅在3D环境中显示,不在没有(not without)网页中显示。在这些实施例中,可以在从网页中提取3D图像之后重新配置网页。例如,网页的版本可以呈现给用户,包括网页内之前从中提取了3D图像的空白部分。
尽管相对于网页内的3D图像描述了先前的实施例和示例,但是本领域的普通技术人员可以理解,该描述可以类似地应用于任何内容元素。
在550处执行存储所识别的内容元素。该方法可以将所识别的元素存储到非瞬时性存储介质中,以在合成过程140中使用以将内容元素与表面匹配。非瞬时性存储介质可以包括数据存储设备,诸如存储设备1130或本地存储设备1140。内容元素可以存储在特定表中,例如如下图14A中公开的表。在一些实施例中,内容元素可以以分层结构存储,该分层结构例如表示为如下所述的图14B中公开的树结构。在一些实施例中,内容元素可以存储在瞬时性存储介质中。
图14A-14B示出了根据一些实施例的用于存储从内容中解构的内容元素的不同结构的示例。在图14A中,元素表1400是示例性表,其可以在数据库中存储图5的510处识别内容内的内容元素的结果。元素表1400包括例如关于内容内的一个或多个内容元素的信息,包括元素识别(ID)1410、内容元素的偏好属性指示符1420(例如,优先级属性、取向属性、位置类型属性、内容类型属性、表面类型属性等或其某种组合)、父元素ID 1430(如果特定内容元素包括在父内容元素内)、子内容元素ID 1440(如果内容元素可以包含子内容元素)、以及指示内容元素是否包含多个实施例的多个实体指示符1450,这些实施例可以保证需要使用于显示内容元素的表面或虚拟对象与显示多个版本的内容元素兼容。父内容元素是内容内的内容元素/对象,其可以包含亚内容(sub-content)元素(例如,子内容元素)。例如,具有值为1220(例如,主视频1220)的元素ID具有父元素ID值为1260(例如,活动标签1260),其指示主视频1220是活动标签1260的子内容元素。或者以不同的方式陈述,主视频1220被包括在活动标签1260内。继续相同示例,主视频1220具有子元素ID 1230(例如,用户评论1230),其指示用户评论1230与主视频1220相关联的。本领域普通技术人员可以理解,元素表1400可以是关系数据库或任何类型的数据库中的表。另外,元素表1400可以是计算机存储器(例如,高速缓存)中的阵列,其包含图5的510处识别内容内的内容元素的结果。
元素表1400中的每行1460对应于网页内的内容元素。元素ID 1410是包含每一个内容元素的唯一识别符(例如,元素ID)的列。在一些实施例中,内容元素的唯一性可以定义为元素ID 1410列与表内另一列(例如,如果内容设计者识别了多于一个偏好属性,则为偏好属性1420列)的组合。偏好属性1420是其值可以至少部分地基于内容设计者在其中定义的标签和属性来确定并且在图5的530处从每一个内容元素提取提示或标签中由所公开的系统和方法识别的一列。在其他实施例中,可以至少部分地基于预定义规则来确定偏好属性1420列,预定义规则指定某些类型的内容元素应在环境中显示在何处。这些预定义规则可以向系统和方法提供建议,以确定内容元素最佳放置在环境中何处。
父元素ID 1430是包含父内容元素的元素ID的列,当前行中的该特定内容元素显示在其中或与之相关。特定的内容元素可以嵌入、放置在页面的另一个内容元素内,或者与网页上的另一个内容元素有关。例如,在当前实施例中,元素ID 1410列的第一条目存储与图12的主视频1220相对应的元素ID 1220的值。与主视频1220相对应的偏好属性1420列中的值是基于标签和/或属性确定的,并且如图所示,该内容元素应该放置在用户的物理环境1105的“主”位置中。取决于用户1108的当前位置,该主位置可以是用户1108当前正在看的起居室中的墙壁或厨房中的炉灶罩,或者如果在宽阔的空间中,可以是投影在用户1108的视线(line of site)的前面的虚拟对象,主视频1220可以投影到该虚拟对象上。关于内容元素如何显示给用户1108的更多信息将在详细描述的其他地方公开。继续当前示例,父元素ID 1430列存储与图12的活动标签1260相对应的元素ID 1260的值。因此,主视频1220是活动标签1260的子。
子元素ID 1440是包含子内容元素的元素ID的一列,当前行中该特定内容元素已显示在其中或与其相关。网页内的特定内容元素可以被嵌入、放置在另一个内容元素内或与另一个内容元素有关。继续当前示例,子元素ID 1440列存储与图12的用户评论1230相对应的元素ID 1230的值。
多个实体指示符1450是指示内容元素是否包含多个实体的一列,这些实体可以保证需要使用于显示元素的表面或虚拟对象与显示多个版本的内容元素兼容(例如,内容元素可以是用户评论1230,其中,对于主视频1220,可能存在多于一个评论可用)。继续当前示例,多个实体指示符1450列存储值“N”以指示主视频1220在活动标签1260中不具有或不对应于多个主视频(例如,主视频1220的“No”多个版本)。
继续当前示例,元素ID 1410列的第二条目存储与图12的用户评论1230相对应的元素ID 1230的值。在偏好属性1420列中与用户评论1230相对应的值显示“水平”偏好以指示用户评论1230应被放置在用户的物理环境1105中某处的水平表面上。如上所述,水平表面将基于用户的物理环境1105中的可用水平表面来确定。在一些实施例中,用户的物理环境1105可以不具有水平表面,在这种情况下,本公开的系统和方法可以识别/创建具有水平表面的虚拟对象以显示用户评论1230。继续当前示例,父元素ID 1430列存储与图12的主视频1220相对应的值元素ID 1220,并且多个实体指示符1450列存储值“Y”以指示用户评论1230可以包含多于一个的值(例如,多于一个的用户评论)。
元素表1400内的其余行包含用户1108感兴趣的其余内容元素的信息。本领域的普通技术人员可以理解,在510处存储识别内容内的内容元素的结果改善了计算机本身的功能,因为一旦对内容执行了该分析,则可以由系统和方法保留它,以用于将来如果另一个用户对相同内容感兴趣时对内容进行分析。可以避免用于解构该特定内容的系统和方法,因为它之前已经完成。
在一些实施例中,元素表1400可以存储在存储设备1130中。在其他实施例中,元素表1400可以存储在本地存储设备1140中,以用于快速访问最近观看的内容或用于可能重新访问最近观看的内容。在其他实施例中,元素表1400可以存储在远离用户1108的存储设备1130和位于用户1108本地的本地存储设备1140两者处。
在图14B中,树结构1405是可用于将图5的510处识别内容内的元素的结果存储到数据库中的示例性逻辑结构。当各种内容彼此具有层次关系时,将内容元素存储在树结构中可能是有利的。树结构1405包括父节点-网页主标签节点1415、第一子节点-主视频节点1425和第二子节点-建议视频节点1445。第一子节点-主视频节点1425包括子节点-用户评论节点1435。用户评论节点1435是网页主标签节点1415的孙。例如,参考图12,网页主标签节点1415可以是网页主标签1260,主视频节点1425可以是主视频1220,用户评论节点1435可以是用户评论1230,建议视频节点1445可以是建议视频1240。这里,内容元素的树结构组织显示了各种内容元素之间的层次关系。以树结构类型的逻辑结构来组织和存储内容元素可能是有利的。例如,如果主视频1220正显示在特定表面上,则可能对系统有用的是,知道用户评论1230是主视频1220的子内容,并且可能有益的是相对靠近主视频1220显示用户评论1230和/或在主视频1220附近的表面上显示用户评论1230,使得用户可以容易地观看和理解用户评论1230和主视频1220之间的关系。在一些实施例中,可能有益的是,如果用户决定隐藏或关闭主视频1220,则能够隐藏或关闭用户评论1230。在一些实施例中,可能有益的是,如果用户决定将主视频1220移动到不同表面,则能够将用户评论1230移动到另一表面。当用户通过同时移动父节点-主视频节点1425和子节点-用户评论节点1435来移动主视频1220二者时,系统可以移动用户评论1230。
回到图4,该方法继续在430处确定表面。用户1108可以通过头戴式系统1160观看用户的物理环境1105,以允许头戴式系统1160捕获并识别周围的表面,诸如墙壁、桌子、绘画、窗框、火炉、冰箱、电视等。由于头戴式系统1160上的传感器和相机或者具有任何其他类型的类似设备,头戴式系统1160意识到用户的物理环境1105中的真实对象。在一些实施例中,头戴式系统1160可以将在用户的物理环境1105中观察到的真实对象与存储在存储设备1130或本地存储设备1140中的虚拟对象进行匹配,以识别可用于这些虚拟对象的表面。真实对象是在用户的物理环境1105中识别的对象。虚拟对象是在用户的物理环境中物理上不存在的对象,但可以显示给用户以使其看起来好像虚拟对象存在于用户的物理环境中。例如,头戴式系统1160可以检测用户的物理环境1105内的桌子的图像。可以将桌子图像简化为3D点云对象,以在存储设备1130或本地存储设备1140处进行比较和匹配。如果检测到真实对象与(例如,桌子的)3D点云对象的匹配,则系统和方法将把桌子识别为具有水平表面,因为代表桌子的3D点云对象被定义为具有水平表面。
在一些实施例中,虚拟对象可以是提取的对象,其中,提取的对象可以是在用户的物理环境1105内识别的物理对象,但是在物理对象的位置中作为虚拟对象显示给用户,使得可以对提取的对象进行附加处理和关联,而这将无法在物理对象本身上完成(例如,更改物理对象的颜色以突出显示物理对象的特定特征等)。另外,提取的对象可以是从内容中提取的虚拟对象(例如,来自浏览器的网页)并显示给用户1108。例如,用户1108可以选择网页上显示的对象(诸如沙发),以显示在用户的物理环境1105中。系统可以识别所选择的对象(例如,沙发),并将提取的对象(例如,沙发)显示给用户1108,就好像提取的对象(例如,沙发)物理上存在用户的物理环境1105中一样。此外,虚拟对象还可以包括具有用于显示内容的表面的对象(例如,极为靠近用户的用于观看某些内容的透明显示屏幕),这些表面甚至物理上不存在用户的物理环境1105中,但是,从显示内容角度来看,可能是向用户呈现某些内容的理想显示表面。
简要地参考图6,该方法开始于610处确定表面。该方法进行到620处确定用户的姿势的下一步骤,该步骤可以包括确定头部姿势矢量。在620处确定用户的姿势是识别用户的当前周围环境的重要步骤,因为用户的姿势将为用户1108提供关于用户的物理环境1105内的对象的视角。例如,返回参考图11,使用头戴式系统1160的用户1108正在观察用户的物理环境1105。在620处确定用户的姿势(即,头部姿势矢量和/或相对于世界的原点位置信息)将有助于头戴式系统1160可以理解例如:(1)用户1108相对于地面有多高;(2)用户1108必须旋转其头部以移动并捕获房间图像的角度;以及(3)用户1108到桌子1188、主墙壁1180和侧墙壁1184的距离。此外,用户1108的姿势还有助于确定头戴式系统1160在观察垂直表面1182和186以及用户的物理环境1105内的其他表面时的角度。
在630处,方法确定表面的属性。用户的物理环境1105内的每一个表面都被使用对应的属性进行标记并分类。在一些实施例中,用户的物理环境1105内的每一个表面也使用对应的尺寸和/或取向属性进行标记并分类。该信息将有助于至少部分地基于以下将内容元素与表面进行匹配:表面的尺寸属性、表面的取向属性、用户1108远离特定表面的距离、以及需要为内容元素显示的信息的类型。例如,视频可能比可以包含大量信息的博客或文章显示得更远,其中,文章的文本大小可能太小,以至于如果以小尺寸显示在遥远的墙壁上则用户看不到。在一些实施例中,来自图1B的传感器162将原始数据提供给CVPU 164以进行处理,并且CVPU 164将处理后的数据提供给感知框架166用于为环境解析器168准备数据。环境解析器168解析来自感知框架166的环境数据以确定环境中的表面。
在640处,方法将表面的清单存储到非瞬时性存储介质中,以供合成过程/匹配/映射例程用来将提取的元素匹配/映射到特定表面。非瞬时性存储介质可以包括数据存储设备(诸如存储设备1130或本地存储设备1140)。所识别的表面可以被存储在特定表中(诸如以下描述的图15中所公开的表)。在一些实施例中,所识别的表面可以被存储在瞬时存储介质中。
图15示出了根据一些实施例的用于存储从用户的本地环境中识别出的表面的清单的表的示例。表面表1500是可以将识别周围表面和属性处理的结果存储在数据库中的示例性表。表面表1500包括例如关于用户的物理环境1105内的表面的信息,该信息具有包括以下的数据列:表面ID 1510、宽度1520、高度1530、取向1540、真实或虚拟指示符1550、多个1560、位置1570和相对于用户的点积表面取向1580。表面表1500可以具有表示每一个表面的其他属性的附加列。本领域普通技术人员可以理解,表面表1500可以是关系数据库或任何类型的数据库中的表。另外,表面表1500可以是存储图4的430处确定表面的结果的计算机存储器(例如,高速缓存)中的阵列。
表面表1500中的每一行1590可以对应于来自用户的物理环境1105的表面或可以在用户的物理环境1105内显示给用户1108的虚拟表面。表面ID 1510是包含用于唯一识别特定表面的唯一识别符(例如,表面ID)的列。特定表面的尺寸存储在宽度1520和高度1530列中。
取向1540是指示表面相对于用户1108的取向(例如,垂直、水平等)的列。真实/虚拟1550是指示以下的列:特定表面是否位于用户的物理环境1105中的真实表面/对象上,或者特定表面是否位于虚拟表面/对象上,该真实表面/对象如用户1108使用头戴式系统1160所感知的,该虚拟表面/对象将由头戴式系统1160生成并显示在用户的物理环境1105内。对于用户的物理环境1105可能不包含足够的表面、基于匹配得分分析不包含足够的适当表面、或者头戴式系统1160可能检测不到足够的表面来显示用户1108希望显示的内容量的情况,头戴式系统1160可能必须生成虚拟表面/对象。在这些实施例中,头戴式系统1160可以从现有的虚拟对象的数据库中搜索,现有的虚拟对象可以具有适当的表面尺寸以显示所识别的用于显示的某些类型的元素。数据库可以来自存储设备1130或本地存储设备1140。在一些实施例中,虚拟表面基本上创建在用户的前面,或者偏移头戴式系统1160的前向矢量以便不遮挡用户和/或设备的真实世界的主要视场。
多个1560是指示表面/对象是否与显示多个版本的元素兼容的列(例如,该元素可以是图12的第二标签1250,其中,对于特定的网页浏览器1110,可以有多于一个的第二(即,非活动)标签(例如,每标签一个网页))。如果多个1560列的值是“多个”,诸如对于对应于图12的虚拟Rolodex 1190的存储值为1190的表面ID列的第四条目,以及对应于图12的多个堆叠的虚拟对象1194的存储值为1194的表面ID列的第五条目的情况,系统和方法将知道是否存在可能具有多个版本的元素的元素,例如非活动标签就是这种情况,这些是可以容纳多个版本的表面类型。
位置1570是指示物理表面相对于参考系或参考点的位置的列。如图15中位置1570的列标题(header)中所示,物理表面的位置可以被预定为表面的中心。在其他实施例中,位置可以被预定为表面的另一个参考点面(例如,表面的前、后、顶部或底部)。位置信息可以表示为相对于某参考系或参考点,来自物理表面的中心的矢量和/或位置信息。可以有几种方法来表示表面表1500中的位置。例如,表面表1500中表面ID 1194的位置的值以提要(abstract)形式表示,以示出矢量信息和参考系信息(例如“系(frame)”下标)。x、y、z是每一个空间维度中的3D坐标,并且系标示3D坐标相对于哪个参考系。
例如,表面ID 1186示出为相对于真实世界原点,表面1186的中心的位置为(1.3,2.3,1.3)。作为另一示例,表面ID 1192示出为相对于用户参考系,表面1192的中心的位置为(x,y,z),以及表面ID 1190示出为相对于另一个表面1182,表面1190的中心的位置为(x,y,z)。参考系对于消除当前正在使用哪个参考系的歧义很重要。在以真实世界原点为参考系的情况下,通常是静态参考系。但是,在其他实施例中,当参考系是用户参考系时,用户可以是移动参考系,在这种情况下,如果用户正在移动并且用户参考系被用作参考系,则平面(或矢量信息)可以随用户一起移动和改变。在一些实施例中,每一个表面的参考系可以是相同的(例如,用户参考系)。在其他实施例中,根据表面(例如,用户参考系、世界参考系、房间中的另一表面或对象等),存储在表面表1500内的表面的参考系可以是不同的。
在当前示例中,存储在表面表1500内的值包含在图12的用户物理环境1105中识别的物理表面(例如,垂直表面1182和1186、以及水平表面1192)和虚拟表面(例如,虚拟Rolodex 1190和多个堆叠的虚拟对象1194)。例如,在当前实施例中,表面ID 1510列的第一条目存储与图12的垂直表面1182相对应的表面ID 1182的值。宽度1520列中的宽度值和高度1530列中的高度值分别对应于垂直表面1182的宽度和高度,指示垂直表面1182的尺寸为48英寸(宽)乘36英寸(高)。类似地,取向1540列中的取向值指示垂直表面1182具有“垂直”取向。另外,真实/虚拟1550列中的真实/虚拟值指示垂直表面1182是“R”(例如,真实)表面。多个1560列中的多个值指示垂直表面1182是“单个”(例如,只能容纳单个内容)。最后,位置1570列指示垂直表面1182相对于用户1108的位置具有矢量信息为(2.5,2.3,1.2)用户
表面表1500中的剩余行包含用户的物理环境1105中的剩余表面的信息。本领域的普通技术人员可以理解,图4的在430处存储确定表面的结果改善了计算机本身的功能,因为一旦已经在周围表面上执行了该分析,则可以由头戴式系统1160保留该分析,以用于将来如果另一个用户或相同用户1108在相同的物理环境1105中但对不同的内容感兴趣时,对用户的周围表面进行分析。可以避免在430处确定表面的处理步骤,因为这些处理步骤之前已经完成。唯一的区别可以包括至少部分地基于识别具有不同内容的元素的元素表1400,识别附加的或不同的虚拟对象为可用。
在一些实施例中,表面表1500被存储在存储设备1130中。在其他实施例中,表面表1500被存储在用户1108的本地存储设备1140中,用于快速访问最近观看的内容或可能重新访问最近观看的内容。在其他实施例中,表面表1500可以存储在远离用户1108的存储设备1130和位于用户1108本地的本地存储设备1140两者处。
返回到图4,方法继续使用以下在440处将内容元素与表面进行匹配:使用来自步骤420识别内容中的内容元素的所识别的内容元素和来自步骤430确定表面的所确定的表面的组合,以及在一些实施例中使用虚拟对象作为附加表面。将内容元素与表面进行匹配可以涉及多个因素,其中,一些因素可能包括通过使用诸如以上讨论的HTML页面解析器(诸如示例HTML页面解析器),分析由内容设计者通过内容设计者定义的HTML标签元素所提供的提示。其他因素可以包括从以下选择:由AR浏览器、AR界面和/或云存储设备所提供的有关如何以及在何处匹配/映射某些内容的预定义的一组规则。
简要地参考图7A,其描绘了示出根据一些实施例的用于将内容元素与表面进行匹配的方法的流程图。在710处,方法确定所识别的内容元素是否包含由内容设计者提供的提示。内容设计者可以提供有关何处最佳显示内容元素的提示。例如,图12的主视频1220可以是显示在活动标签1260内的网页上的视频。内容设计者可以提供提示以指示主视频1220最好显示在用户1108的直视中的平坦垂直表面上。
在一些实施例中,用于网络链接的3D预览可以被表示为与网页相关联的一组新的HTML标签和特性。图16示出了根据一些实施例的用于网络链接的示例3D预览。内容设计者可以使用新的HTML特性来指定哪个网络链接具有要为其渲染的相关联的3D预览。可选地,内容设计者/网络开发者可以指定3D模型以用于在其上渲染3D网络预览。如果内容设计者/网络开发者指定要用于渲染网络预览的3D模型,则网络内容图像可以用作3D模型的纹理。可以接收网页。如果存在为某些链接标签指定的预览特性,则可以检索第一级网页(例如,直接链接到第一页的网页)并且基于预览特性,可以生成3D预览并将其加载到内容设计者指定的3D模型或默认3D模型(例如,球体1610a)。尽管针对网络链接描述了3D预览,但是3D预览可以用于其他内容类型,并可能根据其自身解析和匹配的属性文件而与初始内容分开出现。本领域的技术人员可以理解,除了这里已经公开的内容之外,内容设计者还可以有许多其他方式来提供有关特定内容元素应放置在3D环境中的何处的提示,这些是内容设计者可以提供提示以显示网页内容的某些或所有内容元素的不同方式的一些示例。250
在另一个实施例中,标签标准(例如,HTML标签标准)可以包括诸如在上面讨论过的由内容设计者提供的示例网页中的新标签(例如,HTML标签)或用于提供提示的创建类似标记语言。如果标签标准包括这些类型的附加标签,则方法和系统的某些实施例将利用这些标签来进一步提供所识别的内容元素与所识别的表面的匹配/映射。
例如,一组网页组件可以作为新的HTML标签公开,供内容设计者/网页开发者用来创建网页的元素,这些元素本身将表现为从2D网页中伸出的3D体积或蚀刻到2D网页中的3D体积。图17示出了具有蚀刻到网页中的3D体积的网页的示例(例如,1710)。这些3D体积可以包括将被放置在网页上的网页控件(例如,按钮、手柄、操纵杆),从而允许用户操纵网页控件来操纵在网页内显示的内容,或者可以是与Web组件本身相关的其他内容的视图。本领域技术人员可以理解,除了HTML之外,还有许多其他语言可以被修改或采用,以进一步提供应如何在3D环境中最好地显示内容元素的提示,而新的HTML标记标准只是实现这种目的的一种方法。
在720处,方法确定是使用内容设计者提供的提示还是使用预定义的一组规则来将内容元素匹配/映射到表面。在730处,如果确定使用由内容设计者提供的提示是进行的方式,则该系统和方法分析提示并搜索包括识别的周围表面的逻辑结构,该逻辑结构可用于至少部分地基于提示显示特定内容元素(例如,查询图15的表面表1500)。
在740处,系统和方法运行最适合算法,以基于所提供的提示为特定内容元素选择最适合表面。例如,最适合算法可以提示特定内容元素,并尝试识别环境中相对于用户1108处于正面和中心的表面。例如,图12的主视频1220被匹配/映射到垂直表面1182,因为主视频1220在活动标签1260内图14A的元素表1400的偏好属性1420列中具有偏好值为“主”,并且垂直表面1182是用户1108的直视的表面,并且具有最佳大小的尺寸以显示主视频1220。
在750处,系统和方法存储具有内容元素与表面匹配的匹配结果。表可以存储在非瞬时性存储介质中,以供显示算法用来将内容元素显示在它们分别匹配/映射的表面上。非瞬时性存储介质可以包括数据存储设备,诸如存储设备1130或本地存储设备1140。匹配结果可以存储在特定表中,例如下面的图18中公开的表。
图18示出了根据一些实施例的用于存储内容元素与表面匹配的表的示例。匹配/映射表1800是将与表面处理匹配的内容元素的结果存储到数据库中的示例性表。匹配/映射表1800包括例如关于内容元素(例如,元素ID)以及内容元素被匹配/映射到的表面(例如,表面ID)的信息。本领域普通技术人员可以理解,匹配/映射表1800可以是存储在关系数据库或任何类型的数据库或存储介质中的表。另外,匹配/映射表1800可以是计算机存储器(例如,高速缓存)中的阵列,其包含图4的440处的将内容元素与表面进行匹配的结果。
匹配/映射表1800的每一行对应于与用户的物理环境1105中的一个或多个表面或显示给用户1108的虚拟表面/对象匹配的内容元素,其中,虚拟表面/对象看起来是用户的物理环境1105中的表面/对象。例如,在当前的实施例中,元素ID列的第一条目存储与主视频1220相对应的元素ID 1220的值。与主视频1220相对应的表面ID列中的表面ID值是与垂直表面1182对应的1182。以这种方式,主视频1220被匹配/映射到垂直表面1182。类似地,用户评论1230被匹配/映射到水平表面1192,建议视频1240被匹配/映射到垂直表面1186,并且第二标签1250被匹配/映射到虚拟Rolodex 1190。匹配/映射表1800中的元素ID可以与存储在图14A的元素表1400中的元素ID相关联。匹配/映射表1800中的表面ID可以与存储在图15的表面表1500中的表面ID相关联。
返回到图7A,在760处,假设确定使用预定义的规则是进行的方法,则该方法查询包含内容元素与表面的匹配/映射规则的数据库,并确定对于网页内的特定内容元素,应考虑使用哪种类型的表面来匹配/映射内容元素。例如,针对从图12返回的主视频1220的规则可以指示主视频1220应被匹配/映射到垂直表面,并且因此在搜索表面表1500之后,显露了多个候选表面(例如,垂直表面1182和1186,以及虚拟Rolodex 1190)。在770处,预定义的一组规则可以运行最适合算法以从可用候选表面中选择哪个表面最适合于该主视频1220。至少部分地基于最适合算法,确定主视频1220应被匹配/映射到垂直表面1182,因为所有候选表面中垂直表面1182是在用户1108的直视线内的表面,并且垂直表面1182具有显示视频的最佳尺寸。一旦确定一个或多个元素的匹配/映射,则在750处,该方法如上所述将内容元素的匹配/映射结果存储在非瞬时性存储介质中的元素到表面匹配/映射表中。
返回图4,方法继续在450处将内容元素作为虚拟内容渲染到匹配的表面上。头戴式系统1160可以包括头戴式系统1160内的一个或多个显示设备(诸如微型投影仪(未显示))以显示信息。将一个或多个元素显示在如440处所匹配的相应匹配表面上。使用头戴式系统1160,用户1108将在相应的匹配/映射表面上看到内容。本领域普通技术人员可以理解,内容元素被显示为似乎物理上附着在(物理的或虚拟的)各种表面上,但是实际上,内容元素被实际投影到用户1108所感知的物理表面上,并且在虚拟对象的情况下,虚拟对象被显示为看起来附着在虚拟对象的各个表面上。本领域普通技术人员可以理解,当用户1108转动其头部或向上或向下看时,头戴式系统1160内的显示设备可以继续保持内容元素固定在其各自的表面上,以进一步向用户1108提供内容被固定到匹配/映射的表面的感知。在其他实施例中,用户1108可以通过用户1108的头部、手、眼睛或声音进行的移动来改变用户的物理环境1105的内容。
应用
图19示出了根据一些实施例的包括与表面匹配的内容元素的环境1900的示例。
关于该示例,简要地参考图4,解析器115从应用接收410内容110。解析器115识别420内容110中的内容元素。在该示例中,解析器115识别视频面板1902、突出显示面板1904、重放1906、图形统计1908、文本统计1910和社交媒体新闻反馈1912。
环境解析器168确定430环境中的表面。在该示例中,环境解析器168确定第一垂直表面1932、第二竖直表面1934、第一软垫凳(ottoman)的顶部1936、第二软垫凳的顶部1938以及第二软垫凳的前面1940。环境解析器168可以确定环境中的附加表面;但是,在此示例中,未标记附加表面。在一些实施例中,环境解析器168连续确定430环境中的表面。在一些实施例中,当解析器115接收410内容110和/或识别420内容110中的内容元素时,环境解析器168确定430环境中的表面。
匹配模块142基于内容元素的属性和表面的属性,将内容元素匹配440到表面。在该示例中,匹配模块142将视频面板1902匹配到第一垂直表面1932,将高亮面板1904匹配到第二垂直表面1934,将重放1906匹配到第一软垫凳的顶部1936,将图形统计1908匹配到第二软垫凳的顶部1938,将文本统计1910匹配到第二软垫凳的前面1940。
可选的创建虚拟对象模块144可以创建用于显示内容元素的虚拟对象。在匹配模块142的匹配过程中,可以确定虚拟表面可以是用于显示某些内容元素的可选表面。在该示例中,可选的创建虚拟对象模块144创建虚拟表面1942。社交媒体新闻馈送1912与虚拟表面1942匹配。渲染模块146将内容元素渲染450到它们的匹配表面。所得到的图19示出了在渲染模块146将内容元素渲染450到其匹配的表面之后,运行该应用的头戴式显示设备的用户将会看到什么。
动态环境
在一些实施例中,环境1900是动态的:环境本身正在改变并且对象移入/移出用户的视场以创建新表面,或者用户移至新环境并同时接收内容元素,使得先前匹配的表面不再符合先前的合成过程140结果。例如,当在如图19所示的环境1900中观看篮球比赛时,用户可能走进厨房。
尽管本领域的技术人员将理解,以下技术将适用于关于静态用户的改变的环境,但是图20A-20E描绘了根据用户移动的环境的改变。在图20A中,在贯穿本公开描述的合成过程140之后,用户正在观看空间化显示的内容。图20B示出了用户可以沉浸在其中的较大环境以及对用户合格的附加表面。
如图20C所示,当用户从一个房间移动到另一个房间时,很明显,最初渲染用于在图20A中显示的内容不再满足合成过程140的匹配。在一些实施例中,传感器162提示系统用户的环境的改变。环境的改变可能是深度传感器数据的改变(在图20C左侧的房间比其中内容最初被渲染而用于显示的图20C右侧的房间生成了新的虚拟网格结构)、头部姿势数据的改变(IMU产生的移动改变超过当前环境的阈值,或者头戴式系统上的相机开始在其视场中捕获新对象)。在一些实施例中,环境的改变启动新的合成过程140,以找到先前匹配和/或当前渲染和显示的内容元素的新表面。在一些实施例中,超过时间阈值的环境改变启动新的合成过程140,以找到先前匹配和/或当前渲染和显示的内容元素的新表面。时间阈值可避免对环境数据造成较小中断而浪费的计算周期(例如,简单地转过头与另一用户交谈,或用户不久从其返回的环境的短暂退出)。
在一些实施例中,随着用户从一个环境转移到另一个环境,传感器162或环境结构化处理160通常不能找到适当的表面,或者在用户选择时或者在由合成处理140和/或由环境结构化处理160确定时,活动内容(例如,如图20D所示的2002)可以还原为显示在用户的视场内的虚拟表面上,例如显示在中心部分或偏离中心处的虚拟表面上。换句话说,内容可以不再以世界为中心,而是以用户为中心并且相对于用户视场是固定的。在一些实施例中,活动内容可以在用户视场内的虚拟表面上开始,例如在中心位置或偏离中心处的虚拟表面上。换句话说,内容可以以用户为中心并且相对于用户视场固定开始。在一些实施例中,内容可以保留在虚拟表面上,并因此保持以用户为中心。在一些实施例中,内容可以从在虚拟表面上转移到在适当的表面上,并因此从以用户为中心转移到以世界为中心。
在一些实施例中,当传感器162在给定的持续时间内检测到超过限制(例如,阈值)的平移或旋转运动时,在这种虚拟表面上显示的触发发生。平移或旋转运动的限制可以是彼此相对的,也就是说,尽管振幅或程度有所波动,但在持续时间内存在连续的平移或旋转运动;在一些实施例中,如果在持续时间内检测到一定数量的最大值(换句话说,即使不连续,但是用户在持续时间内进行足够数量的周期性运动),也可以满足该限制。在一些实施例中,限制可以是内容驱动的,使得内容的类型指示内容何时将从以世界为中心还原为以用户为中心。例如,内容可以包括如下的转移属性:当内容中的特定事件发生或将要发生时,将会还原为以用户为中心,以确保用户专注于此。
为了促进固定的透视图和调整的观看表面,在间歇的以用户为中心的显示时段期间,调整活动内容2002的尺寸或面积属性(即,大小)。如果最初对内容2002的尺寸属性进行了解析并将其与表面匹配,并且用户的转移使适当的表面消除,则可穿戴用户设备的参数(例如用户设备的视场的限制)将成为新的“工作表面”或虚拟表面尺寸限制,并且内容的尺寸或面积属性被临时替换或调整为用户设备的视场的函数(例如,尺寸属性按比例放大或缩小以使内容的轴匹配用户设备的视场的轴、是用户设备的视场的轴的倍数,或者是用户设备的视场的轴的一部分)。在一些实施例中,以用户为中心的内容显示被固定在用户的视场内,例如中心地位于从用户的每个瞳孔测得的60度扇形内,或偏移到外围区域。
在一些实施例中,当实体(例如,内容设计者)提供内容110时,在这种虚拟表面上显示的触发发生。该实体例如可以是应用。实体可以指示内容110将被显示在虚拟表面上并且因此是以用户为中心的。在一些实施例中,实体可以指示内容110将仅在虚拟表面上显示并且因此仅以用户为中心。在一些实施例中,实体可以指示内容110最初将会被显示在虚拟表面上,然后如果确定了环境中适当的表面(例如,在一段时间之后),则可以显示在环境中的该适当的表面上,因此从以用户为中心转移为以世界为中心。这可以由过渡属性来指示,该过渡属性被设置为(例如,在一段时间之后)从以用户为中心改变为以世界为中心。
在一些实施例中,当用户进入图20D的房间2002时,合成过程140用新的表面匹配与房间2014匹配的活动内容2002。在一些实施例中,活动内容2002现在是房间2012和2014两者中的活动内容,尽管仅在房间2012中显示(图20D中的房间2014中活动内容2002的外观描绘活动内容2002仍在渲染,尽管不显示给用户)。
以这种方式,用户可以在房间2012和2014之间行走,并且合成过程140不需要连续地重复匹配协议。在一些实施例中,当用户位于房间2012中时,房间2014中的活动内容2002被设置为空闲或睡眠状态,并且类似地,如果用户返回房间2014,则房间2012中的活动内容被置于空闲或睡眠状态。因此,用户可以在他们动态改变其环境时自动继续消耗内容。
在一些实施例中,用户可以暂停房间2014中活动内容2002并进入房间2012,并在与他们在房间2014中暂停的位置相同的交互点处恢复相同的内容。因此,当他们动态地改变他们的环境时用户可以自动继续内容消费。
空闲或睡眠状态可以以内容元素执行的输出程度为特征。活动内容可能具有渲染的内容元素的全部能力,使得内容的帧会继续更新其匹配的表面,音频输出会继续与匹配的表面位置相关联的虚拟扬声器等等。空闲或睡眠状态可以减少一些此功能;在一些实施例中,空闲或睡眠状态的音频输出的音量减小或进入静音状态;在一些实施例中,渲染周期变慢,使得生成更少的帧。这样的较慢的帧速率可以节省总体的计算功率,但是如果空闲或睡眠状态返回到活动状态(诸如用户返回空闲或睡眠状态内容元素正在运行的房间),则在恢复内容元素消耗时会引入较小的延迟。
图20E描绘了在不同环境中停止渲染内容元素,而不仅仅是改变为空闲或睡眠状态。在图20E中,房间2014中的活动内容已经停止。在一些实施例中,停止渲染的触发是将内容元素从一个源改变为另一源,诸如将视频流的频道从篮球比赛改变为电影;在一些实施例中,一旦传感器162检测到新的环境并且新的合成过程140开始,活动内容立即停止渲染。
在一些实施例中,例如,至少部分地基于用户从第一位置移动到第二位置,在第一位置中的第一表面上渲染和显示的内容可以被暂停,并随后在第二位置中的第二表面上恢复。例如,观看在第一位置(例如,起居室)中的第一表面上显示的内容的用户可以从第一位置物理地移动到第二位置(例如,厨房)。在确定(例如,基于传感器162)用户已经从第一位置物理地移动到第二位置时,可以暂停在第一位置中的第一表面上的内容的渲染和/或显示。一旦用户移动到第二位置,AR系统的传感器(例如,传感器162)可以检测到用户已经移动到新的环境/位置,并且环境解析器168可以开始识别第二位置中的新表面,并且然后可以在第二位置中的第二表面上恢复显示内容。在一些实施例中,当用户从第一位置移动到第二位置时,内容可以继续在第一位置中的第一表面上被渲染。一旦用户位于第二位置中,例如,经过阈值时间段(例如,30秒),内容就可以停止在第一位置中的第一表面上被渲染,而可以在第二位置中的第二表面上被渲染。在一些实施例中,可以在第一位置中的第一表面和第二位置中的第二表面上二者渲染内容。
在一些实施例中,响应于用户从第一位置物理地移动到第二位置,可以自动暂停在第一位置中的第一表面处渲染和/或显示内容。对用户的物理移动的检测可以触发内容的自动暂停,其中,用户的物理移动的触发可以至少部分地基于惯性测量单元(IMU)超过阈值或位置指示,该位置指示指示用户已经移动出或正在移动出(例如,GPS)例如可能与第一位置相关联的预定区域之外。一旦第二表面例如由环境解析器168识别并且与内容匹配,则内容可以在第二位置中的第二表面上自动恢复渲染和/或显示。在一些实施例中,内容可以至少部分地基于用户对第二表面的选择来恢复在第二表面上的渲染和/或显示。在一些实施例中,环境解析器168可以在特定时间表内(例如,每10秒)刷新以确定用户的视场内的表面是否已经改变和/或用户的物理位置是否已经改变。如果确定用户已经移动到新位置(例如,用户从第一位置移动到第二位置),则环境解析器168可以开始识别第二位置内的新表面用于恢复内容在第二表面上的渲染和/或显示。在一些实施例中,仅仅由于用户改变了视场(例如,用户短暂地看着第一位置中的另一个人以例如进行对话),在第一表面上渲染和/或显示的内容可能不会立即自动暂停。在一些实施例中,如果用户的改变视场超过阈值,则内容的渲染和/或显示可以被自动暂停。例如,如果用户改变头部姿势并且因此改变对应视场超过阈值一段时间,则内容的显示可以被自动暂停。在一些实施例中,内容可以响应于用户离开第一位置而在第一位置中的第一表面上自动暂停渲染和/或显示内容,并且内容可以响应于用户物理地(重新)进入第一位置而在第一位置中的第一表面上自动恢复渲染和/或显示。
在一些实施例中,随着用户和/或用户的头戴式设备的视场改变,特定表面上的内容可以缓慢地跟随用户的视场的改变。例如,内容可以在用户的直接视场内。如果用户改变视场,则内容可以改变位置以跟随视场改变。在一些实施例中,内容可能不会立即显示在改变视场的直接视场中的表面上。相反,相对于视场的改变,内容的改变可能存在轻微的延迟,其中,内容位置的改变可能看起来是缓慢地跟随视场的改变。
图20F-20I示出了在特定表面上显示的内容可以缓慢地跟随在当前观看该内容的用户的视场的改变的示例。在图20F中,用户1108在房间中的沙发以坐姿观看内容的空间化显示,该坐姿具有用户和/或用户的头戴式设备面向例如主墙壁1180的第一头部姿势。如图20F所示,内容的空间化显示通过第一头部姿势显示在主墙壁1180的第一位置(例如,矩形表面1182)处。图20G示出了用户1108在沙发上从坐姿变为卧姿,卧姿具有面向例如侧墙壁1184而不是主墙壁1180的第二头部姿势。在矩形表面1182上显示的内容可以继续在矩形表面1182处渲染/显示,直到已经达到/超过了时间阈值和/或头部姿势改变阈值。图20H示出了内容可以缓慢地跟随用户,即以小的离散的增量位置移动到与面向侧墙壁1185的第二头部姿势对应的新位置,而不是单个更新,并且看起来像在第一显示选项/表面2020处显示,例如,在用户1108已经从坐姿改变为卧姿之后的某个时间点之后(例如,在某个时间阈值之后)。第一显示选项/表面2020可以是与第二头部姿势对应的视场内的虚拟显示屏幕/表面,因为在用户1108的直接视场内没有可用的最佳表面。图20I示出了内容还可以在侧墙壁1184上的矩形表面1186处的第二显示选项/表面处显示。如上所述,在一些实施例中,可以向用户1108提供显示选项以基于用户1108的视场的改变选择哪些显示选项来显示内容(例如,第一显示选项2020或第二矩形表面1186)。
在一些实施例中,例如,用户可能正在观看在第一视场中显示在用户正前面的内容。用户可以将他们的头向左旋转90度,并保持第二视场约30秒钟。通过第一次相对于第一视场向第二视场移动30度以在经过一定的时间阈值(例如,5秒)后缓慢地跟随用户,从而在第一视场中显示在用户正前面的内容可以缓慢地跟随用户到第二视场。AR系统可以第二次将内容再移动30度以跟随用户到第二视场,使得内容现在仅在第二视场后面30度显示。
图20J-20N示出了根据一些实施例的内容缓慢地跟随用户从用户和/或用户的设备的第一视场到第二视场。图20J示出用户2030观看显示在表面(例如,物理环境中的虚拟表面或实际表面)上的内容2034的俯视图。用户2030正在观看内容2034,使得整个内容2034被显示在用户2030的正前面,并且完全在处于用户和/或用户的设备的第一头部姿势位置的用户2030和/或设备的第一视场2038内。图20K示出了用户2030作为示例相对于图20J所示的第一头部姿势位置向右(例如,沿顺时针方向)旋转大约45度的俯视图。内容2034的部分(例如,如虚线所示)不再位于用户2030和/或设备的视场内,而内容2034的部分(例如,如实线所示)仍渲染/显示给用户2030。
图20L示出了用户2030在完成在第二头部姿势位置相对于图20J所示的第一头部姿势位置向右旋转90度(例如,沿顺时针方向)时的俯视图。因为内容2034完全在用户2030和/或设备的视场2038的外部,所以内容2034对于用户2030不再可见(例如,如内容2034周围的虚线所示)。注意,内容2034也缓慢地移动。缓慢地移动涉及有关内容2034何时可以从图20J/20K中所示的其原始位置移动以跟上第二头部姿势位置以及移动多少的延迟。
图20M示出了内容2034已经缓慢地移动以显示在新位置处,使得内容2034的一部分(例如,如包围内容2034的一部分的实线所示)在处于第二头部姿势位置处的用户2030和/或设备的视场2038内。图20N示出了内容2034已经完成其缓慢移动以完全跟上用户的第二头部姿势位置。内容2034完全在用户2030和/或设备的视场2038内,如由包围整个内容2034的实线所示。本领域普通技术人员可以理解,尽管用户可能已经改变了视场,从第一视场到内容从其不再可见的第二视场,用户可能不希望直接在第二视场中显示内容。取而代之的是,用户可能希望内容缓慢地跟随用户到第二视场(例如,新视场),而不会显示在用户的正前面,直到例如系统提示用户选择是否用户希望相对于用户的第二视场将内容显示在用户的正前面,或者只是让用户可以在外围观看显示的内容,直到用户重新与用户可以在外围观看的显示的内容重新接入为止。换句话说,在一些实施例中,可以响应于用户的视场从第一视场改变到第二视场而移动内容/元素在一个或多个表面上的显示,其中,内容/元素缓慢地跟随用户的视场从第一视场改变到第二视场。此外,在一些实施例中,在接收到来自用户的确认以将内容移动为在第二视场的正前面时,内容可以仅移动为在第二视场的正前面。
在一些实施例中,内容(诸如,内容2034)跟随用户头部姿势位置的变化的速度为头部姿势速度的90%;在一些实施例中,跟随的速度低至50%。规定跟随速度所考虑的因素可以包括给定时间段内的变化量;例如,如果用户快速前后改变头部姿势,则跟随速度可以是头部姿势速度的10%,以免类似地随意地来回弹跳。在一些实施例中,旋转速度指示跟随速度。生理上的限制阻碍以特定扫视速度(眼睛移动的速度)进行有效的视觉观察;在一些实施例中,如果由用户设备上的IMU等传感器测量的旋转速度低于第一阈值,则跟随速度可以是第一跟随速度(例如头部姿势速度的70%),如果用户设备上的IMU等传感器测量的旋转速度低于第二阈值,则跟随速度可以是第二跟随速度(例如,头部姿势速度的50%或90%)。在一些实施例中,如果旋转速度太高,则跟随速度较低(例如50%),因为用户无论如何都不能有效地观看内容并为不可观察的内容节省渲染周期。在一些实施例中,跟随速度较高(例如90%),使得当头部姿势到达最终位置时,内容由于已经紧密跟踪该使用情况而已经接近最终位置,并更快地“追上”用户以恢复观察。
图20N-1和图20N-2描绘了以上在图20F-N中描述的跟随协议的变型。图20N-1描绘了通过显示器的第一视场20010,其中仅出于说明的目的,内容20010-1被设置在视场的左侧。在一些实施例中,内容20010-1在视场20010的中心。在用户将取向移动到视场20020时,内容20010-1经由路径20000跟随这样的取向变化到20020-1。
图20N-2更详细地描述了内容20010-1沿着路径20000到20020-1的转移。在一些实施例中,内容20010-1(示为A-1)在视场内被重定向到基于路径20000的转移取向。例如,重定向可以基于用户沿路径20000移动的速度或路径20000的大小。
在一些实施例中,内容的(沿着路径20000的移动而测量的)前缘相对于后缘在z方向上进一步远离用户进行偏移并且逐渐返回到均匀深度,后缘位于位置A-2处,后缘在该位置A-2处开始相对于用户进一步远离用户进行转移(如A-3)。
在一些实施例中,图20N-1和图20N-2中所描述的取向转移与图20F-N的“懒惰跟随(lazy follow)”的那些转移进行组合,从而创建内容跟随着用户取向变化的“软锁定”效果。
在一些实施例中,用户可以(a)观看经由AR系统显示给用户的提取的内容元素,并且(b)与提取的内容元素交互。在一些实施例中,用户可以通过购买在提取的内容内显示的项目/服务来与提取的内容进行交互。在一些实施例中,类似于与2D网页交互的用户进行的在线购买,AR系统可以允许用户与显示在AR系统内的表面和/或虚拟对象(例如,棱镜或虚拟显示屏幕)上的提取的内容进行交互,以例如电子购买在AR系统的表面和/或虚拟对象上显示的提取的内容内呈现的项目和/或服务。
在一些实施例中,用户可以通过进一步选择显示的内容元素内的项目并将所选择的项目放置在用户的物理环境内的不同表面和/或不同的虚拟对象(例如,棱镜)上来与提取的内容元素进行交互。例如,通过例如(a)用图腾瞄准画廊中的内容元素、(b)按下图腾上的触发器以选择内容元素并保持一段时间(例如,大约1秒)、(c)将图腾四处移动到用户的物理环境中的期望位置、以及(d)按下图腾上的触发器以将内容元素放置在期望位置处,用户可以从画廊中提取诸如图像、视频和/或模型之类的内容元素,其中,内容元素的副本被加载并显示在期望位置处。在一些实施例中,作为用户选择内容元素并将触发器保持一段时间的结果,创建并显示内容元素的预览作为视觉反馈,创建内容的预览是因为创建内容元素的全分辨率版本用于放置内容元素可能会消耗更大资源。在一些实施例中,当用户将提取的内容元素放置在用户的物理环境中的期望位置中时,整个内容元素被复制/提取并显示以用于视觉反馈。
图20O示出了用户观看提取的内容并与提取的内容2050和2054交互的示例。用户2040可能正在观看虚拟显示表面上提取的内容2044a-2044d,因为传感器1162无法检测到合适的用于显示提取的内容的显示表面(例如,由于书架)。相反,提取的内容2044a-d被显示在多个虚拟显示表面/屏幕上。提取的内容2044a是销售音频耳机的在线网站。提取的内容2044b是销售运动鞋的在线网站。提取的内容2044c/2044d是销售家具的在线家具网站。提取的内容2044d可以包括从提取的内容2044c显示的特定项目(例如,椅子2054)的详细视图。用户2040可以通过从显示的提取的内容中选择特定项目并将提取的项目放置在用户的物理环境(例如,椅子2054)中来与提取的内容进行交互。在一些实施例中,用户2040可以通过购买在提取的内容中显示的特定项目(例如,运动鞋2050)来与提取的内容进行交互。
如图20O所示,第一内容显示可以刺激附加的提取内容的显示。在一些实施例中,最初显示提取内容2044c,然后可以进一步在附近显示2044c内的相关内容,诸如相关的提取内容2044d的级联视图,而无需用户明确地打开单独的窗口来显示这种内容。换句话说,提取内容2044c可以显示,并且2044c内的活动内容(例如,链接或图像)可以以相对于提取内容2044c的空间关系进行显示。在一些实施例中,相关的提取内容(例如,相关的提取内容2044d)被显示在虚拟表面上,并且被赋予代理属性配置文件,该代理属性配置文件将提取内容2044c的至少一个属性强加到相关的提取内容2044d的属性中。例如,相关的提取内容2044d可以被赋予与提取内容2044c相同的取向,而不是被解析为其自身的表面或虚拟表面取向。在一些实施例中,相关的提取内容2044d基于其自身的属性而被解析和匹配,而与提取内容2044c的属性无关。
在一些实施例中,关于初始内容的相关内容的显示是自动的,并且仅继续到第一关系层(意味着相关内容仅是出现在初始内容中的内容)。在一些实施例中,相关内容可以以初始内容的共同属性进行显示,或者可以以它自己的解析和匹配的属性进行显示。在一些实施例中,相关内容的显示包括附加层,诸如与相关内容有关的内容的显示;这样的附加层可以以初始内容或第一相关内容的共同属性进行显示,或者可以以其自己的解析和匹配的属性进行显示。在一些实施例中,从初始内容中移除的附加层可以反映在关系属性中。关系属性可以使该内容的显示按比例缩放到与该层的倒数相对应的大小(例如,作为从初始内容移除的三层的内容可以显示为初始内容的大小的三分之一)。关系属性可以引起位置关系,使得相关内容的每一层都在x、y或z维度上在相对于初始内容的特定相对位置处进行渲染和显示,以显示该相关内容相对于初始内容的衰减。
在一些实施例中,相关内容的显示与初始内容的显示是持久的,或者仅在用户选择预览功能或将注意力转移到初始内容上(诸如通过头部姿势、眼睛凝视、手势和/或控制器取向)时出现。
图21示出了在这种环境改变期间的音频转移。房间2014中的活动内容可以具有虚拟扬声器2122,该虚拟扬声器2122例如从与房间2014中的内容元素相关联的位置向用户传递空间化的音频。随着用户转移到房间2012,虚拟扬声器可以通过以下来跟随用户:定位和引导音频到用户头部中心中的虚拟扬声器2124(与传统的耳机的方式几乎相同)并停止来自虚拟扬声器2122的音频播放。当合成过程140将内容元素匹配到房间2012中的表面时,音频输出可以从虚拟扬声器2124转移到虚拟扬声器2126。在这种情况下,音频输出在环境转移期间保持内容元素的恒定消耗,至少是音频输出分量。在一些实施例中,音频组件始终是用户头部中心中的虚拟扬声器,从而无需调整空间化音频虚拟扬声器的位置。
系统架构概述
图22是适合于实现本公开的实施例的说明性计算系统2200的框图。计算系统2200包括用于传送信息的总线2206或其他通信机制,其互连子系统和设备,诸如处理器2207、系统存储器2208(例如,RAM)、静态存储设备2209(例如,ROM)、磁盘驱动器2210(例如,磁性或光学)、通信接口2214(例如,调制解调器或以太网卡)、显示器2211(例如,CRT或LCD)、输入设备2212(例如,键盘和鼠标)。
根据本公开的一个实施例,计算系统2200通过处理器2207执行包含在系统存储器2208中的一个或多个指令的一个或多个序列来执行特定操作。这些指令可以从另一计算机可读/可用介质(诸如静态存储设备2209或磁盘驱动器2210)读取到系统存储器2208中。在替代实施例中,可以使用硬连线电路代替软件指令或与软件指令结合来实现本公开。因此,本公开的实施例不限于硬件电路和/或软件的任何特定组合。在一个实施例中,术语“逻辑”应表示用于实现本公开的全部或部分的软件或硬件的任何组合。
这里使用的术语“计算机可读介质”或“计算机可用介质”是指参与向处理器2207提供指令以供执行的任何介质。这样的介质可以采取许多形式,包括但不限于非易失性介质和易失性介质。非易失性介质包括例如光盘或磁盘,诸如磁盘驱动器2210。易失性介质包括动态存储器,诸如系统存储器2208。
计算机可读介质的常见形式包括例如软盘、柔性盘、硬盘、磁带、任何其他磁介质、CD-ROM、任何其他光学介质、打孔卡、纸带、带有孔图案的任何其他物理介质、RAM、PROM、EPROM、FLASH-EPROM、任何其他内存芯片或盒式磁带、或计算机可以从中读取的任何其他介质。
在本公开的实施例中,由单个计算系统2200执行用于实践本公开的指令序列的执行。根据本公开的其他实施例,通过通信链路2215(例如,LAN、PTSN或无线网络)耦合的两个或更多个计算系统2200可以彼此协作地执行实践本公开所需的指令序列。
计算系统2200可以通过通信链路2215和通信接口2214发送和接收消息、数据和指令,包括程序(即,应用代码)。所接收的程序代码可以在它被接收时由处理器2207执行,和/或存储在磁盘驱动器2210或其他非易失性存储设备中以供以后执行。计算系统2200可以通过数据接口2233与外部存储设备2231上的数据库2232通信。
图23描绘了根据一些实施例的用于将内容的显示调整为以用户视场为中心的模式的方法2300。方法2300开始于2310,其中在第一表面上向用户显示内容。这样的第一表面可以是虚拟表面或物理表面。在2320,系统检测调整内容的触发事件。在一些实施例中,触发事件是用户或用户设备的运动。当用户移动时,在2320处,本文描述的系统的传感器(例如,传感器162)检测运动,该运动是在一定持续时间内在平移或旋转方向上的持续运动或连续运动,或者使在持续时间内的至少一个振幅波动。在一些实施例中,触发是内容驱动的并且由内容的属性提供。在检测到触发之后,在2330,将内容的显示调整到用户视场内以用户为中心的虚拟表面。
在前述说明书中,已经参考本公开的具体实施例描述了本公开。然而,将显而易见的是,在不脱离本公开的更广泛的精神和范围的情况下,可以对其进行各种修改和改变。例如,参考处理动作的特定顺序来描述上述过程流。然而,在不影响本公开的范围或操作的情况下,可以改变许多所描述的处理动作的顺序。因此,说明书和附图应被认为是说明性而非限制性的。

Claims (20)

1.一种用于向用户显示虚拟内容的方法,包括:
由可穿戴显示设备在处于第一位置或第一姿势的所述用户的第一视场内显示所述虚拟内容的表示;
检测从所述用户的所述第一位置到所述用户的第二位置或从所述用户的所述第一姿势到所述用户的第二姿势的时间段内的变化,所述变化导致所述用户的从所述第一视场到第二视场的视图变化;
响应于所述用户的所述第一位置或所述第一姿势的所述变化,向处于所述第二位置或所述第二姿势的所述用户继续所述虚拟内容的所述表示;
确定是在所述用户所处的环境中的物理表面上还是在用于所述第二视场的虚拟表面上显示所述第二视场中的所述虚拟内容;
识别用于所述第一视场的第一数量的表面;
识别用于所述第二视场的第二数量的表面;以及
确定多个显示选项作为用于向所述用户显示所述虚拟内容的交互元素。
2.根据权利要求1所述的方法,还包括:
接收对应于从所述多个显示选项中选择显示选项的指令;以及
至少部分地基于所述显示选项的选择,向所述用户渲染所述第二视场内的所述虚拟内容。
3.根据权利要求2所述的方法,还包括:将所述多个显示选项显示为所述用户的所述第二视场内的图形元素。
4.根据权利要求1所述的方法,还包括:
识别由所述可穿戴显示设备捕获的针对与所述第二视场有关的所述环境的一部分的图像;
根据所述图像确定一组点;
在所述一组点之间重构一组连接点;
至少部分地基于所述一组连接点,创建表示所述环境的所述部分的虚拟网格;以及
至少部分地基于所述虚拟网格的一个或多个属性,使用平面提取或分析来确定所述环境的所述部分中的一个或多个表面。
5.根据权利要求4所述的方法,还包括:
至少部分地基于所述可穿戴显示设备的惯性数据或所述图像,确定与所述用户的姿势或者与所述用户的所述第一姿势或所述第二姿势的变化率有关的姿势数据;
至少部分地基于所述姿势数据,将所述一个或多个表面与一个或多个相应的表面属性相关联;
识别所述虚拟内容中的一个或多个内容元素;以及
至少部分地基于所述一个或多个相应的表面属性和虚拟内容或所述一个或多个内容元素的一个或多个内容属性,将所述一个或多个内容元素与所述一个或多个表面中的至少一个表面匹配。
6.根据权利要求5所述的方法,其中,将所述一个或多个内容元素与所述一个或多个表面中的至少一个表面匹配还包括:
确定所述一个或多个内容元素中的内容元素是否包括用于显示所述内容元素的提示;
确定是否使用所述提示或一组规则来将所述一个或多个内容元素匹配或映射到所述至少一个表面;
至少部分地基于所述一个或多个内容元素,分析所述提示和逻辑结构中的一个或多个候选表面;
确定所述逻辑结构中的候选表面作为用于所述一个或多个内容元素的所述至少一个表面;以及
存储与所述至少一个表面和所述一个或多个内容元素有关的匹配结果。
7.根据权利要求5所述的方法,其中,将所述一个或多个内容元素与所述一个或多个表面中的至少一个表面匹配还包括:
至少通过执行内容结构化过程来确定所述一个或多个内容元素;
确定分别与所述一个或多个内容元素有关的优先级;
至少部分基于所述优先级,对所述一个或多个内容元素进行排序;
至少部分地基于将所述内容元素的多个内容元素属性与所述表面的至少一个表面属性进行比较的结果,确定用于一对内容元素和表面的匹配分数;
针对所述一个或多个内容元素中的至少一个内容元素和所述一个或多个表面中的至少一个候选表面的多个组合中的每一个组合,确定相应的总计匹配分数;以及
至少部分地基于总计匹配分数,从所述一个或多个表面中确定所述至少一个表面。
8.根据权利要求7所述的方法,其中,将所述一个或多个内容元素与所述一个或多个表面中的至少一个表面匹配还包括:
至少部分地基于所述相应的总计匹配分数,确定是在所述用户所处的所述环境中的所述物理表面上还是在针对所述第二视场的所述虚拟表面上显示所述第二视场中的所述虚拟内容;以及
解决所述一个或多个内容元素与所述一个或多个表面之间的映射之间的一个或多个冲突。
9.根据权利要求1所述的方法,其中,显示所述虚拟内容包括:
响应于接收到响应于所检测的变化来调整所述表示的指令,确定所述第一视场内的所述虚拟内容的至少一部分;
将所述虚拟内容的所述至少一部分从所述第一视场移交到所述第二视场,以在所述第二视场内继续所述虚拟内容的所述至少一部分的所述表示;以及
至少部分地基于在所述第二视场中继续所述虚拟内容的所述至少一部分,修改所述第一视场内的至少所述虚拟内容的所述表示的状态。
10.根据权利要求9所述的方法,其中,显示所述虚拟内容还包括:
修改所述状态,其包括:将所述第一视场内的所述虚拟内容的所述至少一部分的所述表示的帧速率改变为改变后的帧速率,其中,改变所述帧速率包括:暂停或停止所述第一视场内的所述虚拟内容的所述至少一部分的所述表示。
11.一种非暂时性计算机可读介质,在其上存储有指令序列,所述指令序列在由微处理器执行时使所述微处理器执行一组动作,所述一组动作包括:
由可穿戴显示设备在处于第一位置或第一姿势的用户的第一视场内显示虚拟内容的表示;
检测从所述用户的所述第一位置到所述用户的第二位置或从所述用户的所述第一姿势到所述用户的第二姿势的变化,所述变化导致所述用户的从所述第一视场到第二视场的视图变化;
响应于所述用户的所述第一位置或所述第一姿势的所述变化,向处于所述第二位置或所述第二姿势的所述用户继续所述虚拟内容的所述表示;
确定是在所述用户所处的环境中的物理表面上还是在用于所述第二视场的虚拟表面上显示所述第二视场中的所述虚拟内容;
识别用于所述第一视场的第一数量的表面;
识别用于所述第二视场的第二数量的表面;以及
确定多个显示选项作为用于向所述用户显示所述虚拟内容的交互元素。
12.根据权利要求11所述的非暂时性计算机可读介质,所述一组动作还包括:
接收对应于从所述多个显示选项中选择显示选项的指令;以及
至少部分地基于所述显示选项的选择,向所述用户渲染所述虚拟内容。
13.根据权利要求12所述的非暂时性计算机可读介质,其中,至少部分地基于所述第一数量和所述第二数量两者来确定所述显示选项的数量,并且至少部分地仅基于所述第一数量但不是所述第二数量来确定所述显示选项的数量。
14.根据权利要求12所述的非暂时性计算机可读介质,所述一组动作还包括:
确定所选择的显示选项是对应于所述第一视场还是所述第二视场;
当所述显示选项对应于所述第一视场而所述用户具有所述第二视场时,向所述用户显示用于导航回到所述第一视场的图形或文本指示;
从用于所述第二视场的所述第二数量的表面中确定推荐表面;以及
向所述用户提供将所述虚拟内容从所述第一视场移动到所述第二视场的选项,其中,所述用户在所述第二位置具有第二姿势,并且所述第一姿势与所述第二姿势之间的姿势变化比姿势变化阈值更大。
15.根据权利要求14所述的非暂时性计算机可读介质,所述一组动作还包括:
至少部分地基于所述虚拟内容的显示属性,改变所述推荐表面的至少一部分的颜色,其中,
所述推荐表面包括所述物理表面,并且改变所述颜色包括:针对所述推荐表面的所述至少一部分生成虚拟表面部分;
确定用于所述虚拟内容的内容颜色模式;
确定用于至少具有所述推荐表面的所述环境的真实世界颜色模式;以及
至少部分地基于所述虚拟内容的至少一部分的可读性指标属性和所述真实世界颜色模式,调整所述内容颜色模式。
16.根据权利要求12所述的非暂时性计算机可读介质,所述一组动作还包括:
至少部分地基于与所述虚拟内容的至少一部分相关联的表面类型属性,确定推荐表面;以及
在所述推荐表面的类型不满足与所述虚拟内容的所述至少一部分相关联的所述表面类型属性时,在所述推荐表面上显示所述虚拟内容的剩余部分而不在所述推荐表面上显示所述虚拟内容的所述至少一部分。
17.一种用于向用户显示虚拟内容的系统,包括:
可穿戴显示设备,其显示虚拟内容;
处理器;
存储器,其用于保存可由所述处理器执行的可编程代码,其中,所述可编程代码包括指令,在所述指令由所述处理器执行时使所述处理器执行一组动作,所述一组动作包括:
由可穿戴显示设备在处于第一位置或第一姿势的用户的第一视场内显示虚拟内容的表示;
检测从所述用户的所述第一位置到所述用户的第二位置或从所述用户的所述第一姿势到所述用户的第二姿势的时间段内的变化,所述变化导致所述用户的从所述第一视场到第二视场的视图变化;响应于所述用户的所述第一位置或所述第一姿势的所述变化,向处于所述第二位置或所述第二姿势的所述用户继续所述虚拟内容的所述表示;
确定是在所述用户所处的环境中的物理表面上还是在用于所述第二视场的虚拟表面上显示所述第二视场中的所述虚拟内容;
识别用于所述第一视场的第一数量的表面;
识别用于所述第二视场的第二数量的表面;以及
确定多个显示选项作为用于向所述用户显示所述虚拟内容的交互元素。
18.根据权利要求17所述的系统,其中,所述一组动作还包括:
接收对应于从所述多个显示选项中选择显示选项的指令;以及
至少部分地基于所述显示选项的选择,向所述用户渲染所述虚拟内容。
19.根据权利要求17所述的系统,其中,所述一组动作还包括:
识别由所述可穿戴显示设备捕获的针对与所述第二视场有关的所述环境的一部分的图像;
根据所述图像确定一组点;
在所述一组点之间重构一组连接点;
至少部分地基于所述一组连接点,创建表示所述环境的所述部分的虚拟网格;以及
至少部分地基于所述虚拟网格的一个或多个属性,使用平面提取或分析来确定所述环境的所述部分中的一个或多个表面。
20.根据权利要求17所述的系统,所述一组动作还包括:
响应于接收到响应于所检测的变化来调整所述表示的指令,确定所述第一视场内的所述虚拟内容的至少一部分;
将所述虚拟内容的所述至少一部分从所述第一视场移交到所述第二视场,以在所述第二视场内继续所述虚拟内容的所述至少一部分的所述表示;以及
至少部分地基于在所述第二视场中继续所述虚拟内容的所述至少一部分,修改所述第一视场内的至少所述虚拟内容的所述表示的状态;
修改所述状态包括:将所述第一视场内的所述虚拟内容的所述至少一部分的所述表示的帧速率改变为改变后的帧速率,其中,改变所述帧速率包括:暂停或停止所述第一视场内的所述虚拟内容的所述至少一部分的所述表示。
CN202211225067.6A 2018-06-05 2019-06-04 用于向用户显示虚拟内容的系统和方法 Active CN115601671B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211225067.6A CN115601671B (zh) 2018-06-05 2019-06-04 用于向用户显示虚拟内容的系统和方法

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201862681043P 2018-06-05 2018-06-05
US62/681,043 2018-06-05
US201862688936P 2018-06-22 2018-06-22
US62/688,936 2018-06-22
CN201980037197.7A CN112219205B (zh) 2018-06-05 2019-06-04 内容到空间3d环境的匹配
CN202211225067.6A CN115601671B (zh) 2018-06-05 2019-06-04 用于向用户显示虚拟内容的系统和方法
PCT/US2019/035375 WO2019236568A1 (en) 2018-06-05 2019-06-04 Matching content to a spatial 3d environment

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201980037197.7A Division CN112219205B (zh) 2018-06-05 2019-06-04 内容到空间3d环境的匹配

Publications (2)

Publication Number Publication Date
CN115601671A CN115601671A (zh) 2023-01-13
CN115601671B true CN115601671B (zh) 2024-03-19

Family

ID=68694232

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202211225067.6A Active CN115601671B (zh) 2018-06-05 2019-06-04 用于向用户显示虚拟内容的系统和方法
CN201980037197.7A Active CN112219205B (zh) 2018-06-05 2019-06-04 内容到空间3d环境的匹配

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201980037197.7A Active CN112219205B (zh) 2018-06-05 2019-06-04 内容到空间3d环境的匹配

Country Status (5)

Country Link
US (3) US11043193B2 (zh)
EP (1) EP3803688A4 (zh)
JP (2) JP7136931B2 (zh)
CN (2) CN115601671B (zh)
WO (1) WO2019236568A1 (zh)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10930049B2 (en) * 2018-08-27 2021-02-23 Apple Inc. Rendering virtual objects with realistic surface properties that match the environment
US11620794B2 (en) * 2018-12-14 2023-04-04 Intel Corporation Determining visually reflective properties of physical surfaces in a mixed reality environment
US10997630B2 (en) * 2018-12-20 2021-05-04 Rovi Guides, Inc. Systems and methods for inserting contextual advertisements into a virtual environment
US10810782B1 (en) * 2019-04-01 2020-10-20 Snap Inc. Semantic texture mapping system
US11804014B1 (en) * 2019-04-22 2023-10-31 Apple Inc. Context-based application placement
US11468611B1 (en) * 2019-05-16 2022-10-11 Apple Inc. Method and device for supplementing a virtual environment
US11494953B2 (en) * 2019-07-01 2022-11-08 Microsoft Technology Licensing, Llc Adaptive user interface palette for augmented reality
US11132827B2 (en) * 2019-09-19 2021-09-28 Facebook Technologies, Llc Artificial reality system architecture for concurrent application execution and collaborative 3D scene rendering
JP2021051497A (ja) * 2019-09-24 2021-04-01 東芝テック株式会社 情報処理装置及びプログラム
US20230012929A1 (en) * 2019-12-17 2023-01-19 Rhizomenet Pty. Ltd. Message distribution service
US11550446B2 (en) 2020-04-06 2023-01-10 Samsung Electronics Co., Ltd. Systems and methods for viewing webpages in extended reality environments
US11755275B2 (en) * 2020-06-29 2023-09-12 Meta Platforms Technologies, Llc Generating augmented reality experiences utilizing physical objects to represent analogous virtual objects
US11302063B2 (en) 2020-07-21 2022-04-12 Facebook Technologies, Llc 3D conversations in an artificial reality environment
CN112153319B (zh) * 2020-09-02 2023-02-24 芋头科技(杭州)有限公司 基于视频通信技术的ar信息显示方法和装置
WO2022066361A1 (en) * 2020-09-23 2022-03-31 Sterling Labs Llc Transposing virtual objects between viewing arrangements
JP2024507749A (ja) 2021-02-08 2024-02-21 サイトフル コンピューターズ リミテッド エクステンデッドリアリティにおけるコンテンツ共有
EP4288950A1 (en) 2021-02-08 2023-12-13 Sightful Computers Ltd User interactions in extended reality
US20220270312A1 (en) * 2021-02-19 2022-08-25 Apple Inc. Perspective correct vector graphics rendering techniques
US11640700B2 (en) * 2021-02-26 2023-05-02 Huawei Technologies Co., Ltd. Methods and systems for rendering virtual objects in user-defined spatial boundary in extended reality environment
US11417054B1 (en) * 2021-03-17 2022-08-16 Facebook Technologies, Llc. Mixed reality objects in virtual reality environments
JP7499945B2 (ja) 2021-03-25 2024-06-14 京セラ株式会社 ウェアラブル端末装置、プログラムおよび表示方法
US20220319124A1 (en) * 2021-03-31 2022-10-06 Snap Inc. Auto-filling virtual content
US11568579B2 (en) * 2021-04-01 2023-01-31 Edx Technologies, Inc. Augmented reality content generation with update suspension
US20220340029A1 (en) * 2021-04-26 2022-10-27 Volta Charging, Llc Systems and methods for determining a position of an individual relative to an electric vehicle charging station using cameras
JP7550313B2 (ja) 2021-06-25 2024-09-12 京セラ株式会社 ウェアラブル端末装置、プログラム、表示方法および仮想画像配信システム
US12099327B2 (en) 2021-06-28 2024-09-24 Meta Platforms Technologies, Llc Holographic calling for artificial reality
US11521361B1 (en) 2021-07-01 2022-12-06 Meta Platforms Technologies, Llc Environment model with surfaces and per-surface volumes
US20230045759A1 (en) * 2021-08-04 2023-02-09 Meta Platforms Technologies, Llc 3D Calling Affordances
US12056268B2 (en) 2021-08-17 2024-08-06 Meta Platforms Technologies, Llc Platformization of mixed reality objects in virtual reality environments
US20230092103A1 (en) * 2021-09-21 2023-03-23 Meta Platforms Technologies, Llc Content linking for artificial reality environments
US20230086248A1 (en) * 2021-09-21 2023-03-23 Meta Platforms Technologies, Llc Visual navigation elements for artificial reality environments
US11748944B2 (en) 2021-10-27 2023-09-05 Meta Platforms Technologies, Llc Virtual object structures and interrelationships
US20230171395A1 (en) * 2021-11-23 2023-06-01 Isabella H. Schwartz System and method for smart tv anywhere
US11682180B1 (en) * 2021-12-09 2023-06-20 Qualcomm Incorporated Anchoring virtual content to physical surfaces
US11676329B1 (en) 2022-01-07 2023-06-13 Meta Platforms Technologies, Llc Mobile device holographic calling with front and back camera capture
US12093447B2 (en) 2022-01-13 2024-09-17 Meta Platforms Technologies, Llc Ephemeral artificial reality experiences
US12026527B2 (en) 2022-05-10 2024-07-02 Meta Platforms Technologies, Llc World-controlled and application-controlled augments in an artificial-reality environment
US20230377279A1 (en) * 2022-05-19 2023-11-23 Disney Enterprises, Inc. Space and content matching for augmented and mixed reality
WO2023233488A1 (ja) * 2022-05-30 2023-12-07 マクセル株式会社 情報処理装置および情報処理方法
KR102525318B1 (ko) * 2022-07-29 2023-04-25 팜피 주식회사 2d 및 3d 콘텐츠를 동시에 제작하기 위한 방법 및 이를 위한 융합형 제작장치
WO2024043611A1 (ko) * 2022-08-26 2024-02-29 삼성전자주식회사 디스플레이 모듈 제어 방법 및 상기 방법을 수행하는 전자 장치
US12079442B2 (en) * 2022-09-30 2024-09-03 Sightful Computers Ltd Presenting extended reality content in different physical environments
JP7327851B1 (ja) * 2022-11-09 2023-08-16 Tradfit株式会社 情報処理方法、プログラム及び情報処理装置
CN115509017B (zh) * 2022-11-21 2023-05-23 蔚来汽车科技(安徽)有限公司 增强现实眼镜和利用增强现实眼镜来实现显示增强的方法
CN117891352B (zh) * 2024-03-14 2024-05-31 南京市文化投资控股集团有限责任公司 一种基于元宇宙的文旅内容推荐系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103123578A (zh) * 2011-12-07 2013-05-29 微软公司 将虚拟数据显示为打印的内容
CN106716306A (zh) * 2014-09-30 2017-05-24 索尼互动娱乐股份有限公司 将多个头戴式显示器同步到统一空间并且使统一空间中的对象移动关联
CN107111365A (zh) * 2014-12-22 2017-08-29 国际商业机器公司 将虚拟空间中呈现的应用与物理显示器进行选择性配对
CN107533230A (zh) * 2015-03-06 2018-01-02 索尼互动娱乐股份有限公司 头戴式显示器用追踪系统

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120188148A1 (en) 2011-01-24 2012-07-26 Microvision, Inc. Head Mounted Meta-Display System
JP5852311B2 (ja) 2011-02-02 2016-02-03 株式会社日立国際電気 音声フレームのタイミング補正方法及び無線機
US9430876B1 (en) * 2012-05-10 2016-08-30 Aurasma Limited Intelligent method of determining trigger items in augmented reality environments
US9671566B2 (en) 2012-06-11 2017-06-06 Magic Leap, Inc. Planar waveguide apparatus with diffraction element(s) and system employing same
US9619911B2 (en) 2012-11-13 2017-04-11 Qualcomm Incorporated Modifying virtual object display properties
US20150277699A1 (en) * 2013-04-02 2015-10-01 Cherif Atia Algreatly Interaction method for optical head-mounted display
US9245388B2 (en) * 2013-05-13 2016-01-26 Microsoft Technology Licensing, Llc Interactions of virtual objects with surfaces
US10262462B2 (en) 2014-04-18 2019-04-16 Magic Leap, Inc. Systems and methods for augmented and virtual reality
US9329682B2 (en) 2013-06-18 2016-05-03 Microsoft Technology Licensing, Llc Multi-step virtual object selection
US10175483B2 (en) * 2013-06-18 2019-01-08 Microsoft Technology Licensing, Llc Hybrid world/body locked HUD on an HMD
US9129430B2 (en) 2013-06-25 2015-09-08 Microsoft Technology Licensing, Llc Indicating out-of-view augmented reality images
US9952042B2 (en) * 2013-07-12 2018-04-24 Magic Leap, Inc. Method and system for identifying a user location
US9361733B2 (en) * 2013-09-02 2016-06-07 Lg Electronics Inc. Portable device and method of controlling therefor
WO2015054562A1 (en) 2013-10-11 2015-04-16 Interdigital Patent Holdings, Inc. Gaze-driven augmented reality
US9361732B2 (en) * 2014-05-01 2016-06-07 Microsoft Technology Licensing, Llc Transitions between body-locked and world-locked augmented reality
US9430038B2 (en) * 2014-05-01 2016-08-30 Microsoft Technology Licensing, Llc World-locked display quality feedback
CN112651288B (zh) * 2014-06-14 2022-09-20 奇跃公司 用于产生虚拟和增强现实的方法和系统
CN107239213A (zh) * 2014-12-31 2017-10-10 华为终端(东莞)有限公司 屏幕显示控制方法及移动终端
US10156721B2 (en) 2015-03-09 2018-12-18 Microsoft Technology Licensing, Llc User-based context sensitive hologram reaction
US10306292B2 (en) * 2015-03-24 2019-05-28 Unity IPR ApS Method and system for transitioning between a 2D video and 3D environment
US10021064B2 (en) * 2015-05-14 2018-07-10 Honeywell International Inc. Apparatus and method for translating industrial process control and automation system events into mobile notifications
CN107683497B (zh) 2015-06-15 2022-04-08 索尼公司 信息处理设备、信息处理方法及程序
US9652897B2 (en) 2015-06-25 2017-05-16 Microsoft Technology Licensing, Llc Color fill in an augmented reality environment
EP3113106A1 (en) * 2015-07-02 2017-01-04 Nokia Technologies Oy Determination of environmental augmentation allocation data
US10559130B2 (en) * 2015-08-31 2020-02-11 Microsoft Technology Licensing, Llc Displaying image data behind surfaces
AU2016341196B2 (en) 2015-10-20 2021-09-16 Magic Leap, Inc. Selecting virtual objects in a three-dimensional space
NZ749449A (en) 2016-06-30 2023-06-30 Magic Leap Inc Estimating pose in 3d space
CA3033344A1 (en) 2016-08-11 2018-02-15 Magic Leap, Inc. Automatic placement of a virtual object in a three-dimensional space
CN106445104A (zh) * 2016-08-25 2017-02-22 蔚来汽车有限公司 车用hud显示系统及方法
KR102246841B1 (ko) 2016-10-05 2021-05-03 매직 립, 인코포레이티드 표면 모델링 시스템들 및 방법들
CN106604130A (zh) * 2016-12-03 2017-04-26 西安科锐盛创新科技有限公司 一种基于视线追踪的视频播放方法
CN111133365B (zh) 2017-05-01 2023-03-31 奇跃公司 内容到空间3d环境的匹配
WO2019079826A1 (en) * 2017-10-22 2019-04-25 Magical Technologies, Llc DIGITAL ASSISTANT SYSTEMS, METHODS AND APPARATUSES IN AN INCREASED REALITY ENVIRONMENT AND LOCAL DETERMINATION OF VIRTUAL OBJECT PLACEMENT AND SINGLE OR MULTIDIRECTIONAL OBJECTIVES AS GATEWAYS BETWEEN A PHYSICAL WORLD AND A DIGITAL WORLD COMPONENT OF THE SAME ENVIRONMENT OF INCREASED REALITY
AU2018383539A1 (en) * 2017-12-14 2020-06-18 Magic Leap, Inc. Contextual-based rendering of virtual avatars
CN107977586B (zh) * 2017-12-22 2021-04-13 联想(北京)有限公司 显示内容处理方法、第一电子设备以及第二电子设备
US11086474B2 (en) * 2018-04-09 2021-08-10 Spatial Systems Inc. Augmented reality computing environments—mobile device join and load

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103123578A (zh) * 2011-12-07 2013-05-29 微软公司 将虚拟数据显示为打印的内容
CN106716306A (zh) * 2014-09-30 2017-05-24 索尼互动娱乐股份有限公司 将多个头戴式显示器同步到统一空间并且使统一空间中的对象移动关联
CN107111365A (zh) * 2014-12-22 2017-08-29 国际商业机器公司 将虚拟空间中呈现的应用与物理显示器进行选择性配对
CN107533230A (zh) * 2015-03-06 2018-01-02 索尼互动娱乐股份有限公司 头戴式显示器用追踪系统

Also Published As

Publication number Publication date
US12039221B2 (en) 2024-07-16
US11043193B2 (en) 2021-06-22
JP2021527247A (ja) 2021-10-11
CN112219205A (zh) 2021-01-12
CN112219205B (zh) 2022-10-25
JP7136931B2 (ja) 2022-09-13
CN115601671A (zh) 2023-01-13
JP2022177059A (ja) 2022-11-30
EP3803688A1 (en) 2021-04-14
US20210272537A1 (en) 2021-09-02
WO2019236568A1 (en) 2019-12-12
US20190371279A1 (en) 2019-12-05
US11645034B2 (en) 2023-05-09
US20230229381A1 (en) 2023-07-20
JP7549630B2 (ja) 2024-09-11
EP3803688A4 (en) 2021-08-04

Similar Documents

Publication Publication Date Title
CN115601671B (zh) 用于向用户显示虚拟内容的系统和方法
CN111133365B (zh) 内容到空间3d环境的匹配
US11087563B2 (en) Object creation with physical manipulation
CN111758122A (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
GR01 Patent grant
GR01 Patent grant