CN111801641A - 采用物理操纵的对象创建 - Google Patents

采用物理操纵的对象创建 Download PDF

Info

Publication number
CN111801641A
CN111801641A CN201980014588.7A CN201980014588A CN111801641A CN 111801641 A CN111801641 A CN 111801641A CN 201980014588 A CN201980014588 A CN 201980014588A CN 111801641 A CN111801641 A CN 111801641A
Authority
CN
China
Prior art keywords
user
interactable object
user interaction
interactable
content
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980014588.7A
Other languages
English (en)
Inventor
T·楚尔默勒
A·I·蒙托亚
R·J·C·麦克唐纳
S·格罗斯
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
Publication of CN111801641A publication Critical patent/CN111801641A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1684Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
    • G06F1/1694Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675 the I/O peripheral being a single or a set of motion sensors for pointer control or gesture input obtained by sensing movements of the portable computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • 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/016Input arrangements with force or tactile feedback as computer generated output to the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2004Aligning objects, relative positioning of parts

Abstract

描述了用于在3D混合现实环境中导航和操纵可交互对象的改进的系统和方法。提供了以实现用于创建和放置诸如浏览器窗口和壁挂的可交互对象的物理操纵的改进的系统和方法。方法包括在用户交互的开始时接收指示对在第一棱柱内包含的可交互对象的选择的数据。方法还包括接收指示与可交互对象的用户交互的结束的数据。方法进一步包括:接收指示在用户交互的开始和结束之间与从第一棱柱移除可交互对象对应的用户的身体运动的数据。此外,方法包括在与可交互对象的用户交互的结束时创建第二棱柱以包含与可交互对象相关联的数据。

Description

采用物理操纵的对象创建
相关申请的交叉引用
本公开要求于2018年2月22日提交的题为“Window Creation With PhysicalManipulation(采用物理操纵的窗口创建)”的美国临时申请No.62/634,007;以及于2018年5月1日提交的题为“Object Creation With Physical Manipulation(采用物理操纵的对象创建)”的美国临时申请No.62/665,251的优先权。本公开涉及于2017年5月1日提交的题为“Spatially Deconstructed Browser(空间结构浏览器)”的美国临时申请No.62/492,292。上述专利申请的内容在此通过全部引用明确地和完全并入,如同充分阐述一样。
技术领域
本公开涉及用于在空间3D环境中实现浏览技术的系统和方法。
背景技术
观看网页的典型方式是在计算机、智能电话、平板计算机等的显示器上打开网页。用户将滚动浏览网页以观看显示在网页上的不同内容。通常,无论用户是在看计算机显示器、智能电话还是平板计算机,如何在显示器上显示内容都有固定的格式。
利用虚拟现实、增强现实和/或混合现实系统(以下统称为“混合现实”系统),提供了用于向用户显示内容的三维环境。问题在于,在浏览器中显示和操纵2D内容的传统方法当在3D环境中使用时效果不好。
例如,考虑在计算环境中创建新窗口的过程。通常,使用鼠标或类似装置来操纵菜单结构以创建窗口,然后使用鼠标将新窗口拖动到所需位置。然而,对于传统的2D网页浏览器,由于显示装置的显示区域仅限于正在显示内容的显示器的屏幕区域,这意味着传统的浏览器被配置为仅知道如何在该显示器显示区域中创建和放置。因此,传统的窗口创建方法在非2D环境(诸如混合现实系统)中创建新窗口时会受到很大的限制,因为3D环境不限于显示器显示区域的严格限制。这样,传统的2D浏览器当在3D环境中使用时次优地执行,因为传统的浏览技术只是不具有利用3D环境来创建和显示内容的功能或能力。
该问题对于计算环境中的其它类型的对象也是存在的,其中与计算环境交互的传统方法未考虑用于在3D环境中操纵对象的有效方法。例如,传统的计算系统只是不提供有效的机制来实现新创建对象的放置(诸如,将数字图片悬挂在壁上)。
因此,需要在3D环境中实现对象的创建和操纵的改进的方法。
发明内容
提供了以实现用于创建和放置可交互对象的物理操纵的改进的系统和方法。在一些实施例中,向混合现实系统的用户提供了将新创建的虚拟对象(即,与可交互对象相关联的数据)放置到用户环境中任何合格位置的能力,其中可交互对象的放置是通过用户的物理操纵活动实现的。
提供了以实现用于创建和放置浏览器窗口的物理操纵的改进的系统和方法。在一些实施例中,向混合现实系统的用户提供了将浏览器窗口放置到用户环境中任何合格位置的能力,其中该窗口的放置是通过用户的物理操纵活动来实现的。用于浏览器窗口的导航和操纵的改进的系统和方法可以应用于在空间组织的3D环境中被解构和显示的2D内容的上下文中。这可以包括识别2D内容,识别2D内容中的元素,识别周围的表面,将所识别的元素映射到所识别的周围表面,以及将元素作为虚拟内容显示在周围表面上。
一些实施例涉及在单个用户交互中实现用于创建和放置壁挂的物理操纵的改进的系统和方法。在一些实施例中,向混合现实系统的用户提供了将壁挂放置到用户环境中任何合格位置的能力,其中壁挂的放置是通过用户的物理操纵活动来实现的。
以下在具体实施细节、附图和权利要求中描述了本发明的方面、目的和优点的进一步细节。前面的概述和下面的详细描述二者都是示例性和说明性的,并且不旨在限制本发明的范围。
在一个实施例中,方法包括在用户交互开始时接收指示对在第一棱柱内包含的可交互对象的选择的数据。方法还包括接收指示与可交互对象的用户交互的结束的数据。方法进一步包括:接收指示在用户交互的开始和结束之间与从第一棱柱移除可交互对象相对应的用户的身体运动的数据。此外,方法包括在与可交互对象的用户交互的结束时创建第二棱柱以包含与可交互对象相关联的数据。
在一个或多个实施例中,方法还包括:当可交互对象位于第一棱柱的边界之外时,在用户交互的开始和结束之间在可交互对象的位置处显示与可交互对象相关联的数据的可视预览。方法还可包括:用户输入装置提供指示对可交互对象的选择的数据和指示与可交互对象的用户交互的结束的数据。用户输入装置可以是触觉控制器。触觉控制器可以对应于具有至少六个自由度的图腾装置。在与触觉控制器相关联的处理系统处,用户的身体运动可转换成事件对象,其中,事件对象与用于触觉控制器的移动或定位的数据相关。通过在可交互对象的选择之后识别针对触觉控制器的触发器被释放的位置,可确定在用户交互的结束时可交互对象的位置。用户输入装置可以是用于检测用户手势的相机。指示对可交互对象的选择的数据可以对应于选择手势。指示与可交互对象的用户交互的结束的数据可以对应于释放手势。
在一个或多个实施例中,指示对可交互对象的选择的数据对应于用户的身体的与链接交互的至少一部分。可以通过访问与链接相关联的URL的内容来生成链接的预览。方法还可以包括:接收指示用户的身体运动的数据,用户的身体运动对应于预览的物理移动。可借助用户交互来打开和放置可交互对象。可以通过以下操作来确定可交互对象的取向:确定在用户交互的结束时可交互对象的位置的表面法线;确定与可交互对象相关联的数据的取向;以及将坐标位置的表面法线与和可交互对象相关联的数据的取向对齐。可交互对象可包括壁挂。
在另一实施例中,方法包括识别可交互对象。方法还包括识别与可交互对象相对应的用户的身体运动。方法进一步包括基于用户的身体运动来确定与可交互对象相关联的数据的坐标位置。此外,方法包括将与可交互对象相关联的数据放置在与用户的身体运动相对应的坐标位置处。
在一个或多个实施例中,采用用户输入装置来检测用户的身体运动。用户输入装置可以是触觉控制器。触觉控制器可以对应于具有至少六个自由度的图腾装置。在与触觉控制器相关联的处理系统处,用户的身体运动可以被转换成事件对象,其中事件对象与指示触觉控制器的移动或定位的数据相关。可交互对象的坐标位置可以通过在用户的身体运动之后识别针对触觉控制器的触发器被释放的位置来确定。
在一个或多个实施例中,用户输入装置是用于检测用户手势的相机。可以通过识别与用户身体的一部分进行交互的链接来识别要打开的可交互对象。可以通过访问与链接相关联的URL的内容来生成链接的预览。用户的身体运动可以对应于预览的物理移动。可以借助计算装置的单个用户交互来打开和放置可交互对象。通过确定坐标位置的表面法线,确定与可交互对象相关联的数据的取向,以及将坐标位置的表面法线与和可交互对象相关联的数据的取向对齐,可确定可交互对象的取向。可交互对象可以包括壁挂。
在另一实施例中,系统包括被配置为显示三维内容的混合现实显示装置。系统还包括配置为检测用户的身体运动的用户输入装置。系统进一步包括:处理器,其接收并处理来自用户输入装置的数据;存储器,其用于保存可由处理器执行的可编程代码。可编程代码包括指令,指令用于识别可交互对象,识别与可交互对象相对应的用户的身体运动,基于用户的身体运动来确定与可交互对象相关联的数据的坐标位置,以及将与可交互对象相关联的数据放置在与用户的身体运动相对应的坐标位置处。
在一个或多个实施例中,用户输入装置是触觉控制器。触觉控制器可以对应于具有至少六个自由度的图腾装置。在处理器处,用户的身体运动可以被转换成事件对象,其中事件对象与指示触觉控制器的移动或定位的数据相关。可交互对象的坐标位置可以通过在用户的身体运动之后识别针对触觉控制器的触发器被释放的位置来确定。
在一个或多个实施例中,用户输入装置是用于检测用户手势的相机。可以通过识别与用户身体的一部分进行交互的链接来识别要打开的可交互对象。可以通过访问与链接相关联的URL的内容来生成链接的预览。用户的身体运动可以对应于预览的物理移动。可交互对象可以包括壁挂。可编程代码还可包括用于通过以下操作确定可交互对象的取向的指令:确定坐标位置的表面法线;确定与可交互对象相关联的数据的取向;以及将坐标位置的表面法线与和可交互对象相关联的数据的取向对齐。
在另一实施例中,在计算机可读介质上体现的计算机程序产品,计算机可读介质在其上存储了指令序列,指令序列当由处理器执行时使处理器执行方法,方法包括识别可交互对象。方法还包括识别与可交互对象相对应的用户的身体运动。方法进一步包括基于用户的身体运动来确定与可交互对象相关联的数据的坐标位置。此外,方法包括将与可交互对象相关联的数据放置在与用户的身体运动相对应的坐标位置处。
在一个或多个实施例中,采用用户输入装置来检测对应于窗口的用户的身体运动。用户输入装置可以是触觉控制器。触觉控制器可以对应于具有至少六个自由度的图腾装置。在与触觉控制器相关联的处理系统处,用户的身体运动可以被转换成事件对象,其中事件对象与指示触觉控制器的移动或定位的数据相关。可交互对象的坐标位置可以通过在用户的身体运动之后识别针对触觉控制器的触发器被释放的位置来确定。
在一个或多个实施例中,用户输入装置是用于检测用户手势的相机。可以通过识别与用户身体的一部分进行交互的链接来识别要打开的窗口。可以通过访问与链接相关联的URL的内容来生成链接的预览。用户的身体运动可以对应于预览的物理移动。可以借助计算装置的单个用户交互来打开和放置可交互对象。单个用户交互可以包括在计算装置上的按钮的单次按下。指令序列进一步通过确定坐标位置的表面法线,确定与可交互对象相关联的数据的取向,以及将坐标位置的表面法线与和可交互对象相关联的数据的取向对齐,来确定可交互对象的取向。
在另一实施例中,方法包括在用户交互的开始时接收指示对可交互对象的选择的数据。方法还包括接收指示与可交互对象的用户交互的结束的数据。方法进一步包括确定用户交互的结束时可交互对象的位置。此外,方法包括将与可交互对象相关联的数据放置在用户交互的结束时可交互对象的位置处。
在一个或多个实施例中,方法还包括:用户输入装置提供指示对可交互对象的选择的数据和指示与可交互对象的用户交互的结束的数据。用户输入装置可以是触觉控制器。触觉控制器可以对应于具有至少六个自由度的图腾装置。在与触觉控制器相关联的处理系统处,可以将用户的身体运动转换成事件对象,其中事件对象与用于触觉控制器的移动或定位的数据相关。可以通过在可交互对象的选择之后识别针对触觉控制器的触发器被释放的位置,来确定在用户交互的结束时可交互对象的位置。
在一个或多个实施例中,用户输入装置是用于检测用户手势的相机。指示对可交互对象的选择的数据可以对应于选择手势。指示与可交互对象的用户交互的结束的数据可以对应于释放手势。指示对可交互对象的选择的数据可以对应于用户身体的与链接交互的至少一部分。可以通过访问与链接相关联的URL的内容来生成链接的预览。方法还可以包括:接收指示用户的身体运动的数据,其中用户的身体运动对应于预览的物理移动。可借助用户交互来打开和放置可交互对象。可以通过确定在用户交互的结束时可交互对象的位置的表面法线,确定与可交互对象相关联的数据的取向以及将坐标位置的表面法线与和可交互对象相关联的数据的取向对齐来确定可交互对象的取向。可交互对象可以包括壁挂。
在另一实施例中,方法包括在用户交互的开始时接收指示对可交互对象的选择的数据。方法还包括接收指示与可交互对象的用户交互的结束的数据。方法进一步包括确定在用户交互的结束时可交互对象的位置。此外,方法包括当在用户交互的结束时可交互对象的位置在可交互对象的初始棱柱之外时,在用户交互的结束时创建新的棱柱以用于与可交互对象相关联的数据。
在一个或多个实施例中,方法还包括当可交互对象位于初始棱柱的边界之外时,在用户交互的开始和结束之间在可交互对象的位置处显示与可交互对象相关联的数据的可视预览。方法还可包括用户输入装置提供指示对可交互对象的选择的数据和指示与可交互对象的用户交互的结束的数据。用户输入装置是触觉控制器。触觉控制器可以对应于具有至少六个自由度的图腾装置。在与触觉控制器相关联的处理系统处,可以将用户的身体运动转换成事件对象,其中事件对象与用于触觉控制器的移动或定位的数据相关。可以通过在可交互对象的选择之后识别针对触觉控制器的触发器被释放的位置,来确定在用户交互的结束时可交互对象的位置。
在一个或多个实施例中,用户输入装置是用于检测用户手势的相机。指示对可交互对象的选择的数据可以对应于选择手势。指示与可交互对象的用户交互的结束的数据可以对应于释放手势。指示对可交互对象的选择的数据可以对应于用户身体的与链接交互的至少一部分。可以通过访问与链接相关联的URL的内容来生成链接的预览。方法还可以包括:接收指示用户的身体运动的数据,其中用户的身体运动对应于预览的物理移动。可借助用户交互来打开和放置可交互对象。可以通过确定在用户交互的结束时可交互对象的位置的表面法线,确定与可交互对象相关联的数据的取向,以及将坐标位置的表面法线与和可交互对象相关联的数据的取向对齐,来确定可交互对象的取向。可交互对象可以包括壁挂。
在另一实施例中,方法包括在用户交互的开始时接收指示对在第一棱柱内包含的可交互对象的选择的数据。方法还包括当表示在用户交互的开始和结束之间与用户交互相对应的用户的身体运动的数据指示在用户交互的结束时可交互对象在第一棱柱之外时,在用户交互的结束时在可交互对象的位置处创建第二棱柱,以包含与可交互对象相关联的数据。
在一个或多个实施例中,方法还包括:用户输入装置提供指示对可交互对象的选择的数据和指示表示在用户的开始和结束之间与用户交互相对应的用户的身体运动的数据。用户输入装置可以是触觉控制器。触觉控制器可以对应于具有至少六个自由度的图腾装置。可以在与触觉控制器相关联的处理系统处将用户的身体运动转换成事件对象,其中事件对象与用于触觉控制器的移动或定位的数据相关。可以通过在可交互对象的选择之后识别针对触觉控制器的触发器被释放的位置,来确定在用户交互的结束时可交互对象的位置。
在一个或多个实施例中,用户输入装置是用于检测用户手势的相机。指示对可交互对象的选择的数据可以对应于选择手势。指示与可交互对象的用户交互的结束的数据可以对应于释放手势。指示对可交互对象的选择的数据可以对应于用户身体的与链接交互的至少一部分。可以通过访问与链接相关联的URL的内容来生成链接的预览。用户的身体运动可以对应于预览的物理移动。可借助用户交互来打开和放置可交互对象。可以通过确定在用户交互的结束时可交互对象的位置的表面法线,确定与可交互对象相关联的数据的取向,以及将坐标位置的表面法线与和可交互对象相关联的数据的取向对齐来确定可交互对象的取向。可交互对象可以包括壁挂。
在另一实施例中,系统包括被配置为显示三维内容的混合现实显示装置。系统还包括被配置为检测用户的身体运动的用户输入装置。系统进一步包括处理器,处理器接收并处理来自用户输入装置的数据。此外,系统包括用于保存可由处理器执行的可编程代码的存储器,其中可编程代码包括指令,指令用于:在用户交互的开始时接收指示对在第一棱柱内包含的可交互对象的选择的数据,接收指示与可交互对象的用户交互的结束的数据,接收指示在用户交互的开始和结束之间与从第一棱柱移除可交互对象相对应的用户的身体运动的数据,以及在与可交互对象的用户交互的结束时,创建第二棱柱以包含与可交互对象相关联的数据。
在另一实施例中,系统包括被配置为显示三维内容的混合现实显示装置。系统还包括被配置为检测用户的身体运动的用户输入装置。系统进一步包括处理器,处理器接收并处理来自用户输入装置的数据。此外,系统包括用于保存可由处理器执行的可编程代码的存储器,其中可编程代码包括指令,指令用于:在用户交互的开始时接收指示对可交互对象的选择的数据,接收指示与可交互对象的用户交互的结束的数据,确定在用户交互的结束时可交互对象的位置,以及当在用户交互的结束时可交互对象的位置在可交互对象的初始棱柱之外时,在用户交互的结束时创建新的棱柱以用于与可交互对象相关联的数据。
在另一实施例中,系统包括被配置为显示三维内容的混合现实显示装置。系统还包括被配置为检测用户的身体运动的用户输入装置。系统进一步包括处理器,处理器接收并处理来自用户输入装置的数据。此外,系统包括用于保存可由处理器执行的可编程代码的存储器,其中可编程代码包括指令,指令用于:在用户交互的开始时接收指示对在第一棱柱内包含的可交互对象的选择的数据,以及当表示在用户交互的开始和结束之间与用户交互相对应的用户的身体运动的数据指示在用户交互的结束时可交互对象在第一棱柱之外时,在用户交互的结束时在可交互对象的位置处创建第二棱柱,以包含与可交互对象相关联的数据。
附图说明
附图示出了本公开的各种实施例的设计和实用性。应当注意,附图不是按比例绘制,并且在整个附图中,相似结构或功能的元素由相似的附图标记表示。为了更好地理解如何获得本公开的各个实施例的上述和其它优点和目的,通过参考在附图中示出的本发明的特定实施例,将给出上面简要描述的本公开的更详细的描述。理解这些附图仅描绘了本公开的典型实施例,并且因此不应被认为是对其范围的限制,本公开将通过使用附图以附加的特征和细节来描述和解释,在附图中:
图1示出根据一些实施例的用于解构要在用户的3D环境中显示的2D内容的增强现实环境。
图2示出根据一些实施例的2D内容的元素到用户的3D环境的示例映射。
图3是示出根据一些实施例的用于解构要在3D环境中显示的2D内容的方法的流程图。
图4是示出根据一些实施例的用于识别2D内容中的元素的方法的流程图。
图5示出根据一些实施例的用于存储从2D内容解构的元素的表的示例。
图6是示出根据一些实施例的用于从用户的本地环境识别表面的方法的流程图。
图7示出根据一些实施例的用于存储从用户的本地环境中识别的表面的清单的表的示例。
图8是示出根据一些实施例的用于将元素从2D内容映射到可用表面的方法的流程图。
图9示出根据一些实施例的用于存储从2D内容的元素到用户的本地环境的表面的映射的表的示例。
图10A示出实现与可交互对象相关联的数据的物理放置和操纵的方法的流程图。
图10B示出实现浏览器窗口的物理放置和操纵的方法的流程图。
图10C示出实现壁挂的物理放置和操纵的方法的流程图。
图11A-F提供了在混合现实环境中物理放置窗口的方法的示意示例。
图12A-F提供了将与可交互对象相关联的数据物理地放置在混合现实环境中的方法的示意示例。
图13是适合于实现本公开的实施例的说明性计算系统的框图。
具体实施方式
现在将参考附图详细描述各种实施例,提供这些附图作为本公开的说明性示例,以使得本领域技术人员能够实践本公开。值得注意的是,下面的附图和示例并不意味着限制本公开的范围。在可以使用已知组件(或方法或过程)部分或完全实现本公开的某些元素的情况下,将仅描述理解该已知组件(或方法或过程)的对本公开所必需的那些部分,并且将省略该已知组件(或方法或过程)的其它部分的详细描述,以免模糊本公开。此外,各种实施例涵盖了通过图示的方式在此涉及的组件的当前和将来已知的等同物。
网页解构
本公开的实施例将解构要在空间组织的3D环境中显示的2D网页。2D网页可以起源于头戴式系统、移动装置(例如,电话)、平板计算机、电视、应用等的web浏览器。在一些实施例中,2D网页可以从诸如膝上型计算机、台式计算机、具有到2D网页的链接的电子邮件应用、引用或包括到2D网页的链接的电子消息等的另一个应用或装置接收。
参考图(图1),环境100代表用于实现以下所述的过程(例如,从网页解构2D内容以显示在用户的物理环境105中的3D表面上)的物理环境和系统。环境100的代表性物理环境和系统包括如由用户108通过头戴式系统160观看的用户的物理环境105。环境100的代表性系统进一步包括经由可操作地耦合到网络120的web浏览器110访问2D内容(例如,网页)。网络120可以是互联网、内部网络、私有云网络、公共云网络等。web浏览器110还经由网络120可操作地耦合到处理器170。尽管处理器170被示为与头戴式系统160分离的隔离组件,但是在替代实施例中,处理器170可以与头戴式系统160的一个或多个组件集成,和/或可以集成到环境100内的其它系统组件(诸如例如网络120)中,以访问计算网络125和存储装置130。处理器170可以配置有软件150以接收并处理从头戴式系统160、本地存储装置140、web浏览器110、计算网络125和存储装置130接收的信息,诸如视频、音频和内容。软件150可以经由网络120与计算网络125和存储装置130通信。软件150可以被安装在处理器170上,或者在另一实施例中,软件的特征和功能可集成到处理器170中。处理器170还可以配置有本地存储装置140,用于存储处理器170用于快速访问的信息,而无需依赖于远程存储在用户108附近的外部存储装置上的信息。在其它实施例中,处理器170可以集成在头戴式系统160内。
用户的物理环境105是当用户移动并通过头戴式系统160观看用户的物理环境105时用户108的物理周围环境。例如,参考图1,用户的物理环境105示出了具有两个墙壁(例如,主墙壁180和侧墙壁184,主墙壁和侧墙壁是相对于用户的视野的)和桌子188的房间。在主墙壁180上,存在由黑实线描绘的矩形表面182,以示出具有物理边界的物理表面(例如,悬挂或附着在墙壁或窗户等上的画作),该物理表明可以是将某些2D内容投影到其上的候选表面。在侧墙壁184上,存在由黑实线描绘的第二矩形表面186,以示出具有物理边界的物理表面(例如,悬挂或附着在墙壁或窗户上的画作等)。在桌子188上,可能存在不同的对象。1)虚拟Rolodex 190,其中可以存储和显示某些2D内容;2)由黑实线描绘的水平表面192,其表示具有物理边界的用以将某些2D内容投影到其上的物理表面;以及3)由黑虚线描绘的多个堆叠的虚拟正方形表面194,其表示例如可以存储和显示某些2D内容的堆叠的虚拟报纸。
web浏览器110还可以显示来自互联网或在内联网/专用网络内的博客页面。另外,web浏览器110也可以是显示数字2D内容的任何技术。2D内容可以包括例如网页、博客、数字图片、视频、新闻文章、新闻通讯或音乐。2D内容可以存储在用户108可以经由网络120访问的存储装置130中。在一些实施例中,2D内容也可以是流内容,例如,实时视频馈送或实时音频馈送。存储装置130可以包括例如数据库、文件系统、永久性存储装置、闪存驱动器、高速缓存等。在一些实施例中,经由计算网络125来显示包含2D内容(例如,网页)的web浏览器110。
计算网络125访问存储装置130以取得和存储用于在web浏览器110上的网页中显示的2D内容。在一些实施例中,本地存储装置140可以向用户108提供关注的2D内容。本地存储装置140可以包括例如闪存驱动器、高速缓存、硬盘驱动器、数据库、文件系统等。存储在本地存储装置140中的信息可以包括最近访问的2D内容或最近显示的3D空间中的内容。本地存储装置140通过向软件150本地提供用于帮助解构2D内容以在3D空间环境(例如,用户的物理环境105中的3D表面)上显示2D内容的某些内容,来允许对环境100的系统的性能进行改进。
软件150包括存储在非暂态计算机可读介质中的软件程序,以执行解构要在用户的物理环境105中显示的2D内容的功能。软件150可以在处理器170上运行,其中处理器170可以在本地附接到用户108,或者在一些其它实施例中,软件150和处理器170可以被包括在头戴式系统160内。在一些实施例中,软件150的部分的特征和功能可以在远离用户108的计算网络125上存储和执行。例如,在一些实施例中,解构2D内容可以在计算网络125上发生,并且解构的结果可以被存储在存储装置130内,其中用于呈现被解构的2D内容的用户的本地环境的表面的清点可以在处理器170内发生,其中映射和表面的清单被存储在本地存储装置140内。在一个实施例中,解构2D内容,清点本地表面,将2D内容的元素映射到本地表面以及显示2D内容的元素的过程可以全部本地地发生在处理器170和软件150内。
头戴式系统160可以是虚拟现实(VR)或增强现实(AR)头戴式系统,其包括用户界面、用户感测系统、环境感测系统和处理器(均未示出)。头戴式系统160向用户108呈现用于与数字世界交互并体验数字世界的界面。该交互可能涉及用户和数字世界、与环境100交互的一个或多个其他用户,以及数字和物理世界内的对象。
用户界面可以包括:接收2D内容,并通过用户界面由用户输入来选择2D内容内的元素。用户界面可以是触觉界面装置、键盘、鼠标、操纵杆、运动采集控制器、光学跟踪装置和音频输入装置中的至少一个或组合。触觉界面装置是允许人通过身体的感觉和运动与计算机交互的装置。触觉是指一种类型的人机交互技术,其包含触知反馈或其它身体感觉以在计算装置上执行动作或过程。
用户感测系统可包括一个或多个传感器162,该传感器可操作以检测与佩戴头戴式系统160的用户108有关的某些特征、特性或信息。例如,在一些实施例中,传感器162可包括相机或光学检测/扫描电路,其能够检测用户108的实时光学特性/测量值,诸如例如以下一项或多项:瞳孔收缩/扩张、每个瞳孔的角度测量/定位、球度、眼睛形状(眼睛形状随时间推移而变化)和其它解剖数据。该数据可以提供或用于计算可由头戴式系统160用来增强用户的观看体验的信息(例如,用户的视觉焦点)。
环境感测系统可以包括用于从用户的物理环境105获得数据的一个或多个传感器164。可以将由传感器164检测到的对象或信息作为输入提供给头戴式系统160。在一些实施例中,该输入可以表示用户与虚拟世界的交互。例如,观看桌子(例如,桌子188)上的虚拟键盘的用户(例如,用户108)可以用他们的手指进行手势操作,就像该用户正在虚拟键盘上打字一样。手指移动的运动可以由传感器164采集,并作为输入提供给头戴式系统160,其中,该输入可以用于改变虚拟世界或创建新的虚拟对象。
传感器164可以包括例如大体上面朝外的相机或扫描仪,用于例如通过连续和/或间歇地投影的红外结构光来解释场景信息。环境感测系统可用于通过检测和显示(registering)本地环境(包括静态对象、动态对象、人、手势以及各种照明、大气和声学条件)来映射用户108周围的用户物理环境105的一个或多个元素。因此,在一些实施例中,环境感测系统可包括嵌入在本地计算系统(例如,处理器170)中并且可操作以数字地重构由传感器164检测到的一个或多个对象或信息的基于图像的3D重构软件。
在一个示例性实施例中,环境感测系统提供以下一项或多项:运动采集数据(包括手势识别)、深度感测、面部识别、对象识别、唯一对象特征识别、语音/音频识别和处理、声源定位、降噪、红外或类似的激光投影,以及单色和/或彩色CMOS传感器(或其它类似的传感器)、视场传感器以及各种其它光学增强传感器。应当理解,环境感测系统可以包括除了以上讨论的这些组件之外的其它组件。
如上所述,在一些实施例中,处理器170可以与头戴式系统160的其它组件集成,与环境100的系统的其它组件集成,或者可以是如图1中所示单独的装置(可穿戴或与用户108分离)。处理器170可以通过物理、有线连接或无线连接(诸如例如移动网络连接(包括蜂窝电话和数据网络)、Wi-Fi、蓝牙或任何其它无线连接协议)连接到头戴式系统160的各个组件。处理器170可以包括存储器模块,集成和/或附加的图形处理单元,无线和/或有线互联网连接,以及能够将源(例如,计算网络125和头戴式系统160的用户感测系统和环境感测系统)中的数据转换为图像和音频数据的编解码器和/或固件,其中图像/视频和音频可以经由用户界面(未示出)呈现给用户108。
处理器170处理用于头戴式系统160的各个组件的数据处理以及在头戴式系统160和来自由web浏览器110和计算网络125显示或访问的网页的2D内容之间的数据交换。例如,处理器170可以用于缓冲和处理用户108与计算网络125之间的数据流,从而实现平滑、连续和高保真度的用户体验。
可以以智能和逻辑的方式将2D内容从网页解构为元素并对元素进行映射以显示在3D环境中的表面上。预定的规则集可用于推荐、建议或指示在2D内容/网页内识别的某些类型的元素/内容的放置位置。例如,某些类型的2D内容元素可具有一个或多个内容元素,该一个或多个内容元素可能需要映射到适合于存储和显示一个或多个元素的物理或虚拟对象表面,而其它类型的2D内容元素可能是单个对象,诸如网页内的主要视频或主要文章,在这种情况下,可以将单个对象映射到最有意义的表面以向用户显示单个对象。
图2示出根据一些实施例的2D内容的元素到用户3D环境的示例映射。环境200描绘了由web浏览器110显示或访问的2D内容(例如,网页)和用户的物理环境105。带有箭头的虚线描绘了来自映射到用户的物理环境105并显示在用户的物理环境105上的2D内容(例如网页)的元素(例如,特定类型的内容)。基于web设计者提示或预定义的浏览器规则,将2D内容中的某些元素映射到用户的物理环境105中的某些物理或虚拟对象。
作为示例,由web浏览器110访问或显示的2D内容可以是具有多个标签的网页,其中显示当前活动标签260,并且当前隐藏辅助标签250,直到辅助标签250被选择显示在web浏览器110上为止。活动标签260内显示的通常是网页。在该特定示例中,活动标签260正在显示包括主视频220、用户评论230和建议视频240的YOUTUBE页面。如在该示例性示例中所示,主视频220可以被映射为在垂直表面182上显示,用户评论230可映射为显示在水平表面192上,并且建议视频240可映射为显示在与垂直表面182不同的垂直表面186上。另外,辅助标签250可映射为显示在虚拟Rolodex 190上和/或在多个堆叠的虚拟对象194上。在一些实施例中,辅助标签250内的特定内容可以存储在多个堆叠的虚拟对象194中。在其它实施例中,辅助标签250内的全部内容可以在多个堆叠的虚拟对象194上存储和/或显示。类似地,虚拟Rolodex 190可以包含来自辅助标签250的特定内容,或者虚拟Rolodex 190可以包含位于辅助标签250内的整个内容。
垂直表面182可以是已经在房间的主墙壁180(描绘为用户的物理环境105)上的任何类型的结构,诸如窗玻璃或相框。在一些实施例中,垂直表面182可以是空墙壁,在该墙壁上,头戴式系统160确定适合于用户108观看主视频220的垂直表面182的框架的最优大小。确定垂直表面182的大小可以至少部分地基于用户108与主墙壁180的距离,主视频220的大小和尺寸,主视频220的质量,未覆盖的墙壁空间的量,和/或用户在看主墙壁180时的姿势。例如,如果主视频220的质量是高分辨率的,则垂直表面182的大小可以是更大的,因为主视频220的质量不会受到垂直表面182不利影响。然而,如果主视频220的视频质量具有不良质量,则具有较大的垂直表面182可能会显著妨碍视频质量,在这种情况下,本公开的方法和系统可以调整垂直表面182的大小/重新定义垂直表面182为更小的,以使像素化带来的不良视频质量最小化。
与垂直表面182一样,垂直表面186是用户物理环境105中相邻墙壁(例如,侧墙壁184)上的垂直表面。在一些实施例中,基于用户108的取向,侧墙壁184和垂直表面186可能看起来是斜坡上的倾斜表面。除垂直和水平表面之外,斜坡上的倾斜表面还可以是一种类型的表面取向。在该示例中,可以将来自YOUTUBE网页的建议视频240放置在侧墙壁184的垂直表面186上,以允许用户108只需稍微向右移动头部即可观看建议视频。
虚拟Rolodex 190可以是由头戴式系统160创建并显示给用户108的虚拟对象。虚拟Rolodex 190可具有用户108双向循环浏览一组虚拟页面的能力。虚拟Rolodex 190可以包含整个网页,或可以包含单独的文章或视频或音频。如该示例中所示,虚拟Rolodex 190可以包含来自辅助标签250的内容的一部分,或者在一些实施例中,虚拟Rolodex 190可以包含辅助标签250的整个页面。在一些实施例中,虚拟Rolodex 190也可以包含第一标签的全部或部分内容。用户108可以通过简单地注释虚拟Rolodex190内的特定标签来双向循环浏览虚拟Rolodex 190内的内容,并且头戴式系统160内的一个或多个传感器(例如,传感器162)将检测到用户108的眼睛焦点,并相应地循环虚拟Rolodex 190内的标签,以获得用户108的相关信息。在一些实施例中,用户108可以从虚拟Rolodex 190中选择相关信息并指示头戴式系统160将相关信息显示在可用的周围表面上或另一个虚拟对象上,诸如紧靠用户108的虚拟显示器(未显示)上。
与虚拟Rolodex 190类似,多个堆叠的虚拟对象194可以包含从一个或多个标签的全部内容或者来自用户108标记、保存以供将来观看或已打开(即无效的标签)的各种网页或标签的特定内容范围下的内容。多个堆叠的虚拟对象194也类似于报纸的真实世界堆栈。多个堆叠的虚拟对象194内的每叠可以属于特定的报纸文章、页面、杂志发行、食谱等。本领域的普通技术人员可以理解,可以存在多种类型的虚拟对象来实现提供放置2D内容元素或2D内容源中的内容的表面的相同目的。
本领域普通技术人员可以理解,由web浏览器110访问或显示的2D内容可能不仅仅是一个网页。在一些实施例中,2D内容可能是来自相册的图片、来自电影的视频、电视节目、YOUTUBE视频、交互形式等。然而,在其它实施例中,2D内容可以是电子书或显示书本的任何电子方式。最后,在其它实施例中,由于2D内容通常是当前如何呈现信息,因此2D内容也可以是未描述的其它类型的内容。如果电子装置可以消费2D内容,则头戴式系统160可以使用2D内容来以3D设置(例如AR)解构和显示2D内容。
在一些实施例中,映射所访问的2D内容可以包括(例如,从浏览器中)提取2D内容并将其放置在表面上(使得内容不再在浏览器中并且仅在表面上),并且在一些实施例中,映射可以包括(例如,从浏览器中)复制内容并将其放置在表面上(使得内容既在浏览器中又在表面上)。
解构2D内容是存在于互联网和计算机相关技术领域中的技术问题。使用诸如HTML的某些类型的编程语言来构造诸如网页的2D内容,以指示计算机处理器和技术组件在何处以及如何在屏幕上为用户显示网页内的元素。如上所述,网页设计者通常在2D画布(例如,屏幕)的限制内工作以在2D画布内放置和显示元素(例如,内容)。HTML标签用于确定如何格式化HTML文档或HTML文档内的部分。在一些实施例中,(提取或复制的)2D内容可以保持HTML标签引用,并且在一些实施例中,可以重新定义HTML标签引用。
图3是示出根据一些实施例的用于解构要在3D环境中显示的2D内容的方法的流程图。该方法包括:在310处识别2D内容;在320处识别2D内容中的元素;在330处识别周围的表面;在340处将所识别的2D内容中的识别元素映射到来自识别周围表面的识别的表面;以及在350处将元素作为虚拟内容显示到所选择的表面,其中所选择的表面是从元素到所识别的表面的映射中选择的。
在310处识别2D内容可涉及使用头戴式系统160搜索数字内容。在310处识别2D内容还可包括访问连接到网络120的服务器(例如,存储装置130)上的数字内容。在310处识别2D内容可包括浏览互联网中用户108关注的网页。在一些实施例中,在310处识别2D内容可以包括由用户108给出的用于在互联网上搜索内容的语音激活命令。例如,用户108可能正在与装置(例如,头戴式系统160)交互,其中,用户108通过说出搜索视频的命令并且然后说出视频的名称和视频的简短描述,来请求装置搜索特定视频,从而在互联网上搜索特定视频。然后,该装置可以搜索互联网并在2D浏览器上拉起视频,以允许用户108观看如在装置的2D浏览器上显示的视频。用户108然后可以确认视频是用户108想要在空间3D环境中观看的视频。
在识别出2D内容后,该方法在320处识别2D内容中的元素,以清点2D内容内的可用元素,用于向用户108显示。例如,2D内容内的元素可包括发布在网页上的视频、文章和新闻通讯、社交媒体网站上的评论和发布、博客帖子、在各种网站上发布的图片、有声书等。2D内容(例如网页)内的这些元素可包含HTML标签,该HTML标签具有与内容设计者提供的HTML标签相关联的属性,以定义特定元素放置在网页上的何处,以及在一些情况下元素将何时以及如何显示在网页上。在一些实施例中,本公开的方法和系统将利用这些HTML标签和属性作为由内容设计者提供的提示和建议,以帮助在340处的映射过程来确定在3D设置中在何处以及如何显示元素。例如,以下是由网页开发者提供的示例HTML网页代码。
网页开发者提供的示例HTML网页代码
Figure BDA0002643221250000191
Figure BDA0002643221250000201
网页开发者提供的示例HTML网页代码包括关于如何在网页上显示主视频的偏好,以及关于如何显示推荐(或建议的视频)的偏好。特别地,该HTML网页代码使用“样式”标签来指定如何使用“垂直”的类型值指定用于显示视频的垂直表面,来显示主视频。另外,在“样式”标签内,网页开发者提供的附加提示可包括对匹配算法的“优先级”偏好,用于优先将网页内的哪个HTML元素/内容(例如主视频)映射到哪个潜在表面积。在示例HTML网页代码中,将具有垂直平面布局的视频的优先级设置为100的值,其中,在该示例中,更高的优先级值指示更高的优先级。另外,在该示例中,网页开发者指示了偏好,以将建议的视频放置在堆叠布局中具有类型值“水平”的堆叠中,其中,堆叠的对象之间的距离(例如,在该情况下,建议视频相对于另一个建议视频的)应为20cm。
图4是示出根据一些实施例的用于识别2D内容中的元素的方法的流程图。图4是根据一些实施例的公开在图3的320处识别2D内容中的元素的详细流程。图4开始于在410处识别2D内容内的元素,类似于在图3的320处识别2D内容中的元素。该方法进行到下一步,在420处识别与内容的放置有关的标签的属性。如以上讨论,网页设计者在设计和配置网页时,可以将网页内的元素与HTML标签相关联以定义在何处以及如何显示每个元素。这些HTML标签还可以包括与将元素放置在网页的特定部分上有关的属性。头戴式系统160将检测到这些HTML标签及其属性,并与系统的其它组件进行协调,以用作特定元素可被显示的位置的输入。
在430处执行从每个元素提取提示或标签。提示或标签通常是由2D内容/网页的内容设计者和/或网页开发者提供的格式化提示或格式化标签。如以上讨论,内容设计者可以例如以“网页开发者提供的示例HTML网页代码”中所示的HTML标签的形式提供指令或提示,以指示web浏览器110在页面或屏幕的特定部分中显示2D内容的元素。在一些实施例中,网页设计者可以使用附加的HTML标签属性来定义附加的格式化规则。例如,如果用户对特定颜色(例如红色)具有降低的敏感度,则不显示红色,而是使用另一颜色,或者如上所讨论,如果具有将在垂直表面上显示的偏好的视频不能在垂直表面上显示,则可替代地在另一个(物理)表面上显示视频,或者创建虚拟表面,并且然后在虚拟表面上显示视频。以下是在浏览器中实现的示例HTML页面解析器,用于解析HTML页面以从HTML页面内的每个元素中提取提示/标签。
在浏览器中实现的示例HTML页面解析器
Figure BDA0002643221250000211
Figure BDA0002643221250000221
Figure BDA0002643221250000231
示例HTML页面解析器示出如何解析、识别和/或提取和复制包含用于为2D内容(例如,网页)内的特定元素/对象提供显示偏好的HTML标签的HTML页面。如示例HTML页面解析器中所公开的,可以使用所公开的样本代码来解析2D内容(例如,网页)内的元素。HTML页面解析器(例如ML.layout,ML.container等)可以识别/提取使用各种元素名称和值的某些HTML标签,以确定在3D环境中如何向用户显示特定元素(例如,通过将元素映射到特定表面)。
在440处执行查找/搜索针对一个或多个元素的替代显示形式。可以针对网页上的图像指定某些格式化规则。例如,如果web浏览器110能够显示图像的3D版本,则网页设计者可以放置附加标签或定义特定标签的某些属性,以允许web浏览器110识别图像可能具有图像的替代版本(例如,图像的3D版本)。web浏览器110然后可以访问要在启用3D的浏览器中显示的图像的替代版本(例如,图像的3D版本)。
在450处将所识别的元素存储在2D内容内。该方法可以将所识别的元素存储到非暂态存储介质中,以供映射例程使用来将元素映射到特定表面(例如,在图3的340处将元素映射到所识别的表面)。非暂态存储介质可以包括诸如存储装置130或本地存储装置140的数据存储装置。可以将元素存储在诸如以下描述的图5中公开的表的特定表中。在一些实施例中,可以将2D内容内的所识别的元素存储在暂态存储介质中。
图5示出根据一些实施例的用于存储从2D内容解构的元素的表的示例。元素表500是可以将图4的410处的识别2D内容内的元素的结果存储在数据库中的示例性表。元素表500包括例如关于2D内容内的一个或多个元素的信息,包括元素标识(ID)510、用于将元素放置在3D表面上的位置的偏好指示符520、父元素ID 530(如果特定元素包括在父元素内)、子元素ID 540(如果元素可包含子元素),以及倍数实体指示符550(以指示元素是否包含可以保证用于显示元素的表面或虚拟对象与显示元素的多个版本兼容的需要的多个实施例)。父元素是2D内容内的可包含子元素(例如子元素)的元素/对象。例如,具有值220的元素ID(例如,主视频220)具有值260的父元素ID(例如,活动标签260),其指示主视频220是活动标签260的子元素。或以不同的方式陈述,主视频220被包括在活动标签260内。继续相同的示例,主视频220具有指示用户评论230与主视频220相关联的子元素ID 230(例如,用户评论230)。本领域普通技术人员可以理解,元素表500可以是关系数据库或任何类型的数据库中的表。另外,元素表500可以是包含图4的410处的识别2D内容内的元素的结果的计算机存储器(例如,高速缓存)中的矩阵。
元素表500的行560中的每一行对应于网页内的元素。元素ID 510是包含每个元素的唯一标识符(例如,元素ID)的列。在一些实施例中,元素的唯一性可以定义为表内元素ID510列与另一列(例如,偏好520列,如果内容设计者识别了多于一个的偏好)的组合。偏好520是其值可以至少部分地基于由内容设计者/开发者(例如网页设计者)定义的并且由图4的430处所公开的从每个元素提取提示或标签的系统和方法识别的HTML标签和属性来确定的列。在其它实施例中,偏好520列可以至少部分地基于预定义的浏览器规则来确定,以指定网页内的某些类型的元素应显示在3D环境内的何处。这些预定义的规则可以向系统和方法提供建议,以确定将元素最优放置在3D环境中何处。
父元素ID 530是包含当前行中的该特定元素显示在其中或与其相关的父元素的元素ID的列。网页内的特定元素可以被嵌入、放置在页面的另一元素内、或与页面上的另一元素有关。例如,在当前实施例中,元素ID 510列的第一条目存储与图2的主视频220相对应的元素ID 220的值。与主视频220相对应的偏好520列中的偏好值基于HTML标签和/或属性确定,并且在当前实施例中,该元素应放置在用户的物理环境105的“主要”位置中。取决于用户108的当前位置,该主要位置可以是客厅中的墙壁,或者是用户108当前正在看的厨房中的炉灶罩,或者如果是在宽敞的空间中,则可以是可以在其上投影主视频220的在用户108的站点线的前面被投影的虚拟对象。在稍后的部分中将公开关于如何向用户108显示2D内容的元素的更多信息。继续当前示例,父元素ID 530列存储与图2的活动标签260相对应的元素ID 260的值。因此,主视频220是活动标签260的子元素。
子元素ID 540是包含当前行中该特定元素显示在其中或与其相关的子元素的元素ID的列。网页内的特定元素可以被嵌入、放置在页面的另一元素内、或与页面上的另一元素有关。继续当前示例,子元素ID 540列存储与图2的用户评论230相对应的元素ID 230的值。
倍数实体指示符550是指示元素是否包含多个实体的列,该实体可以保证需要使表面或虚拟对象(其用于显示元素)与显示该元素的多个版本兼容(例如,元素可以是用户评论230,其中对于主视频220,可能有多于一个的可用评论)。继续当前示例,倍数实体指示符550列存储值“N”以指示主视频220不具有或不对应在活动标签260中的多个主视频(例如,“没有”主视频220的多个版本)。
继续当前示例,元素ID 510列的第二条目存储与图2的用户评论230相对应的元素ID 230的值。在偏好520列中与用户评论230相对应的偏好值示出了“水平”的偏好,以指示用户评论230应当被放置在用户的物理环境105中某处的“水平”表面上。如以上讨论,水平表面将基于用户物理环境105的可用水平表面来确定。在一些实施例中,用户的物理环境105可能不具有水平表面,在这种情况下,本公开的系统和方法可以识别/创建具有水平表面的虚拟对象以显示用户评论230。继续当前示例,父元素ID530列存储与图2的主视频220相对应的值元素ID 220,并且倍数实体指示符550列存储值“Y”以指示用户评论230可以包含多于一个的值(例如,多于一个的用户评论)。
元素表500中的其余行包含用户108关注的其余元素的信息。本领域的普通技术人员可以理解,存储在410处识别2D内容内的元素的结果可以改进计算机本身的功能,因为在已经对2D内容执行了该分析后,如果另一个用户对同一2D内容感兴趣,则可以由系统和方法保留该分析以用于2D内容的将来分析。因为之前已经完成解构该特定2D内容,所以可以避免用于解构该特定2D内容的系统和方法。
在一些实施例中,元素表500可以存储在存储装置130中。在其它实施例中,元素表500可以存储在本地存储装置140中,以用于快速访问最近观看的2D内容或用于可能重新访问最近观看的2D内容。在其它实施例中,元素表500可以存储在远离用户108的存储装置130和位于用户108本地的本地存储装置140二者处。
返回图3,该方法继续在330处识别周围的表面。用户108可以通过头戴式系统160观看用户的物理环境105,以允许头戴式系统160采集和识别周围的表面,诸如墙壁、桌子、画作、窗框、火炉、冰箱、电视等。头戴式系统160由于头戴式系统160上的传感器和相机或任何其它类型的类似装置而意识到用户物理环境105内的真实对象。在一些实施例中,头戴式系统160可以将用户的物理环境105内观察到的真实对象与存储在存储装置130或本地存储装置140内的虚拟对象进行匹配,以识别可用于该虚拟对象的表面。真实对象是在用户的物理环境105内识别的对象。虚拟对象是物理上在用户的物理环境内不存在的对象,但可以显示给用户以看起来像虚拟对象存在于用户的物理环境中。例如,头戴式系统160可以检测用户的物理环境105内的桌子的图像。可以将桌子的图像简化为3D点云对象,以在存储装置130或本地存储装置140处进行快速有效的比较和匹配。如果检测到真实对象和(例如,桌子的)3D点云对象的匹配,因为代表桌子的3D点云对象被定义为具有水平表面,所以该系统和方法将把桌子识别为具有水平表面。下面在图6中公开了对识别周围表面的更详细描述。
在一些实施例中,虚拟对象可以是提取对象,其中提取对象可以是在用户的物理环境105内识别的物理对象,但在实体对象的场所中作为虚拟对象显示给用户,使得可以对将无法对物理对象本身进行(例如,更改物理对象的颜色以突出显示物理对象的特定特征等)的提取对象进行附加处理和关联。另外,提取对象可以是从2D内容提取的虚拟对象(例如,来自浏览器的网页)并显示给用户108。例如,用户108可以从2D内容/网页上显示的网页中选择诸如沙发的对象,以在用户的物理环境105内显示。系统可以识别所选对象(例如,沙发)并将提取对象(例如,沙发)显示给用户108,如同提取对象(例如,沙发)物理上存在于用户的物理环境105中。另外,虚拟对象还可以包括具有用于显示内容的表面的对象(例如,用户附近的用于观看某些内容的透明显示屏),其甚至不在用户的物理环境105中物理存在,而是从2D内容的角度来看,从显示内容中,其可以是向用户呈现某些内容的理想显示表面。
图6是示出根据一些实施例的用于从用户的本地环境识别表面的方法的流程图。图6是公开在图3的330处识别周围表面的详细流程。图6开始于在610处识别用户的当前周围环境,类似于在图3的330处识别周围表面。该方法继续进行在620处确定用户的姿势的下一步骤。
在620处确定用户的姿势是识别用户的当前周围环境的重要步骤,因为该用户的姿势将为用户108提供关于用户的物理环境105内的对象的视角。例如,返回参考图1,用户108使用头戴式系统160正观察用户的物理环境105。在620处确定用户的姿势(即,相对于世界的矢量和/或原点位置信息)将有助于头戴式系统160理解,例如:(1)用户108相对于地面有多高;(2)用户108旋转其头部以移动并采集房间图像的角度;以及(3)用户108到桌子188、主墙壁180和侧墙壁184之间的距离。此外,用户108的姿势还有助于确定头戴式系统160在观察垂直表面182和186时的角度,以及用户的物理环境105内的其它表面。
在630处,该方法识别周围表面的尺寸。用户的物理环境105内的每个候选表面都被标记并以对应的尺寸分类。在一些实施例中,用户的物理环境105内的每个候选表面也被标记并以对应的取向分类。该信息将至少部分基于表面的尺寸、表面的取向、用户108距特定表面的距离以及需要为该元素显示的信息的类型,有助于识别哪个元素应映射到哪些表面。例如,视频可能显示得比博客或文章更远,而博客或文章可能包含大量信息,其中如果将文章以小尺寸显示在远处的墙壁上,则由于文章的文本大小可能太小以至于用户难以看到。
在640处,该方法将周围表面的清单存储到非暂态存储介质中,以供映射例程(例如,图3的340将元素映射到所识别的表面)用来将元素映射到特定表面。非暂态存储介质可以包括诸如存储装置130或本地存储装置140的数据存储装置。所识别的表面可以被存储在诸如以下描述的图7中所公开的表的特定表中。在一些实施例中,所识别的表面可被存储在暂态存储介质中。
图7示出根据一些实施例的用于存储从用户的本地环境中识别的表面的清单的表的示例。表面表700是可以将识别周围表面处理的结果存储在数据库中的示例性表。表面表700包括例如关于用户的物理环境105内的表面的信息,该用户的物理环境105具有包括表面ID 710、宽度720、高度730、取向740、真实或虚拟指示符750、倍数760以及位置770的数据列。本领域普通技术人员可以理解,表面表700可以是关系数据库或任何类型的数据库中的表。另外,表面表700可以是存储在图3的330处的识别周围表面的结果的计算机存储器(例如,高速缓存)中的矩阵。
表面表700的行780中的每一行可以对应于来自用户的物理环境105的表面或可以在用户的物理环境105内显示给用户108的虚拟表面。表面ID 710是包含用于唯一识别特定表面的唯一标识符(例如,表面ID)的列。特定表面的尺寸存储在宽度720列和高度730列中。
取向740是指示表面相对于用户108的取向(例如,垂直、水平等)的列。真实/虚拟750是指示特定表面是否位于如用户108使用头戴式系统160所感知的用户物理环境105内的真实对象上或者特定表面是否位于将由头戴式系统160生成并显示在用户的物理环境105内的虚拟对象上的列。头戴式系统160可能针对用户的物理环境105可能不包含足够的用以显示用户108希望显示的内容量的表面的情况而必须生成虚拟对象。在这些实施例中,头戴式系统160可以从数据库中搜索现有虚拟对象,该现有虚拟对象可以具有适当的表面尺寸以显示被识别用于显示的某些类型的元素。数据库可以来自存储装置130或本地存储装置140。
倍数760是指示表面/对象是否与显示元素的多个版本兼容的列(例如,元素可以是图2的辅助标签250,其中对于特定的web浏览器110,可以存在多于一个的辅助(即无效)标签(例如,每标签一个网页)。如果倍数760列具有“倍数”值,诸如针对存储与图2的虚拟Rolodex 190相对应的值190的表面ID列的第四条目以及存储与图2的多个堆叠的虚拟对象194相对应的值194的表面ID列的第五条目的情况,则系统和方法将知道,如果某个元素可具有该元素的多个版本(例如非活动标签就是这种情况),则存在可以容纳多个版本的表面的类型。
位置770是指示物理表面相对于参考系或参考点的位置的列。如图7中的位置770的列标题中所示,物理表面的位置可以被预定为表面的中心。在其它实施例中,位置可以被预定为表面的另一个参考点(例如,表面的前、后、顶部或底部)。位置信息可以表示为相对于一些参考系或参考点的来自物理表面的中心的矢量和/或位置信息。可以有几种方式来表示表面表700中的位置。例如,表面表700中的表面ID 194的位置值在摘要中表示,以说明矢量信息和参考信息系(例如,“系”下标)。x、y、z是每个空间维度中的3D坐标,并且系表示3D坐标是相对于哪些参考系的。
例如,表面ID 186示出表面186的中心相对于真实世界原点的位置为(1.3,2.3,1.3)。作为另一示例,表面ID 192示出表面192的中心相对于用户参考系的位置为(x,y,z),并且表面ID 190示出表面190的中心相对于另一个表面182的位置为(x,y,z)。参考系对于消除当前正在使用哪个参考系很重要。在将真实世界的原点作为参照系的情况下,通常是静态参照系。然而,在其它实施例中,当参考系是用户参考系时,用户可以是移动参考系,在这种情况下,如果用户正在移动并且用户参考系被用作参考系,则平面(或矢量信息)可能随用户而移动和改变。在一些实施例中,每个表面的参考系可以是相同的(例如,用户参考系)。在其它实施例中,在表面表700内存储的表面的参考系可以是取决于表面而不同的(例如,用户参考系、世界参考系、房间中的另一表面或对象等)。
在当前示例中,存储在表面表700内的值包含在图2的用户物理环境105内识别的物理表面(例如,垂直表面182和186,以及水平表面192)和虚拟表面(例如,虚拟Rolodex190和多堆栈虚拟对象194)。例如,在当前实施例中,表面ID 710列的第一条目存储与图2的垂直表面182相对应的表面ID 182的值。与垂直表面182的宽度和高度分别对应的宽度720列的宽度值和高度730列的高度值指示垂直表面182具有48英寸(宽)乘36英寸(高)的尺寸。类似地,取向740列中的取向值指示垂直表面182具有“垂直”取向。另外,真实/虚拟750列中的真实/虚拟值指示垂直表面182是“R”(例如,真实)表面。倍数760列中的倍数值指示垂直表面182为“单个”(例如,只能保存单个内容)。最后,位置770列采用(2.5,2.3,1.2)用户的矢量信息指示垂直表面182相对于用户108的位置。
表面表700内的其它行包含用户的物理环境105内的其它表面的信息。本领域的普通技术人员可以理解,存储在图3的330处识别周围表面的结果可以改进计算机本身的功能,因为在已经对周围表面执行了该分析后,可以由头戴式系统160保留该分析,用于如果另一个用户或同一用户108在相同的物理环境105中对不同的2D内容感兴趣时对用户的周围表面的将来分析。可以避免在330处识别周围表面的处理步骤,因为这些处理步骤之前已经完成。唯一的区别可包括至少部分地基于识别具有不同的2D内容的元素的元素表500来识别附加的或不同的可用虚拟对象。
在一些实施例中,表面表700存储在存储装置130中。在其它实施例中,表面表700存储在用户108的本地存储装置140中,用于快速访问最近观看的2D内容或用于可能重新访问最近观看的2D内容。在其它实施例中,表面表700可以存储在远离用户108的存储装置130和位于用户108本地的本地存储装置140二者处。
返回图3,方法使用从识别2D内容320中的元素中的所识别的元素和330处从识别周围表面中的识别的周围表面的组合,并且在一些实施例中,使用虚拟对象作为附加表面,继续在340处将元素映射到所识别的表面。将所识别的元素映射到所识别的表面可涉及多个因素,其中的一些因素可以包括通过使用HTML页面解析器(诸如以上讨论的示例HTML页面解析器)来分析由2D内容设计者/作者通过由2D内容设计者/作者定义的HTML标签元素提供的提示。其它因素可以包括从AR浏览器、AR界面和/或云存储所提供的预定义规则集中选择如何以及在何处映射某些2D内容。图8提供了将来自2D内容的一个或多个元素映射到所识别的表面的映射过程的详细流程。
图8描绘了根据一些实施例的示出用于将来自2D内容的元素映射到表面的方法的流程图。图8是公开在图3的340处将元素映射到所识别的表面的详细流程。
在810处,该方法确定所识别的元素是否包含由2D内容设计者提供的提示。当2D内容设计者最初设计2D内容时,2D内容设计者可以提供有关在何处最优显示特定元素的提示。例如,图2的主视频220可以是在活动标签260内的网页上显示的YOUTUBE视频。2D内容设计器(例如,网页设计者)可以提供提示以指示主视频220最好显示在用户108的直接视角中的垂直平面上。在一些实施例中,这可以通过使用最初为2D网页内容设计的现有HTML标签元素来完成,以进一步定义如果3D显示环境可用,则如何显示2D内容中的特定内容元素。作为另一示例,2D内容设计者可以提供提示,以指出针对特定网页而言3D图像是可用的,而不是2D图像。例如,在2D图像的情况下,除了提供基本的HTML标签来识别2D内容的来源之外,2D内容设计者还可以提供其它不常用的HTML标签来识别2D图像的3D版本的来源,并且另外,还提供提示,即如果使用图像的3D版本,则将其突出显示在用户视角的前面(例如,在3D布局的主系中)。在一些实施例中,在渲染2D内容的web浏览器110可以具有3D显示功能以利用增强的3D图像的情况下,2D内容设计者可以提供对2D图像的3D图像位置的该附加的“提示”。本领域的技术人员可以理解,除了在此公开的内容以外,还存在2D内容设计者可以提供特定内容元素应放置在2D布局中何处的提示的许多其它方式,并且在此公开的这些仅是2D内容设计者可以提供以最优显示2D内容内的某些或所有元素的提示的不同方式中的一些示例。
在另一实施例中,HTML标签标准可以包括新的HTML标签或类似的标记语言的创建,用于为AR/VR特定类型的浏览器(诸如上述网页开发者提供的示例HTML网页)提供用户周围中3D对象放置的提示。在该写入时,这些新的HTML标签还未在HTML语言内创建和/或采用作为标准标签。然而,在HTML标准包括这些类型的附加标签后,当前方法和系统的某些实施例将利用这些新标签来进一步提供从所识别的元素到所识别的表面的映射。本领域技术人员可以理解,除了HTML标签以外,还有许多其它语言可以被修改或采用,以进一步提供应如何在3D环境中最优显示内容元素的提示,并且新的HTML标签标准仅仅是实现该目标的一种方式。
在820处,该方法确定是使用2D内容设计者提供的提示还是使用预定义的规则集来将来自2D内容的一个或多个内容元素映射到某些类型的3D表面。在一些实施例中,在没有2D内容设计者提供的针对特定内容元素的提示的情况下,该系统和方法可以使用预定义的规则集来确定将内容元素映射到表面的最优方式。在其它实施例中,即使当可能存在由2D内容设计者提供的内容元素的放置的提示时,该系统和方法也可以确定可能最好使用预定义的规则集将内容元素映射到表面。然而,在其它实施例中,该系统和方法可以确定由2D内容设计者提供的提示是足够的,并且因此可以使用该提示来将内容元素映射到表面。最后,AR浏览器的最终决定是确定是使用2D内容设计者提供的提示还是使用预定义的规则来将内容元素映射到表面。
在830处,假设确定采用使用2D内容设计者提供的提示的方式进行,则该方法分析提示并搜索所识别的周围表面的清单,其可用于至少部分地基于提示来显示特定内容元素(例如,查询表面表700)。在840处,该方法运行最优拟合算法,以基于所提供的提示为特定内容元素选择最优拟合表面。例如,最优拟合算法可提示特定网页内特定内容元素的“主要内容”,并尝试从可用的所识别的周围表面中识别相对于3D环境中的用户108的前面和中心的3D表面。例如,因为主视频220在活动标签260内的图5的元素表500的偏好520列中具有“主要”的偏好值,并且垂直表面182是用户108的直接视线中的表面并且具有显示主视频220的最优尺寸,所以图2的主视频220被映射到垂直表面182。
在850处,该方法将在将元素到表面表的映射中的内容元素的映射结果存储在非暂态存储介质中,以供显示算法用来将内容元素显示在它们相应的映射的表面上,无论这些表面是所识别的周围表面还是在用户周围环境中显示的虚拟对象。非暂态存储介质可以包括诸如存储装置130或本地存储装置140的数据存储装置。映射结果可以存储在特定表中,诸如以下描述的图9中公开的表。
图9示出根据一些实施例的用于存储来自2D内容的内容元素到表面的映射的表的示例。映射表900是将内容元素映射到表面的过程的结果存储到数据库中的示例性表。映射表900包括例如关于内容元素的信息(例如,元素ID)和内容元素被映射到的表面的信息(例如,表面ID)。本领域普通技术人员可以理解,映射表900可以是存储在关系数据库或任何类型的数据库或存储介质中的表。另外,映射表900可以是计算机存储器(例如,高速缓存)中的矩阵,其包含图3的340处将元素映射到所识别的周围表面的结果。
映射表900中的每一行对应于映射到用户的物理环境105中的表面或者向用户108显示的虚拟对象(其中虚拟对象看起来像用户物理环境105中的对象)中的表面的来自2D内容的内容元素。例如,在当前实施例中,元素ID列中的第一条目存储与主视频220相对应的元素ID 220的值。表面ID列中的与主视频220相对应的表面ID值为与垂直表面182相对应的182。以该方式,主视频220映射到垂直表面182。类似地,用户评论230映射到水平表面192,建议视频240映射到垂直表面186,并且辅助标签250映射到虚拟Rolodex 190。映射表900中的元素ID可以与存储在图5的元素表500中的元素ID相关联。映射表900中的表面ID可以与存储在图7的表面表700中的表面ID相关联。
返回图8,在860处,假设确定使用预定义规则的方式来进行,则该方法查询包含内容元素到表面的映射规则的数据库,并针对网页内特定的内容元素来确定应考虑使用哪种类型的表面来映射内容元素。例如,针对图2的主视频220返回的规则可以指示应将主视频220映射到垂直表面,并且因此在搜索表面表700之后,揭示多个候选表面(例如,垂直表面182和186和虚拟Rolodex 190)。在870处,预定义的规则集可以运行最优拟合算法以从可用候选表面中选择,哪个表面对于该主视频220是最优拟合的。至少部分地基于最优拟合算法,确定主视频220应被映射到垂直表面182,这是由于在所有候选表面中,垂直表面182是在用户108的直接视线内的表面,并且垂直表面182具有用于显示视频的最优尺寸。在确定一个或多个元素的映射后,在850处,该方法如上所述将内容元素的映射结果存储在非暂态存储介质中的元素到表面表的映射中。
返回图3,该方法继续在350处显示一个或多个元素作为映射的表面上的虚拟内容。头戴式系统160可以包括在头戴式系统160内的以显示信息的一个或多个显示装置,诸如微型投影仪(未示出)。如在340处,一个或多个元素显示在所映射的相应的映射表面上。使用头戴式系统160,用户108将在相应的映射表面上看到内容。本领域普通技术人员可以理解,内容元素被显示为似乎物理地附着在各种表面(物理的或虚拟的)上,但实际上,内容元素实际被投影到用户108所感知的物理表面上,并且在虚拟对象的情况下,虚拟对象被显示为看起来像是附着在虚拟对象的相应表面上。本领域普通技术人员可以理解,当用户108转动其头部或向上或向下看时,头戴式系统160内的显示装置可以继续将内容元素固定在其相应的表面上,以进一步向用户108提供内容被固定到映射表面的感觉。在其它实施例中,用户108可以通过由用户108的头部、手、眼睛或声音进行的运动来改变用户的物理环境105的内容。
对象的物理操纵
本发明的一些实施例涉及提供对象的创建、物理导航和操纵的方法。与通过使用传统鼠标/键盘类型的交互来操纵对象而将与用户的交互范围限制为仅表现在2D空间中显示的对象的已知计算系统不同,本实施例涉及用户在3D空间中的交互,其允许与计算系统的物理交互。这允许用户利用身体运动和手势来控制对象在交互环境中的运动和放置。
图10A示出根据一些实施例的用于实现对象的物理放置和操纵的方法的流程图。在1001处,一个或多个可交互对象被识别并通过用于主机应用的混合现实系统的显示装置呈现给用户。可交互对象可以包括真实对象和虚拟对象。虚拟对象是仅作为虚拟世界内的构造存在的对象,并通过头戴式显示装置生成/显示给用户作为计算机生成的渲染。真实对象可以显示为数字计算机生成的与真实对象相对应的显示对象渲染(例如,对于VR应用),或者也可以通过显示装置的透明部分作为真实对象本身观看(例如,对于AR应用)。在一些实施例中,可交互对象可以是当在可交互对象与用户或HMD系统之间检测到交互时导致HMD系统中的改变的真实或虚拟对象。
在1003处,接收用户控制输入以选择一个或多个可交互对象。可以通过使用控制器装置(诸如鼠标或触觉控制器)将指针对象悬停来促进该选择,其中按钮或触发器的触发识别用户期望选择指针当前悬停在其上的对象。指针悬停的对象可以是与可交互对象的源数据相对应的可选链接/URL。可替代地,选择可以仅由用户的身体运动/手势发生,而不需要用户操纵控制装置。例如,混合现实系统可采用跟踪用户的手/手臂的运动的一个或多个相机装置,并且因此可以在用户的手悬停在可交互对象/链接上时进行识别。可以在系统内预先配置某些手势以将其识别为“选择”手势(例如,当将手配置在选择位置时,诸如当用户的手保持为用指向手指来指向对象上/指向对象,两次握手)。因此,当在用户的手悬停在可交互对象上的同时识别出选择手势时,该对象将被系统识别为由用户选择的。下面结合“释放”手势描述选择手势的其它实施例。
在1005处,混合现实系统识别并跟踪用户相对于所选对象的身体运动。例如,当用户选择了在第一位置处的对象时,用户可能希望将该对象移动到第二位置。利用本实施例,可以通过用户从第一位置到第二位置的身体运动来实现对象到第二位置的移动。例如,这可能是由于用户的选择臂从第一位置到第二位置的运动和/或用户步行到第二物理位置而发生的。可以通过识别由用户保持的控制器装置的位置的任何变化(例如,通过经由可以嵌入控制器装置内的任何传感器/发射器的位置变化来跟踪用户保持的触觉控制器的物理移动和/或视觉上跟踪控制器装置上的任何标记的移动)来识别和跟踪用户的身体运动。可替代地,可以通过识别用户身体的相关部分的身体运动来识别和跟踪用户的身体运动,例如,相机装置在视觉上跟踪用户选择臂/手的运动和位置。
当用户进行身体运动时,在1007处,与(多个)可交互对象相关联的数据被相应地显示到与用户的运动相关的新位置/方位中。例如,如果用户已经用选择臂选择了对象,并且当前将选择臂从第一位置移动到新位置,则与可交互对象(即所选对象)相关联的数据将在与用户手臂的运动对应的第二位置中可视地显示。为了提高效率,一些实施例可以在任何正在进行的运动期间仅显示与可交互对象相关联的数据的缩略图显示和/或低分辨率预览,而仅在对象的最终放置时实现高分辨率显示版本。
可以将对象渲染成有界体积,此后称为“棱柱(Prism)”。每个棱柱可以具有允许世界(universe)应用在VR/AR环境中管理和显示棱柱的特性和属性,使得世界应用可以通过管理棱柱本身来管理VR/AR环境中虚拟内容的放置和显示。在一些实施例中,将棱柱实现为将来自应用的虚拟内容显示到其中的立方和/或矩形空间,其中,该应用是当应用渲染到多于一个的棱柱中时应用的应用实例。棱柱可以代表当前位置的多应用场景图的子树。取得先前在当前位置部署的一个或多个棱柱,包括从外部数据库中取得一个或多个棱柱的实例数据,以及采用一个或多个棱柱的实例数据重建本地棱柱数据库,其中每个棱柱的实例数据包括定义棱柱的棱柱属性的数据结构,该棱柱属性包括位置、取向、范围宽度、范围高度、范围深度、锚点类型或锚点位置中的至少一个,其中每个棱柱的实例数据包括应用特定属性的键值对,该键值对包括应用先前渲染到棱柱中的虚拟内容的状态信息。在2017年12月22日提交的题为“METHODS AND SYSTEM FOR MANAGING AND DISPLAYING VIRTUAL CONTENTIN AN AUGMENTED REALITY SYSTEM(在增强现实系统中管理和显示虚拟内容的方法和系统)”的共同待决的美国专利申请No.62/610,101中描述了有关实现棱柱的方式的更多细节,其全部内容通过引用合并于此。
当用户在进行可识别的身体运动时选择可交互对象,将创建新的棱柱,该新的棱柱保存与可交互对象对应的数据,并移动到新位置以实现与可交互对象对应的数据的移动。在世界应用内修改了所选对象的棱柱的坐标位置,以表示所选对象的新位置,其中棱柱的适当属性(诸如位置属性)被修改以表示新的位置坐标。
还可能需要修改对象的其它属性以表示对象的新定位。例如,对象的取向可能在将要显示对象的新位置中改变。可以应用变形来修改对象在新的显示位置中的显示取向。在某种程度上,由于变形的结果可能会出现不可接受的视频伪像(例如,变形会过度扭曲显示的对象图像和/或变形会导致过多量的新取向的对象数据无法显示),可能发生重新渲染以渲染对象用于在新位置中显示。
可以采用任何合适的方法来确定与可交互对象相关联的数据的取向。例如,在一些实施例中,与可交互对象相关联的数据的取向可以是基本上平面内容的表面法线,或者该取向可以是预定义的并且与和可交互对象相关联的数据相关以指示主机应用旨在观看内容的优选方向。作为示例,化身(avatar)将具有取向矢量,该矢量具有从化身的眼睛之间的点开始的表面法线。取向也可以以任何可以应用的其它合适的方式来确定。
在某种情况下,用户可以寻求在新位置处实现对所选对象的最终放置。这可以例如通过识别用户何时释放控制器装置上的选择按钮/触发器来识别。另外,即使当不使用控制器装置时,“释放手势”也可以被混合现实系统预先配置和识别,以通过识别用户做出适当手势来识别用于放置对象的位置。在1009处,识别所选对象的放置,并且然后在该新位置处进行与可选对象相关联的数据的最终渲染。
在一些实施例中,释放手势的开始可能与选择手势的结束是相同的。例如,用户的手可以开始于张开位置并闭合成捏合(例如,选择手势),并且用户输入可以继续以相同的捏合开始并打开成张开的位置(例如,释放手势)。这样,单个用户输入/交互可以用于选择(即,选择手势)和释放(即,连续释放手势)可交互对象。在一些实施例中,用户可以捏合(例如,从张开的手开始并移动手指,以便手指的指尖触摸)可选对象,诸如URL链接,将URL链接拖动到浏览器窗口的外侧,并且然后释放URL(例如,通过反转捏合移动),可以将其视为单个用户交互。在其它实施例中,第一捏合可用于选择虚拟对象,并且第二捏合可用于释放可交互对象。
通过说明性实施例,现在本公开将描述用于浏览器的具有物理导航的窗口创建。为了说明,考虑在混合现实系统中,用户的工作空间不受显示屏大小限制。因此,与传统浏览器不同,可以在用户环境内的任何位置放置和保留混合现实系统中的浏览器窗口。问题在于,传统的浏览器技术是在假设可显示的浏览器位置必须限制在显示屏范围内的前提下配置的。
为了解决传统浏览器的该限制,本发明的一些实施例涉及提供对浏览器窗口的物理导航和操纵的方法。总体思路是,向混合现实系统的用户提供了将浏览器窗口放置到用户环境中任何合格位置的能力,该位置中该窗口的放置是通过用户的物理操纵活动实现的。
图10B示出实现对浏览器窗口的物理放置和操纵的方法的流程图。在1002处,用户操纵指向对象(诸如光标/指针)以悬停在浏览器窗口上的链接上。在实现浏览器的基础计算系统/OS内,指针对象的位置被跟踪和识别(1052)。例如,这可以通过跟踪和观看系统内的一个或多个事件对象而发生,其中事件对象与鼠标指针的移动事件有关。鼠标/光标位置可以在事件对象上报告,并由附加到窗口的处理程序接收。
在1004处,用户按下并保持使用操纵控制机制的触发器控制。例如,可以采用实现为图腾的触觉控制器,以允许用户在链接上按下并保持触发器。图腾是手持式控制器,其可跟踪其相对于AR/VR耳机的位置和取向。在一些实施例中,图腾可以是六自由度(6个DOF)控制器,其中用户可以通过向上或向下移动图腾来在高度和方位角上(在球形壳体上)移动指针。为了移近或移远对象,用户可以使用图腾上的操纵杆来“推”或“拉”。在1054处,基础OS接收指示已发生的触发事件的事件对象。
在1006处可以生成链接内容的预览。在一些实施例中,这是通过访问与在其上检测到触发的链接相关联的URL来执行的(在1056处)。解析URL以识别位置(例如,网站),从中识别出针对该位置的位置标识符(例如,IP地址)。然后建立连接(例如,TCP连接),其中执行与HTTP服务器的通信从而识别然后渲染的内容。在当前实施例中,基于预览执行内容渲染,使得生成链接内容的基于“缩略图”的渲染。
在继续保持图腾触发器的同时,用户执行物理导航(例如,手、手臂和身体运动)以将图腾指向期望的新窗口位置。这导致窗口位置的物理导航(1008)。可以将身体运动转换成由图腾装置的操作产生的和/或与图腾装置的操作有关的事件对象,该事件对象与用于图腾的移动和/或定位的数据相关(1058)。针对用户的身体运动而检测到的该移动/定位被应用于预览窗口的移动/定位,其中预览窗口的动态定位与用户的身体运动相对应地显示给用户。
在1010处,用户然后在期望位置释放图腾触发器来放置窗口。此时,在1060处,在与图腾触发器被释放的位置相对应的坐标处创建浏览器窗口。根据一些实施例,代替由每个应用在VR/AR环境中一对一地独立地管理浏览器窗口,而是将该窗口渲染为棱柱。
图11A-F提供了用于在混合现实环境中物理地放置窗口的该方法的说明性示例。图11A示出混合现实环境的表示,其包括用户108通过头戴式系统160所观看的物理环境。内容(例如,网页)可以通过由网络120访问的web浏览器1104来观看。浏览器1104中所示的内容可以包括一个或多个可选链接1106。
网络120可以是互联网、内部网络、私有云网络、公共云网络等。web浏览器1104还经由网络120可操作地耦合到处理器170。尽管示出了处理器170作为与头戴式系统160分离的单独组件,但是在替代实施例中,处理器170可以与头戴式系统160的一个或多个组件集成,和/或可以集成到环境100内的其它系统组件中,诸如例如访问计算网络125和存储装置130的网络120。处理器170可以配置有用于接收和处理从头戴式系统160、本地存储装置140、web浏览器1104、计算网络125和存储装置130接收的信息(诸如视频、音频和内容)的软件。
头戴式系统160可以是虚拟现实(VR)或增强现实(AR)头戴式系统,其包括用户界面、用户感测系统、环境感测系统和处理器(均未示出)。头戴式系统160向用户108呈现用于与数字世界交互和体验数字世界的界面。该交互可能涉及用户和数字世界、与环境100交互的一个或多个其他用户,以及数字和物理世界内的对象。
用户界面可包括:接收2D内容,并通过用户界面由用户输入来选择2D内容内的元素。用户界面可以是触觉界面装置、键盘、鼠标、操纵杆、运动采集控制器、光学跟踪装置和音频输入装置中的至少一个或组合。触觉界面装置(诸如图腾1102)是允许人通过身体感觉和运动与计算机交互的装置。触觉是指一种类型的人机交互技术,该技术包含以在计算装置上执行动作或过程的触知反馈或其它身体感觉。
用户感测系统可以包括一个或多个传感器,该传感器可操作以检测与佩戴头戴式系统160的用户108有关的某些特征、特性或信息。例如,在一些实施例中,传感器可以包括相机或能够检测用户108的实时光学特性/测量值的光学检测/扫描电路,诸如例如以下一项或多项:瞳孔收缩/扩张、每个瞳孔的角度测量/定位、球度、眼睛形状(眼睛形状随时间推移而变化)和其它解剖数据。该数据可以提供或用于计算可由头戴式系统160用来增强用户的观看体验的信息(例如,用户的视觉焦点)。该环境感测系统还可包括用于从用户的物理环境中获得数据的一个或多个传感器。可以将由传感器检测的对象或信息作为输入提供给头戴式系统160。在一些实施例中,该输入可以表示用户与虚拟世界的交互。
如图11B中所示,用户可以按下并保持浏览器1104内的可选链接1106。可以采用用户108可控制的指针1108来悬停在可选链接1108上。当用户在链接上悬停时,用户可以在图腾1102上按下并保持触发器。
如图11C中所示,当用户按下并保持图腾触发器时,向用户显示预览窗口1110a。预览窗口1110a对应于与链接1106有关的内容。
预览窗口1110a可以由用户108以物理方式操纵以改变预览窗口1110a的显示位置。例如,在继续保持图腾触发器的同时,用户可以物理地移动他/她的身体的一部分(例如通过移动用于保持图腾的手臂)到如图11D中所示的新的定位/位置。如图11E中所示,用户身体的身体运动改变了预览窗口1110a的位置。例如,这可以通过检测保持在移动的身体部分中的图腾1102的位置/取向的变化(例如,检测在用户的手中保持的图腾的移动)来实现,其中该身体运动的检测被转换为预览窗口的相应移动。这样,预览窗口的新位置的显示(以及运动中的窗口显示)可以通过例如用户的身体运动速度、身体运动的距离、身体运动的方向,和/或任何其它合适的可以对应于身体运动的窗口/显示参数来控制。例如,手臂位置中的相对较小的位移将转换为显示的预览窗口的相对较小的移动,而移动手臂相对较大的距离将转换为显示窗口位置的相对较大的移动。作为另一示例,手臂的较慢运动将转换为预览窗口在运动时的较慢的显示移动,而相对较快地移动手臂将转换为预览窗口在运动时的相对较快的移动。
用户然后可以选择要放置浏览器窗口的位置。如图11F中所示,当用户释放图腾触发器时,在释放图腾触发器时预览窗口的位置变为要创建的新浏览器窗口的位置。
因此,当前实施例提供了选择链接、将其移动到新位置并释放对象以创建新窗口的方法,该新窗口允许用户在其物理环境内放置、组织和保存内容。与传统的台式机和移动环境不同,该放置是经由物理导航进行的,从而允许用户使用其手、臂和/或身体来围绕用户的空间移动内容。该导航形式比台式机和移动浏览器使用的虚拟导航更为有效,并且使用户可以更好地控制在其空间内创建和放置浏览器窗口。
如上所述,因为该方法允许用户通过一次用户交互(例如,仅按下按钮一次)来打开和放置新窗口,所以该方法也是有利的。这是优于其它交互方法的重大改进,其它交互方法要求用户首先按下按钮以打开新窗口,然后按下按钮将新窗口移动/放置到第二位置。
作为另一个说明性实施例,本公开现在将描述使用物理操纵来放置任何可交互对象。具体的说明性实施例涉及壁挂对象(诸如画作、虚拟电视、虚拟监视器或可以放置在墙壁位置上的任何其它对象)的放置。该示例情况与以下想法有关:用户可能具有一组壁挂/图片,用户希望将其挂在整个房屋的墙壁上,但是用户可能不准确知道将它们放置在哪里。因此,系统将在壁挂应用中创建可以由用户物理操纵到墙壁上的放置位置的图片/画作的数字副本。
图10C示出根据一些实施例的用于实现墙壁对象的物理放置和操纵的方法的流程图。在1022处,用户在诸如浏览器窗口的主机应用上操纵用户选择对象(诸如光标/指针),以悬停在可交互内容(诸如墙壁对象表示(图标)或到墙对象的链接)上。在实现主机应用的基础计算系统/OS中,跟踪和识别用户选择对象的位置(1072)。例如,这可以通过跟踪和观看系统内的一个或多个事件对象来发生,其中事件对象与用户选择对象的移动事件有关。用户选择对象位置可以在事件对象上报告,并由附接到主机应用的处理程序接收。
在1024处,用户按下并保持操纵控制机制,诸如图腾上的触发器。例如,可以采用实现为图腾的触觉控制器,以允许用户按下并保持触发器以选择链接或其它可交互内容,诸如文件、应用内容等,使得当操纵可交互内容时,与发生操纵之前相比,将访问附加数据。在1074处,基础OS接收指示已经发生操纵控制机制事件(诸如按下或保持图腾触发器)的事件对象。操纵控制机制事件可以指示对可交互对象的选择或所选可交互对象的操纵。
在1026处,可以针对与可交互对象相关联的数据生成预览。在一些实施例中,这通过访问与可交互对象相关联的数据(诸如与检测到其操纵控制机制的链接相关联的URL)来执行(在1076)。在一些实施例中,可交互对象数据被解析以识别位置(例如,网站),从中识别出该位置的位置标识符(例如,IP地址)。然后建立连接(例如,TCP连接),在其中执行与HTTP服务器的通信以识别内容,该内容然后被渲染。在一些实施例中,基于预览执行内容渲染,使得生成壁挂的数字轮廓作为预览。
在继续激活操纵控制机制的同时,用户执行物理导航(例如,手、臂和/或身体运动),以将用户选择对象指向与可交互对象相关联的数据的期望的壁位置。在一些实施例中,这可能导致对象位置的物理导航(1028)。身体运动被转换成由图腾装置的操作产生的和/或与图腾装置的操作有关的事件对象,该事件对象与用于图腾的移动和/或定位的数据相关(1078)。将针对用户的身体运动检测到的该移动/定位应用于预览壁挂的移动/定位,其中将预览壁挂的动态定位与用户的身体运动相对应地显示给用户。
在1030处,用户然后在期望位置处释放图腾触发器,以将与可交互对象相关联的数据放置在期望墙壁位置处。此时,在1080处,在与释放图腾触发器的位置相对应的坐标处创建可交互对象的最终版本。壁挂的完整数字副本(例如位于源URL)用于在放置位置处生成可交互对象的最终渲染。
图12A-F提供了在混合现实环境中物理地放置壁挂的方法的示例。该图示出了混合现实环境的表示,该混合现实环境包括用户108通过头戴式系统160所观看到的物理环境。用户可以位于包括壁挂对象可以放置的墙壁空间105的各种位置中。内容(例如,可交互对象/壁挂)可以例如通过一个或多个图标/可选链接/图标1106来访问。
如图12B中所示,用户可以按下并保持可交互对象1106,例如,其中用户108操作的控制器可以被用来悬停在可交互对象1106上。当用户悬停在对象上时,用户可以按下并保持控制器上的触发器以选择对象。
如图12C中所示,当用户按下并保持控制器触发器时,将壁挂对象的预览1202显示给用户。预览1202对应于位于链接1106处的壁挂的数字轮廓和/或缩略图,并且是与可交互对象相关联的数据的视觉表示。
预览1202可以由用户108以物理方式操纵以改变预览1202的显示位置。例如,在继续保持图腾触发器的同时,用户可以物理地移动他/她的身体的一部分(例如通过移动保持图腾的手臂)到如图12D中所示的新的方位/位置。如图12E中所示,用户身体的身体运动将预览1202的位置更改为对应的墙壁位置。例如,这可以通过检测保持在移动的身体部分中的图腾1102的位置/取向的变化(例如,检测保持在用户的手中的图腾的移动)来实现,其中该身体运动的检测被转换为预览的对应移动。这样,预览的新位置的显示(以及运动时的预览显示)可以通过例如用户的身体运动的速度、身体运动的距离、身体运动的方向和/或可能对应于身体运动的任何其它合适的显示参数来控制。例如,手臂位置中的相对较小的位移将转换为所显示的预览的相对小的运动,而移动手臂相对较大的距离将转换为预览显示的相对大的移动。作为另一示例,手臂的更慢运动将被转换为预览在移动时的更慢显示的移动,而相对更快地移动手臂将被转换为预览在移动时的相对更快的移动。
用户然后可以选择壁挂将被放置的位置。如图12F中所示,当用户释放图腾触发器时,在释放图腾触发器时预览的位置变为新创建的壁挂的位置。然后取得来自可交互对象的壁挂的完整数字副本,并进行渲染以在所选的放置位置显示。
该方法有很多好处。例如,实现对象放置的该物理方法允许用户在空间上组织其任务,并使用其物理空间对内容进行分组,建立关系并创建如同真实世界中的对象的意义。此外,物理导航不是仅使用虚拟菜单和默认的对象/窗口放置,还可以使用户通过移动其手、臂和身体来手动放置内容。这是效率更高的界面,因为其利用了大多数人本能的熟悉的内在物理技能,诸如空间记忆,并为用户提供了更多控制。这是对当前技术的改进,对于传统的台式机和移动浏览器,新对象/窗口只能经由浏览器的文件菜单或链接上下文菜单创建,特别是在默认位置(其通常会遮盖当前位置)中创建新对象/窗口的情况下。另外,计算通常要求用户在一个用户交互中创建新的数字对象并且然后用第二用户交互放置新创建的数字内容,而改进仅需要一个用户交互来完成这二者。
附加实施例
下面描述本公开的其它实施例。这些附加实施例可以结合来自上面公开的实施例的元素,并且这些附加实施例的元素可以被结合到以上公开的实施例中。
1.一种方法,包括
识别可交互对象;
识别与可交互对象相对应的用户的身体运动;
基于用户的身体运动来确定与可交互对象相关联的数据的坐标位置;以及
将与可交互对象相关联的数据放置在与用户的身体运动相对应的坐标位置处。
2.根据实施例1所述的方法,其中,采用用户输入装置来检测用户的身体运动。
3.根据实施例2所述的方法,其中,用户输入装置是触觉控制器。
4.根据实施例3所述的方法,其中,触觉控制器对应于具有至少六个自由度的图腾装置。
5.根据实施例3所述的方法,其中,在与触觉控制器相关联的处理系统处,将用户的身体运动转换成事件对象,其中,事件对象与指示触觉控制器的移动或定位的数据相关。
6.根据实施例3所述的方法,其中,通过在用户的身体运动之后识别针对触觉控制器的触发器被释放的位置,来确定可交互对象的坐标位置。
7.根据实施例2所述的方法,其中,用户输入装置是用于检测用户手势的相机。
8.根据实施例1所述的方法,其中,通过识别与用户的身体的一部分交互的链接来识别打开的可交互对象。
9.根据实施例8所述的方法,其中,通过访问与链接相关联的URL的内容来生成链接的预览。
10.根据实施例9所述的方法,其中,用户的身体运动对应于预览的物理移动。
11.根据实施例1所述的方法,其中,借助计算装置的单个用户交互来打开和放置可交互对象。
12.根据实施例1所述的方法,其中,通过以下操作来确定可交互对象的取向:
确定坐标位置的表面法线;
确定与可交互对象相关联的数据的取向;以及
将坐标位置的表面法线与和可交互对象相关联的数据的取向对齐。
13.根据实施例1所述的方法,其中,可交互对象包括壁挂。
14.一种系统,包括:
混合现实显示装置,其被配置为显示三维内容;
用户输入装置,其被配置为检测用户的身体运动;
处理器,其接收和处理来自用户输入装置的数据;
存储器,其用于保持可由处理器执行的可编程代码,其中,可编程代码包括指令,指令用于:识别可交互对象,识别与可交互对象相对应的用户的身体运动,基于用户的身体运动来确定与可交互对象相关联的数据的坐标位置,以及将与可交互对象相关联的数据放置在与用户的身体运动相对应的坐标位置处。
15.根据实施例14所述的系统,其中,用户输入装置是触觉控制器。
16.根据实施例15所述的系统,其中,触觉控制器对应于具有至少六个自由度的图腾装置。
17.根据实施例15所述的系统,其中,在处理器处将用户的身体运动转换成事件对象,其中,事件对象与指示触觉控制器的移动或定位的数据相关。
18.根据实施例15所述的系统,其中,通过在用户的身体运动之后识别针对触觉控制器的触发器被释放的位置,来确定可交互对象的坐标位置。
19.根据实施例14所述的系统,其中,用户输入装置是用于检测用户手势的相机。
20.根据实施例14所述的系统,其中,通过识别与用户的身体的一部分交互的链接来识别打开的可交互对象。
21.根据实施例20所述的系统,其中,通过访问与链接相关联的URL的内容来生成链接的预览。
22.根据实施例20所述的系统,其中,用户的身体运动对应于预览的物理移动。
23.根据实施例14所述的系统,其中,可交互对象包括壁挂。
24.根据实施例14所述的系统,其中,可编程代码进一步包括用于通过以下操作确定可交互对象的取向的指令:
确定坐标位置的表面法线;
确定与可交互对象相关联的数据的取向;以及
将坐标位置的表面法线与和可交互对象相关联的数据的取向对齐。
25.一种计算机程序产品,其体现在计算机可读介质上,该计算机可读介质在其上存储有指令序列,该指令序列当由处理器执行时使处理器执行方法,该方法包括:
识别可交互对象;
识别与可交互对象相对应的用户的身体运动;
基于用户的身体运动来确定与可交互对象相关联的数据的坐标位置;以及
将与可交互对象相关联的数据放置在与用户的身体运动相对应的坐标位置处。
26.根据实施例25所述的计算机程序产品,其中,采用用户输入装置来检测与窗口相对应的用户的身体运动。
27.根据实施例26所述的计算机程序产品,其中,用户输入装置是触觉控制器。
28.根据实施例27所述的计算机程序产品,其中,触觉控制器对应于具有至少六个自由度的图腾装置。
29.根据实施例27所述的计算机程序产品,其中,在与触觉控制器相关联的处理系统处,将用户的身体运动转换成事件对象,其中,事件对象与指示触觉控制器的移动或定位的数据相关。
30.根据实施例27所述的计算机程序产品,其中,通过在用户的身体运动之后识别针对触觉控制器的触发器被释放的位置,来确定可交互对象的坐标位置。
31.根据实施例26所述的计算机程序产品,其中,用户输入装置是用于检测用户手势的相机。
32.根据实施例25所述的计算机程序产品,其中,通过识别与用户的身体的一部分交互的链接来识别要打开的窗口。
33.根据实施例32所述的计算机程序产品,其中,通过访问与链接相关联的URL的内容来生成链接的预览。
34.根据实施例33所述的计算机程序产品,其中,用户的身体运动对应于预览的物理移动。
35.根据实施例25所述的计算机程序产品,其中,借用计算装置的单个用户交互来打开和放置可交互对象。
36.根据实施例35所述的计算机程序产品,其中,单个用户交互包括计算装置上的按钮的单次按下。
37.根据实施例25所述的计算机程序产品,其中,指令序列进一步通过以下操作确定可交互对象的取向:
确定坐标位置的表面法线;
确定与可交互对象相关联的数据的取向;以及
将坐标位置的表面法线与和可交互对象相关联的数据的取向对齐。
38.一种方法,包括:
在用户交互的开始时接收指示对可交互对象的选择的数据,
接收指示与可交互对象的用户交互的结束的数据,
确定在用户交互的结束时可交互对象的位置,以及
将与可交互对象相关联的数据放置在用户交互的结束时可交互对象的位置处。
39.根据实施例38所述的方法,进一步包括:用户输入装置提供指示对可交互对象的选择的数据和指示与可交互对象的用户交互的结束的数据。
40.根据实施例39所述的方法,其中,用户输入装置是触觉控制器。
41.根据实施例40所述的方法,其中,触觉控制器对应于具有至少六个自由度的图腾装置。
42.根据实施例40所述的方法,其中,在与触觉控制器相关联的处理系统处将用户的身体运动转换成事件对象,其中,事件对象与用于触觉控制器的移动或定位的数据相关。
43.根据实施例40所述的方法,其中,通过在可交互对象的选择之后识别针对触觉控制器的触发器被释放的位置,来确定在用户交互的结束时可交互对象的位置。
44.根据实施例39所述的方法,其中,用户输入装置是用于检测用户手势的相机。
45.根据实施例44所述的方法,其中,指示对可交互对象的选择的数据对应于选择手势。
46.根据实施例44所述的方法,其中,指示与可交互对象的用户交互的结束的数据对应于释放手势。
47.根据实施例38所述的方法,其中,指示对可交互对象的选择的数据对应于用户身体的与链接交互的至少一部分。
48.根据实施例47所述的方法,其中,通过访问与链接相关联的URL的内容来生成链接的预览。
49.根据实施例48所述的方法,进一步包括:接收指示用户的身体运动的数据,其中,用户的身体运动对应于预览的物理移动。
50.根据实施例38所述的方法,其中,借助用户交互来打开和放置可交互对象。
51.根据实施例38所述的方法,其中,通过以下操作确定可交互对象的取向:
确定在用户交互的结束时可交互对象的位置的表面法线;
确定与可交互对象相关联的数据的取向;以及
将坐标位置的表面法线与和可交互对象相关联的数据的取向对齐。
52.根据实施例39所述的方法,其中,可交互对象包括壁挂。
53.一种方法,包括:
在用户交互的开始时接收指示对可交互对象的选择的数据,
接收指示与可交互对象的用户交互的结束的数据,
确定在用户交互的结束时可交互对象的位置,以及
当在用户交互的结束时可交互对象的位置在可交互对象的初始棱柱之外时,在用户交互的结束时创建新的棱柱以用于与可交互对象相关联的数据。
54.根据实施例53所述的方法,进一步包括:当可交互对象位于初始棱柱的边界之外时,在用户交互的开始和结束之间在可交互对象的位置处显示与可交互对象相关联的数据的可视预览。
55.根据实施例53所述的方法,进一步包括:用户输入装置提供指示对可交互对象的选择的数据和指示与可交互对象的用户交互的结束的数据。
56.根据实施例55所述的方法,其中,用户输入装置是触觉控制器。
57.根据实施例56所述的方法,其中,触觉控制器对应于具有至少六个自由度的图腾装置。
58.根据实施例56所述的方法,其中,在与触觉控制器相关联的处理系统处,将用户的身体运动转换成事件对象,其中,事件对象与用于触觉控制器的移动或定位的数据相关。
59.根据实施例56所述的方法,其中,通过在可交互对象的选择之后识别针对触觉控制器的触发器被释放的位置,来确定在用户交互的结束时可交互对象的位置。
60.根据实施例55所述的方法,其中,用户输入装置是用于检测用户手势的相机。
61.根据实施例60所述的方法,其中,指示对可交互对象的选择的数据对应于选择手势。
62.根据实施例60所述的方法,其中,指示与可交互对象的用户交互的结束的数据对应于释放手势。
63.根据实施例53所述的方法,其中,指示对可交互对象的选择的数据对应于用户身体的与链接交互的至少一部分。
64.根据实施例63所述的方法,其中,通过访问与链接相关联的URL的内容来生成链接的预览。
65.根据实施例64所述的方法,进一步包括:接收指示用户的身体运动的数据,其中,用户的身体运动对应于预览的物理移动。
66.根据实施例53所述的方法,其中,借助用户交互来打开和放置可交互对象。
67.根据实施例53所述的方法,其中,通过以下操作确定可交互对象的取向:
确定在用户交互的结束时可交互对象的位置的表面法线;
确定与可交互对象相关联的数据的取向;以及
将坐标位置的表面法线与和可交互对象相关联的数据的取向对齐。
68.根据实施例53所述的方法,其中,可交互对象包括壁挂。
69.一种方法,包括:
在用户交互的开始时,接收指示在第一棱柱内包含的可交互对象的选择的数据,以及
当表示在用户交互的开始和结束之间与用户交互相对应的用户的身体运动的数据指示在用户交互的结束时可交互对象在第一棱柱之外时,在用户交互的结束时在可交互对象的位置处创建第二棱柱,以包含与可交互对象相关联的数据。
70.根据实施例69所述的方法,进一步包括用户输入装置提供指示对可交互对象的选择的数据和指示表示在用户的开始和结束之间与用户交互相对应的用户的身体运动的数据。
71.根据实施例70所述的方法,其中,用户输入装置是触觉控制器。
72.根据实施例71所述的方法,其中,触觉控制器对应于具有至少六个自由度的图腾装置。
73.根据实施例71所述的方法,其中,在与触觉控制器相关联的处理系统处将用户的身体运动转换成事件对象,其中,事件对象与用于触觉控制器的移动或定位的数据相关。
74.根据实施例71所述的方法,其中,通过在可交互对象的选择之后识别针对触觉控制器的触发器被释放的位置,来确定在用户交互的结束时可交互对象的位置。
75.根据实施例70所述的方法,其中,用户输入装置是用于检测用户手势的相机。
76.根据实施例75所述的方法,其中,指示对可交互对象的选择的数据对应于选择手势。
77.根据实施例75所述的方法,其中,指示与可交互对象的用户交互的结束的数据对应于释放手势。
78.根据实施例69所述的方法,其中,指示对可交互对象的选择的所述数据对应于用户身体的与链接交互的至少一部分。
79.根据实施例78所述的方法,其中,通过访问与链接相关联的URL的内容来生成链接的预览。
80.根据实施例79所述的方法,其中,用户的身体运动对应于预览的物理移动。
81.根据实施例69所述的方法,其中,借助用户交互来打开和放置可交互对象。
82.根据实施例69所述的方法,其中,通过以下操作来确定可交互对象的取向:
确定在用户交互的结束时可交互对象的位置的表面法线;
确定与可交互对象相关联的数据的取向;以及
将坐标位置的表面法线与和可交互对象相关联的数据的取向对齐。
83.根据实施例69所述的方法,其中,可交互对象包括壁挂。
84.一种系统,包括:
混合现实显示装置,其被配置为显示三维内容;
用户输入装置,其被配置为检测用户的身体运动;
处理器,其接收和处理来自用户输入装置的数据;
存储器,其用于保存可由处理器执行的可编程代码,其中,可编程代码包括指令,指令用于:在用户交互的开始时接收对在第一棱柱内包含的可交互对象的选择的数据,接收指示与可交互对象的用户交互的结束的数据,接收指示在用户交互的开始和结束之间与从第一棱柱移除可交互对象相对应的用户的身体运动的数据,以及在与可交互对象的用户交互的结束时,创建第二棱柱以包含与可交互对象相关联的数据。
85.一种系统,包括:
混合现实显示装置,其被配置为显示三维内容;
用户输入装置,其被配置为检测用户的身体运动;
处理器,其接收和处理来自用户输入装置的数据;
存储器,其用于保存可由处理器执行的可编程代码,其中,可编程代码包括指令,指令用于:在用户交互的开始时接收指示对可交互对象的选择的数据,接收指示与可交互对象的用户交互的结束的数据,确定在用户交互的结束时可交互对象的位置,以及当在用户交互的结束时可交互对象的位置在可交互对象的初始棱柱之外时,在用户交互的结束时创建新的棱柱以用于与可交互对象相关联的数据。
86.一种系统,包括:
混合现实显示装置,其被配置为显示三维内容;
用户输入装置,其被配置为检测用户的身体运动;
处理器,其接收和处理来自用户输入装置的数据;
存储器,其用于保存可由处理器执行的可编程代码,其中,可编程代码包括指令,指令用于:在用户交互的开始时接收指示对在第一棱柱内包含的可交互对象的选择的数据,以及当表示在用户交互的开始和结束之间与用户交互相对应的用户的身体运动的数据指示在用户交互的结束时可交互对象在第一棱柱之外时,在用户交互的结束时在可交互对象的位置处创建第二棱柱,以包含与可交互对象相关联的数据。
系统架构概述
图13是适合于实现本公开的实施例的说明性计算系统1400的框图。计算系统1400包括用于传送信息的总线1406或其它通信机制,其互连子系统和装置,诸如处理器1407、系统存储器1408(例如,RAM)、静态存储装置1409(例如,ROM)、磁盘驱动器1410(例如,磁性或光学)、通信接口1414(例如,调制解调器或以太网卡)、显示器1411(例如,CRT或LCD)、输入装置1412(例如,键盘和鼠标)。
根据本发明的一个实施例,计算系统1400通过处理器1407执行包含在系统存储器1408中的一个或多个指令的一个或多个序列来执行特定的操作。可以从诸如静态存储装置1409或磁盘驱动器1410的另一计算机可读/可用介质将该指令读入系统存储器1408。在替代实施例中,可以使用硬连线电路代替软件指令或者与软件指令结合来实现本公开。因此,本公开的实施例不限于硬件电路和/或软件的任何特定组合。在一个实施例中,术语“逻辑”表示用于实现本公开的全部或部分的软件或硬件的任何组合。
如在此所使用的,术语“计算机可读介质”或“计算机可用介质”是指参与向处理器1407提供指令以供执行的任何介质。该介质可以采取许多形式,包括但不限于非易失性介质和易失性介质。非易失性介质包括例如光盘或磁盘,诸如磁盘驱动器1410。易失性介质包括动态存储器,诸如系统存储器1408。
计算机可读介质的常见形式包括,例如,软盘、柔性盘、硬盘、磁带、任何其它磁介质、CD-ROM、任何其它光学介质、打孔卡、纸带、具有孔模式的任何其它物理介质、RAM、PROM、EPROM、FLASH-EPROM、任何其它存储器芯片或盒式磁带或计算机可以从中读取的任何其它介质。
在本公开的实施例中,用于实践本公开的指令序列的执行由单个计算系统1400执行。根据本公开的其它实施例,通过通信链路1415(例如,LAN、PTSN或无线网络)耦合的两个或更多个计算系统1400可以彼此协作地执行实践本公开所需的指令序列。
计算系统1400可以通过通信链路1415和通信接口1414发送和接收消息、数据和指令,包括程序(即应用代码)。接收到的程序代码可以在接收到时由处理器1407执行,和/或存储在磁盘驱动器1410或其它非易失性存储器中,以供以后执行。计算系统1400可以通过数据接口1433与外部存储装置1431上的数据库1432通信。
在前述说明书中,已经参考本公开的具体实施方式描述了本公开。然而,将显而易见的是,在不脱离本公开的更广泛的精神和范围的情况下,可以对其进行各种修改和改变。例如,上述处理流程参考处理动作的特定顺序来描述。然而,在不影响本公开的范围或操作的情况下,可以改变许多所描述的处理动作的顺序。因此,说明书和附图应被认为是说明性而非限制性的。

Claims (25)

1.一种方法,包括:
在用户交互开始时接收指示对在第一棱柱内包含的可交互对象的选择的数据,
接收指示与所述可交互对象的所述用户交互的结束的数据,
接收指示在所述用户交互的所述开始和所述结束之间与从所述第一棱柱移除所述可交互对象相对应的所述用户的身体运动的数据,以及
在与所述可交互对象的所述用户交互的所述结束时,创建第二棱柱以包含与所述可交互对象相关联的所述数据。
2.根据权利要求1所述的方法,进一步包括:当所述可交互对象位于所述第一棱柱的边界之外时,在所述用户交互的所述开始和所述结束之间在所述可交互对象的位置处显示与所述可交互对象相关联的所述数据的可视预览。
3.根据权利要求1所述的方法,进一步包括:用户输入装置提供指示对所述可交互对象的所述选择的所述数据和指示与所述可交互对象的所述用户交互的所述结束的所述数据。
4.根据权利要求3所述的方法,其中,所述用户输入装置是触觉控制器。
5.根据权利要求4所述的方法,其中,所述触觉控制器对应于具有至少六个自由度的图腾装置。
6.根据权利要求4所述的方法,其中,在与所述触觉控制器相关联的处理系统处,将所述用户的身体运动转换成事件对象,其中,所述事件对象与用于所述触觉控制器的移动或定位的数据相关。
7.根据权利要求4所述的方法,其中,通过在所述可交互对象的所述选择之后识别针对所述触觉控制器的触发器被释放的位置,来确定在所述用户交互的所述结束时所述可交互对象的位置。
8.根据权利要求3所述的方法,其中,所述用户输入装置是用于检测用户手势的相机。
9.根据权利要求8所述的方法,其中,指示对所述可交互对象的所述选择的所述数据对应于选择手势。
10.根据权利要求8所述的方法,其中,指示与所述可交互对象的所述用户交互的所述结束的所述数据对应于释放手势。
11.根据权利要求1所述的方法,其中,指示对所述可交互对象的所述选择的所述数据对应于所述用户的身体的与链接交互的至少一部分。
12.根据权利要求11所述的方法,其中,通过访问与所述链接相关联的URL的内容来生成所述链接的预览。
13.根据权利要求12所述的方法,进一步包括:接收指示所述用户的身体运动的数据,所述用户的身体运动对应于所述预览的物理移动。
14.根据权利要求1所述的方法,其中,借助所述用户交互来打开和放置所述可交互对象。
15.根据权利要求1所述的方法,其中,通过以下操作来确定所述可交互对象的取向:
确定在所述用户交互的所述结束时所述可交互对象的所述位置的表面法线;
确定与所述可交互对象相关联的所述数据的所述取向;以及
将所述坐标位置的所述表面法线与和所述可交互对象相关联的所述数据的所述取向对齐。
16.根据权利要求1所述的方法,其中,所述可交互对象包括壁挂。
17.一种方法,包括
识别可交互对象;
识别与所述可交互对象相对应的用户的身体运动;
基于所述用户的所述身体运动来确定与所述可交互对象相关联的数据的坐标位置;以及
将与所述可交互对象相关联的所述数据放置在与所述用户的所述身体运动相对应的所述坐标位置处。
18.一种系统,包括:
混合现实显示装置,其被配置为显示三维内容;
用户输入装置,其被配置为检测用户的身体运动;
处理器,其接收和处理来自所述用户输入装置的数据;
存储器,其用于保存可由所述处理器执行的可编程代码,其中,所述可编程代码包括指令,所述指令用于:识别可交互对象,识别与所述可交互对象相对应的用户的身体运动,基于所述用户的所述身体运动来确定与所述可交互对象相关联的数据的坐标位置,以及将与所述可交互对象相关联的所述数据放置在与所述用户的所述身体运动相对应的所述坐标位置处。
19.一种计算机程序产品,其体现在计算机可读介质上,所述计算机可读介质在其上存储了指令序列,所述指令序列当由处理器执行时使所述处理器执行方法,所述方法包括:
识别可交互对象;
识别与所述可交互对象相对应的用户的身体运动;
基于所述用户的所述身体运动来确定与所述可交互对象相关联的数据的坐标位置;以及
将与所述可交互对象相关联的所述数据放置在与所述用户的所述身体运动相对应的所述坐标位置处。
20.一种方法,包括:
在用户交互的开始时接收指示对可交互对象的选择的数据,
接收指示与所述可交互对象的所述用户交互的结束的数据,
确定在所述用户交互的所述结束时所述可交互对象的位置,以及
将与所述可交互对象相关联的数据放置在所述用户交互的所述结束时所述可交互对象的所述位置处。
21.一种方法,包括:
在用户交互的开始时接收指示对可交互对象的选择的数据,
接收指示与所述可交互对象的所述用户交互的结束的数据,
确定在所述用户交互的所述结束时所述可交互对象的位置,以及
当在所述用户交互的所述结束时所述可交互对象的所述位置在所述可交互对象的初始棱柱之外时,在所述用户交互的所述结束时创建新的棱柱以用于与所述可交互对象相关联的所述数据。
22.一种方法,包括:
在用户交互的开始时,接收指示对在第一棱柱内包含的可交互对象的选择的数据,以及
当表示在所述用户交互的所述开始和结束之间与所述用户交互相对应的所述用户的身体运动的数据指示在所述用户交互的所述结束时所述可交互对象在所述第一棱柱之外时,在所述用户交互的结束时在所述可交互对象的位置处创建第二棱柱,以包含与所述可交互对象相关联的所述数据。
23.一种系统,包括:
混合现实显示装置,其被配置为显示三维内容;
用户输入装置,其被配置为检测用户的身体运动;
处理器,其接收和处理来自所述用户输入装置的数据;
存储器,其用于保存可由所述处理器执行的可编程代码,其中,所述可编程代码包括指令,所述指令用于:在用户交互的开始时接收指示对在第一棱柱内包含的可交互对象的选择的数据,接收指示与所述可交互对象的所述用户交互的结束的数据,接收指示在所述用户交互的所述开始和所述结束之间与从所述第一棱柱移除所述可交互对象相对应的所述用户的身体运动的数据,以及在与所述可交互对象的所述用户交互的所述结束时,创建第二棱柱以包含与所述可交互对象相关联的所述数据。
24.一种系统,包括:
混合现实显示装置,其被配置为显示三维内容;
用户输入装置,其被配置为检测用户的身体运动;
处理器,其接收和处理来自所述用户输入装置的数据;
存储器,其用于保存可由所述处理器执行的可编程代码,其中,所述可编程代码包括指令,所述指令用于:在用户交互的开始时接收指示对可交互对象的选择的数据,接收指示与所述可交互对象的所述用户交互的结束的数据,确定在所述用户交互的所述结束时所述可交互对象的位置,以及当在所述用户交互的所述结束时所述可交互对象的所述位置在所述可交互对象的初始棱柱之外时,在所述用户交互的所述结束时创建新的棱柱以用于与所述可交互对象相关联的所述数据。
25.一种系统,包括:
混合现实显示装置,其被配置为显示三维内容;
用户输入装置,其被配置为检测用户的身体运动;
处理器,其接收和处理来自所述用户输入装置的数据;
存储器,其用于保存可由所述处理器执行的可编程代码,其中,所述可编程代码包括指令,所述指令用于:在用户交互的开始时接收指示对在第一棱柱内包含的可交互对象的选择的数据,以及当表示在所述用户交互的所述开始和所述结束之间与所述用户交互相对应的所述用户的身体运动的数据指示在所述用户交互的所述结束时所述可交互对象在所述第一棱柱之外时,在所述用户交互的结束时在所述可交互对象的位置处创建第二棱柱,以包含与所述可交互对象相关联的所述数据。
CN201980014588.7A 2018-02-22 2019-02-21 采用物理操纵的对象创建 Pending CN111801641A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862634007P 2018-02-22 2018-02-22
US62/634,007 2018-02-22
US201862665251P 2018-05-01 2018-05-01
US62/665,251 2018-05-01
PCT/US2019/018920 WO2019165044A1 (en) 2018-02-22 2019-02-21 Object creation with physical manipulation

Publications (1)

Publication Number Publication Date
CN111801641A true CN111801641A (zh) 2020-10-20

Family

ID=67688428

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980014588.7A Pending CN111801641A (zh) 2018-02-22 2019-02-21 采用物理操纵的对象创建

Country Status (9)

Country Link
US (3) US11087563B2 (zh)
EP (1) EP3756079A4 (zh)
JP (2) JP7139436B2 (zh)
KR (1) KR20200121357A (zh)
CN (1) CN111801641A (zh)
AU (1) AU2019225931A1 (zh)
CA (1) CA3091026A1 (zh)
IL (2) IL301281A (zh)
WO (1) WO2019165044A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117093070A (zh) * 2023-06-05 2023-11-21 北京虹宇科技有限公司 扩展现实空间中的应用形态控制方法、装置及设备

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3060209A1 (en) 2017-05-01 2018-11-08 Magic Leap, Inc. Matching content to a spatial 3d environment
CN111684495A (zh) 2017-12-22 2020-09-18 奇跃公司 用于在混合现实系统中管理和显示虚拟内容的方法和系统
IL301281A (en) * 2018-02-22 2023-05-01 Magic Leap Inc Shoot an object with physical manipulation
IL301443A (en) 2018-02-22 2023-05-01 Magic Leap Inc A browser for mixed reality systems
EP3640767A1 (de) * 2018-10-17 2020-04-22 Siemens Schweiz AG Verfahren zum bestimmen mindestens eines bereichs in mindestens einem eingabemodell für mindestens ein zu platzierendes element
US11263824B2 (en) * 2018-11-14 2022-03-01 Unity IPR ApS Method and system to generate authoring conditions for digital content in a mixed reality environment
WO2020226832A1 (en) * 2019-05-06 2020-11-12 Apple Inc. Device, method, and computer-readable medium for presenting computer-generated reality files
US11315326B2 (en) * 2019-10-15 2022-04-26 At&T Intellectual Property I, L.P. Extended reality anchor caching based on viewport prediction
US11640228B2 (en) * 2021-01-06 2023-05-02 Adobe Inc. Accessing virtually rendered digital content
CA3226429A1 (en) * 2021-07-22 2023-01-26 The University Of British Columbia System and apparatus for remote interaction with an object
US20230040610A1 (en) * 2021-08-06 2023-02-09 Apple Inc. Object placement for electronic devices

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070074125A1 (en) * 2005-09-26 2007-03-29 Microsoft Corporation Preview information for web-browsing
US20130263029A1 (en) * 2012-03-31 2013-10-03 Microsoft Corporation Instantiable Gesture Objects
US20140337792A1 (en) * 2013-05-10 2014-11-13 Samsung Electronics Co., Ltd. Display apparatus and user interface screen providing method thereof
WO2015033377A1 (ja) * 2013-09-06 2015-03-12 株式会社マーズフラッグ 情報処理装置、検索サーバ、ウェブサーバ及びコンピュータプログラム
US20150268831A1 (en) * 2012-06-22 2015-09-24 Microsoft Technology Licensing, Llc 3d user interface for application entities
JP2016511492A (ja) * 2013-03-15 2016-04-14 クアルコム,インコーポレイテッド 少なくとも2つの制御オブジェクトを用いて行われるジェスチャの検出
US20170256096A1 (en) * 2016-03-07 2017-09-07 Google Inc. Intelligent object sizing and placement in a augmented / virtual reality environment
WO2018031621A1 (en) * 2016-08-11 2018-02-15 Magic Leap, Inc. Automatic placement of a virtual object in a three-dimensional space

Family Cites Families (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5923318A (en) * 1996-04-12 1999-07-13 Zhai; Shumin Finger manipulatable 6 degree-of-freedom input device
US6720949B1 (en) * 1997-08-22 2004-04-13 Timothy R. Pryor Man machine interfaces and applications
US6629065B1 (en) 1998-09-30 2003-09-30 Wisconsin Alumni Research Foundation Methods and apparata for rapid computer-aided design of objects in virtual reality and other environments
US9208270B2 (en) 2000-08-02 2015-12-08 Comsol Ab System and method for establishing bidirectional links between multiphysics modeling and design systems
US7043695B2 (en) 2000-09-19 2006-05-09 Technion Research & Development Foundation Ltd. Object positioning and display in virtual environments
WO2004038657A2 (en) 2002-10-22 2004-05-06 Artoolworks Tracking a surface in a 3-dimensional scene using natural visual features of the surface
JP4212564B2 (ja) 2005-02-28 2009-01-21 ザイオソフト株式会社 画像処理方法および画像処理プログラム
US7595810B2 (en) 2006-03-22 2009-09-29 Apple Inc. Methods of manipulating a screen space of a display device
US20090028142A1 (en) 2007-07-25 2009-01-29 Schmidt Brian K Streaming data content in a network
US8245241B2 (en) 2007-10-02 2012-08-14 International Business Machines Corporation Arrangements for interactivity between a virtual universe and the world wide web
US8191001B2 (en) 2008-04-05 2012-05-29 Social Communications Company Shared virtual area communication environment based apparatus and methods
US10872322B2 (en) * 2008-03-21 2020-12-22 Dressbot, Inc. System and method for collaborative shopping, business and entertainment
US9952673B2 (en) 2009-04-02 2018-04-24 Oblong Industries, Inc. Operating environment comprising multiple client devices, multiple displays, multiple users, and gestural control
US20160077677A1 (en) 2008-05-20 2016-03-17 Israel Valdes Apparatus and method for user configurable content
US8924862B1 (en) 2008-09-05 2014-12-30 Cisco Technology, Inc. Optimizing desktop sharing for wireless clients during networked collaboration
KR101082487B1 (ko) 2010-01-29 2011-11-11 키위플 주식회사 객체 인식시스템 및 이를 이용하는 객체 인식 방법
US20130278631A1 (en) * 2010-02-28 2013-10-24 Osterhout Group, Inc. 3d positioning of augmented reality information
US20120212484A1 (en) 2010-02-28 2012-08-23 Osterhout Group, Inc. System and method for display content placement using distance and location information
AU2011220382A1 (en) * 2010-02-28 2012-10-18 Microsoft Corporation Local advertising content on an interactive head-mounted eyepiece
US9069577B2 (en) 2010-11-23 2015-06-30 Apple Inc. Grouping and browsing open windows
EP2691935A1 (en) 2011-03-29 2014-02-05 Qualcomm Incorporated System for the rendering of shared digital interfaces relative to each user's point of view
US9354899B2 (en) 2011-04-18 2016-05-31 Google Inc. Simultaneous display of multiple applications using panels
CN103702726B (zh) 2011-05-23 2016-01-13 乐高公司 玩具搭建系统、产生构建指令的方法和数据处理系统
US8912979B1 (en) 2011-07-14 2014-12-16 Google Inc. Virtual window in head-mounted display
KR20140066258A (ko) * 2011-09-26 2014-05-30 마이크로소프트 코포레이션 투시 근안 디스플레이에 대한 센서 입력에 기초한 비디오 디스플레이 수정
US9734633B2 (en) 2012-01-27 2017-08-15 Microsoft Technology Licensing, Llc Virtual environment generating system
US9671566B2 (en) 2012-06-11 2017-06-06 Magic Leap, Inc. Planar waveguide apparatus with diffraction element(s) and system employing same
US20130342572A1 (en) 2012-06-26 2013-12-26 Adam G. Poulos Control of displayed content in virtual environments
US9292085B2 (en) 2012-06-29 2016-03-22 Microsoft Technology Licensing, Llc Configuring an interaction zone within an augmented reality environment
WO2014031899A1 (en) 2012-08-22 2014-02-27 Goldrun Corporation Augmented reality virtual content platform apparatuses, methods and systems
US9461876B2 (en) 2012-08-29 2016-10-04 Loci System and method for fuzzy concept mapping, voting ontology crowd sourcing, and technology prediction
US9070194B2 (en) 2012-10-25 2015-06-30 Microsoft Technology Licensing, Llc Planar surface detection
US9407824B2 (en) 2012-11-01 2016-08-02 Google Inc. Multi-directional content capture on mobile devices
KR101984915B1 (ko) 2012-12-03 2019-09-03 삼성전자주식회사 증강 현실 컨텐츠 운용 방법 및 이를 지원하는 단말기와 시스템
US9317972B2 (en) 2012-12-18 2016-04-19 Qualcomm Incorporated User interface for augmented reality enabled devices
CA2896985A1 (en) 2013-01-03 2014-07-10 Meta Company Extramissive spatial imaging digital eye glass for virtual or augmediated vision
US20140200863A1 (en) 2013-01-11 2014-07-17 The Regents Of The University Of Michigan Monitoring proximity of objects at construction jobsites via three-dimensional virtuality in real-time
US20140225922A1 (en) 2013-02-11 2014-08-14 Rocco A. Sbardella System and method for an augmented reality software application
JP2014157466A (ja) 2013-02-15 2014-08-28 Sony Corp 情報処理装置及び記憶媒体
GB201303707D0 (en) * 2013-03-01 2013-04-17 Tosas Bautista Martin System and method of interaction for mobile devices
KR102516124B1 (ko) 2013-03-11 2023-03-29 매직 립, 인코포레이티드 증강 및 가상 현실을 위한 시스템 및 방법
US20140267228A1 (en) 2013-03-14 2014-09-18 Microsoft Corporation Mapping augmented reality experience to various environments
NZ751593A (en) 2013-03-15 2020-01-31 Magic Leap Inc Display system and method
US20150277699A1 (en) * 2013-04-02 2015-10-01 Cherif Atia Algreatly Interaction method for optical head-mounted display
US10262462B2 (en) 2014-04-18 2019-04-16 Magic Leap, Inc. Systems and methods for augmented and virtual reality
US9129430B2 (en) 2013-06-25 2015-09-08 Microsoft Technology Licensing, Llc Indicating out-of-view augmented reality images
US10861224B2 (en) 2013-07-23 2020-12-08 Hover Inc. 3D building analyzer
US20180225885A1 (en) 2013-10-01 2018-08-09 Aaron Scott Dishno Zone-based three-dimensional (3d) browsing
KR101512084B1 (ko) 2013-11-15 2015-04-17 한국과학기술원 가상현실 기반의 3차원 웹 검색 인터페이스를 제공하는 웹 검색 시스템 및 그 제공 방법
US9354778B2 (en) 2013-12-06 2016-05-31 Digimarc Corporation Smartphone-based methods and systems
US9411422B1 (en) 2013-12-13 2016-08-09 Audible, Inc. User interaction with content markers
US20150185825A1 (en) 2013-12-30 2015-07-02 Daqri, Llc Assigning a virtual user interface to a physical object
US20150206343A1 (en) 2014-01-17 2015-07-23 Nokia Corporation Method and apparatus for evaluating environmental structures for in-situ content augmentation
US9201578B2 (en) 2014-01-23 2015-12-01 Microsoft Technology Licensing, Llc Gaze swipe selection
KR102184402B1 (ko) * 2014-03-06 2020-11-30 엘지전자 주식회사 글래스 타입의 이동 단말기
US10203762B2 (en) 2014-03-11 2019-02-12 Magic Leap, Inc. Methods and systems for creating virtual and augmented reality
US20150302651A1 (en) 2014-04-18 2015-10-22 Sam Shpigelman System and method for augmented or virtual reality entertainment experience
US9361732B2 (en) 2014-05-01 2016-06-07 Microsoft Technology Licensing, Llc Transitions between body-locked and world-locked augmented reality
US20150331240A1 (en) 2014-05-15 2015-11-19 Adam G. Poulos Assisted Viewing Of Web-Based Resources
US10156967B2 (en) 2014-05-31 2018-12-18 Apple Inc. Device, method, and graphical user interface for tabbed and private browsing
CN106937531B (zh) 2014-06-14 2020-11-06 奇跃公司 用于产生虚拟和增强现实的方法和系统
US9858720B2 (en) 2014-07-25 2018-01-02 Microsoft Technology Licensing, Llc Three-dimensional mixed-reality viewport
US20160027214A1 (en) 2014-07-25 2016-01-28 Robert Memmott Mouse sharing between a desktop and a virtual world
US9734634B1 (en) * 2014-09-26 2017-08-15 A9.Com, Inc. Augmented reality product preview
US10726593B2 (en) 2015-09-22 2020-07-28 Fyusion, Inc. Artificially rendering images using viewpoint interpolation and extrapolation
JP5767386B1 (ja) 2014-12-15 2015-08-19 株式会社コロプラ ヘッドマウントディスプレイシステム、ヘッドマウントディスプレイへ表示するための方法、及びプログラム
US10335677B2 (en) 2014-12-23 2019-07-02 Matthew Daniel Fuchs Augmented reality system with agent device for viewing persistent content and method of operation thereof
US20160300392A1 (en) 2015-04-10 2016-10-13 VR Global, Inc. Systems, media, and methods for providing improved virtual reality tours and associated analytics
WO2016176511A1 (en) 2015-04-29 2016-11-03 Data Cocoon LLC Tessellated data visualization system
JP6780642B2 (ja) 2015-06-15 2020-11-04 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
EP3113106A1 (en) 2015-07-02 2017-01-04 Nokia Technologies Oy Determination of environmental augmentation allocation data
WO2017030306A1 (en) 2015-08-18 2017-02-23 Samsung Electronics Co., Ltd. Method and system for bookmarking a webpage
US10057078B2 (en) 2015-08-21 2018-08-21 Samsung Electronics Company, Ltd. User-configurable interactive region monitoring
US10318225B2 (en) * 2015-09-01 2019-06-11 Microsoft Technology Licensing, Llc Holographic augmented authoring
CN108139803B (zh) 2015-10-08 2021-04-20 Pcms控股公司 用于动态显示器配置的自动校准的方法及系统
KR102641655B1 (ko) 2015-10-20 2024-02-27 매직 립, 인코포레이티드 3차원 공간에서 가상 객체들 선택
TWI567691B (zh) * 2016-03-07 2017-01-21 粉迷科技股份有限公司 立體空間的場景編輯方法與系統
CN109310476B (zh) * 2016-03-12 2020-04-03 P·K·朗 用于手术的装置与方法
US10373381B2 (en) 2016-03-30 2019-08-06 Microsoft Technology Licensing, Llc Virtual object manipulation within physical environment
US10268266B2 (en) 2016-06-29 2019-04-23 Microsoft Technology Licensing, Llc Selection of objects in three-dimensional space
CN109643373B (zh) 2016-06-30 2023-06-27 奇跃公司 估计3d空间中的姿态
US10489978B2 (en) * 2016-07-26 2019-11-26 Rouslan Lyubomirov DIMITROV System and method for displaying computer-based content in a virtual or augmented environment
US20180082480A1 (en) * 2016-09-16 2018-03-22 John R. White Augmented reality surgical technique guidance
EP3523783A4 (en) 2016-10-05 2019-10-16 Magic Leap, Inc. SYSTEMS AND METHOD FOR SURFACE MODELING
US11290572B2 (en) * 2016-11-07 2022-03-29 Constructive Labs System and method for facilitating sharing of virtual three-dimensional space
US10271043B2 (en) 2016-11-18 2019-04-23 Zspace, Inc. 3D user interface—360-degree visualization of 2D webpage content
US10599823B2 (en) 2016-11-18 2020-03-24 Invensense, Inc. Systems and methods for coordinating applications with a user interface
US20180150204A1 (en) 2016-11-30 2018-05-31 Google Inc. Switching of active objects in an augmented and/or virtual reality environment
WO2018176010A2 (en) * 2017-03-24 2018-09-27 Inmentis, Llc Social media system with navigable, artificial-intelligence-based graphical user interface with broadcasting
CA3060209A1 (en) 2017-05-01 2018-11-08 Magic Leap, Inc. Matching content to a spatial 3d environment
US10304251B2 (en) 2017-06-15 2019-05-28 Microsoft Technology Licensing, Llc Virtually representing spaces and objects while maintaining physical properties
US10719870B2 (en) * 2017-06-27 2020-07-21 Microsoft Technology Licensing, Llc Mixed reality world integration of holographic buttons in a mixed reality device
US20190005724A1 (en) 2017-06-30 2019-01-03 Microsoft Technology Licensing, Llc Presenting augmented reality display data in physical presentation environments
US10444975B2 (en) * 2017-07-18 2019-10-15 Google Llc Graphical icon manipulation
US10803663B2 (en) 2017-08-02 2020-10-13 Google Llc Depth sensor aided estimation of virtual reality environment boundaries
CN111684495A (zh) * 2017-12-22 2020-09-18 奇跃公司 用于在混合现实系统中管理和显示虚拟内容的方法和系统
IL301281A (en) * 2018-02-22 2023-05-01 Magic Leap Inc Shoot an object with physical manipulation

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070074125A1 (en) * 2005-09-26 2007-03-29 Microsoft Corporation Preview information for web-browsing
US20130263029A1 (en) * 2012-03-31 2013-10-03 Microsoft Corporation Instantiable Gesture Objects
US20150268831A1 (en) * 2012-06-22 2015-09-24 Microsoft Technology Licensing, Llc 3d user interface for application entities
JP2016511492A (ja) * 2013-03-15 2016-04-14 クアルコム,インコーポレイテッド 少なくとも2つの制御オブジェクトを用いて行われるジェスチャの検出
US20140337792A1 (en) * 2013-05-10 2014-11-13 Samsung Electronics Co., Ltd. Display apparatus and user interface screen providing method thereof
WO2015033377A1 (ja) * 2013-09-06 2015-03-12 株式会社マーズフラッグ 情報処理装置、検索サーバ、ウェブサーバ及びコンピュータプログラム
US20170256096A1 (en) * 2016-03-07 2017-09-07 Google Inc. Intelligent object sizing and placement in a augmented / virtual reality environment
WO2018031621A1 (en) * 2016-08-11 2018-02-15 Magic Leap, Inc. Automatic placement of a virtual object in a three-dimensional space

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117093070A (zh) * 2023-06-05 2023-11-21 北京虹宇科技有限公司 扩展现实空间中的应用形态控制方法、装置及设备

Also Published As

Publication number Publication date
EP3756079A4 (en) 2021-04-28
KR20200121357A (ko) 2020-10-23
US20230267697A1 (en) 2023-08-24
JP2022168082A (ja) 2022-11-04
IL276629A (en) 2020-09-30
US11636660B2 (en) 2023-04-25
WO2019165044A1 (en) 2019-08-29
AU2019225931A1 (en) 2020-08-20
IL276629B2 (en) 2023-08-01
IL276629B1 (en) 2023-04-01
US20210335053A1 (en) 2021-10-28
US11087563B2 (en) 2021-08-10
CA3091026A1 (en) 2019-08-29
US20210097775A1 (en) 2021-04-01
EP3756079A1 (en) 2020-12-30
IL301281A (en) 2023-05-01
JP2021514089A (ja) 2021-06-03
JP7139436B2 (ja) 2022-09-20

Similar Documents

Publication Publication Date Title
US11636660B2 (en) Object creation with physical manipulation
CN115601671B (zh) 用于向用户显示虚拟内容的系统和方法
US11972092B2 (en) Browser for mixed reality systems
CN111133365B (zh) 内容到空间3d环境的匹配
US11803628B2 (en) Secure authorization via modal window

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