CN112313605A - 增强现实环境中对象的放置和操纵 - Google Patents

增强现实环境中对象的放置和操纵 Download PDF

Info

Publication number
CN112313605A
CN112313605A CN201980042083.1A CN201980042083A CN112313605A CN 112313605 A CN112313605 A CN 112313605A CN 201980042083 A CN201980042083 A CN 201980042083A CN 112313605 A CN112313605 A CN 112313605A
Authority
CN
China
Prior art keywords
environment
reference surface
computing device
user
displaying
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
CN201980042083.1A
Other languages
English (en)
Inventor
约斯特·科恩戈尔德
凯斯·舍费尔
布赖恩·伍兹
杰伊·斯蒂尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN112313605A publication Critical patent/CN112313605A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/014Hand-worn input/output arrangements, e.g. data gloves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/60Shadow generation
    • 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/0132Head-up displays characterised by optical features comprising binocular systems
    • G02B2027/0134Head-up displays characterised by optical features comprising binocular systems of stereoscopic type
    • 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/0138Head-up displays characterised by optical features comprising image capture systems, e.g. camera

Landscapes

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

Abstract

在一般方面,一种方法可以包括:由电子设备接收定义增强现实(AR)环境的数据;接收将AR对象放置在AR环境中的参考表面上的指示;响应于该指示,在AR环境中的参考表面上显示AR对象;在电子设备的输入设备上执行第一手势;响应于第一手势,将AR对象升高在AR环境中的参考表面之上一定距离;在电子设备的输入设备上执行第二手势;以及响应于第二手势,在AR环境中移动AR对象。

Description

增强现实环境中对象的放置和操纵
相关申请的交叉引用
本申请要求于2018年10月3日提交的美国临时申请No.62/740,918的优先权,其公开内容通过引用整体合并于此。
技术领域
本文件总体上涉及在增强现实(AR)环境中渲染计算机生成的对象。更具体地说,本文件涉及在AR环境中对象(例如,AR对象)的放置、操纵(例如,升高、移动等)的方法。
背景技术
在基于计算机的媒体和其他内容的消费的场境下,向用户(查看者、参与者等)提供沉浸式体验变得越来越普遍。一个领域涉及在诸如智能电话或平板电脑的设备上呈现虚拟现实(VR)和/或增强现实(AR)环境。在AR环境中,人们可以观看至少呈现物理环境的方面(例如,物理空间的视频或实时图像)和VR的方面(例如,叠加在视频或图像上的虚拟对象)两者的屏幕以提供AR体验。
发明内容
该文件描述了用于显示增强现实的***和方法,其中用户可以在物理空间的视图中放置和操纵虚拟的(例如,计算机生成的)对象。在一般方面,一种方法可以包括:由电子设备接收定义增强现实(AR)环境的数据;接收将AR对象放置在AR环境中的参考表面上的指示;响应于该指示,在AR环境中的参考表面上显示AR对象;在电子设备的输入设备上执行第一手势;响应于第一手势,将AR对象升高到在AR环境中的参考表面之上一定距离;在电子设备的输入设备上执行第二手势;以及响应于第二手势,在AR环境中移动AR对象。
在附图和以下描述中阐述了一种或多种实施方式的细节。根据说明书和附图以及根据权利要求书,其他特征将会是显而易见的。
附图说明
图1示出可以用于通过增强现实(AR)环境来生成沉浸式体验的***的示例。
图2是图示根据示例实施方式的***的框图。
图3是示例物理空间的第三人称视角,其中用户通过图1的示例HMD正在体验AR环境。
图4是经由示例便携式电子设备体验AR环境的用户的示意图。
图5是根据本文描述的实施方式的为***的内容生成阴影的示例方法的图。
图6是图示AR对象在AR环境中的放置的图。
图7A至图7C是图示用于在AR环境中从参考表面升高AR对象的序列的图。
图8A-8D是图示用于在AR环境中操纵AR对象(例如,升高的AR对象)的序列的图。
图9是图示用于在AR环境中放置和操纵AR对象的方法的流程图。
图10示出可用于实现本文描述的技术的计算机设备和移动计算机设备的示例。
具体实施方式
本文档描述了用于向用户显示增强现实(AR)环境的设备和方法的示例,其中用户可以放置虚拟对象并且在显示的AR环境内的物理空间中与虚拟对象交互(例如,操纵、升高、移动、与其交互等)。在一些实施方式中,这样的虚拟对象可以包括贴纸、角色、精灵、动画、3D渲染等。
图1示出***100的示例,该***100可以用于通过AR环境生成沉浸式体验。在一些实施方式中,沉浸式体验允许用户(未示出)结合物理现实的影像看到一个或多个AR(虚拟的、计算机生成的等)对象。例如,沉浸式体验可以允许用户通过在物理空间中移动时握住设备来探索AR环境。用户可以相对于物理现实将一个或多个AR对象放置在AR环境中,并且用户可以在AR环境内对所放置的AR对象进行查看、操纵、升高等。在一些实施方式中,用户可以在查看AR环境并与AR环境交互时使设备保持静止。在一些实施方式中,用户可以通过移动设备以显示AR环境的物理空间组件的对应物理位所,来通过物理空间与AR对象交互。可以使用一种或多种方法来监视或以其它方式确定物理位所,所述方法包括但不限于光学、基于无线电和/或声学的位置方法学。一些实施方式也可以或替代地在虚拟现实(VR)环境中使用。例如,本文描述的功能性可以被提供用于在头戴式显示器上进行观察,包括但不限于在下面参考图9描述的VR头戴式耳机1085上。
***100在此处示出为在空间(物理空间)102中,其可以是任何种类的物理空间,包括但不限于房间、办公室、公园或其他物理场所。从上方示意性地示出图1中的空间102。在一些实施方式中,空间102可以包含一个或多个物理结构(未示出),诸如桌子、长凳、树木等。在一些实施方式中,空间102可以不包含物理结构。可以将空间102用作AR沉浸式体验的视觉背景,例如,在其中用户可以查看空间102中各个位所处的AR对象并与其交互,并且因此可以被呈现有显示在a0020的屏幕上的对应的AR体验(可视化)。
在图1中,已经在空间102中示意性地指示了多个物理位所104A-105C。***100的用户可以经由AR环境导航到空间102中的一些或全部物理位所104A-104C。经由AR环境,用户可以将AR对象放置在物理位所104A-104C处,或者可以将AR对象放置在空间102中的一个物理位所处,并且然后在AR环境中将AR对象移动(移动、操纵、交互等)到空间102中的一个或多个其他物理位所。在一些实施方式中,物理位所104A-C可以对应于空间102中的物理对象,诸如桌子、椅子等。
可以使用一个或多个设备来创建AR体验。在此,在空间102中示意性地示出设备106。可以使用任何类型的设备,包括但不限于智能电话或平板设备。例如,与以下参考图10描述的那些设备类似的任何设备都可以被使用。在一些实施方式中,可以结合设备106的其他功能性来实现本文描述的用于提供沉浸式AR体验的方法,所述其他功能性诸如相机应用、在设备106上执行的游戏、专用的AR应用等作为一些示例。
在图1的示例中,设备106包括AR***108。AR***108可以使用任何形式的AR技术来感测设备106在空间102中的位置。在一些实施方式中,空间102中的标记可以形成AR环境中的组织的基础。例如,AR***108可以使用光感测(例如,红外光)和两个或更多个透镜来在空间102中生成立体视觉,以便开发允许AR***108也外推到当前没有视线的空间102的位置中的其立体理解。在一些实施方式中,AR***108部分地在设备106上并且部分地在一个或多个其他设备(例如,另一手持式设备或云***)上执行。
设备106可以包括一个或多个显示屏110。在一些实施方式中,显示屏可以是触摸屏。例如,用户可以例如使用AT***108来与显示屏110交互以在AR环境中放置、操纵AR对象并与AR对象交互,其中,如上所述,AR***108可以结合设备100的其它功能(特征等等)操作。
设备106可以包括定向***114。定向***可以用作确定空间102内设备106的物理存在的一个或多个方面。在一些实施方式中,定向***114可以确定设备106的物理倾斜度。例如,定向***114可以包括图像传感器114A(例如,相机和/或红外(IR)传感器)并且可以捕获空间102的至少一部分的图像以便确定设备106当前是如何定向的。作为另一示例,定向***114可以包括惯性测量单元(IMU)114B(例如,加速度计、陀螺仪等),其用于感测设备106当前如何定向。在一些实施方式中,定向***114、图像传感器114A和/或IMU 114B可以是设备106中的本地组件,诸如智能手机或平板设备的相机和/或IMU。在一些实施方式中,定向***114可以与AR***108结合操作以允许用户在AR环境内导航空间102。
在图1中示意性地图示AR环境116。AR环境116可以是虚拟构造,并且可以存储在存储器中,诸如在设备106上。AR环境116的一个或多个方面可以呈现在设备106的显示屏110上。例如,在任何给定时间只能向用户呈现AR环境116的一部分。AR环境116的所呈现方面可以包括物理现实的一部分的影像(例如,在设备106的相机的视图内的空间102的图像)和诸如用户放置在AR环境116中的AR对象的一个或多个虚拟对象的影像。AR环境116的外观(例如,在特定时间)可以取决于设备106当前位于空间102中的何处和/或取决于设备106如何定向。在图1中通过箭头118示意性地表示了AR环境116和空间102之间的这种关系。
在图1的示例中,示出了AR对象120A-120C。例如,AR对象120A-120C可以例如由用户放置在AR环境116中的与空间102中的物理位所相对应的各个位所处。为了说明的目的,AR对象120A-120C与位所104A-104C分别对应地图示。在一些实施方式中,AR对象120A-120C可以被放置和/或操纵到在AR环境116中除了图1中所示的那些位所之外的其他位所处。而且,如图1中的虚线箭头所图示的,用户可以利用AR环境116在对象120A-120的位所之间移动。图1中所示的路径是说明性的,并且不同的路径和/或位所可以由用户查看,并且可以包括在那些位所中的AR对象(例如,由用户放置在那些位所和/或由用户操纵到这些位所的AR对象)。
图2是图示根据示例实施方式的另一***200的框图。与***100一样,***200可以为***200的用户生成增强现实(AR)环境。在一些实施方式中,***200包括计算设备202、头戴式显示设备(HMD)204或其他显示设备(诸如计算设备202的显示器)和AR内容源206。还示出网络208,计算设备202可以通过该网络与AR内容源206通信。
计算设备202可以包括存储器210、处理器部件212、通信模块214、传感器***216和显示设备218。存储器210可以包括AR应用220、AR内容222、图像缓冲器224、图像分析器226、内容分析器228和阴影引擎230。计算设备202还可以包括各种用户输入组件(未示出),诸如使用无线通信协议与计算设备202进行通信的控制器。在一些实施方式中,计算设备202是移动设备(例如,智能电话),其可以被配置成经由HMD 204和/或显示设备218向用户提供或输出AR内容。例如,在一些实施方式中,计算设备202和HMD 204(或其他显示设备)可以经由有线连接(例如,通用串行总线(USB)电缆)或经由无线通信协议(例如,任何WiFi协议、任何蓝牙协议、紫蜂等)通信。在一些实施方式中,计算设备202可以是HMD 204的组件,并且可以被包含在HMD 204的壳体内。
存储器210可以包括一个或多个非暂时性计算机可读存储介质。存储器210可以存储可用于为用户生成AR环境的指令和数据。
处理器部件212包括能够执行指令(诸如由存储器210存储的指令)以执行与生成AR环境相关联的各种任务的一个或多个设备。例如,处理器部件212可以包括中央处理单元(CPU)和/或图形处理器单元(GPU)。例如,如果存在GPU,则诸如显示AR对象、显示升高AR对象的方面(诸如显示牵绳线(tether line))、生成阴影或阴影化表示AR对象的阴影的多边形等的一些图像/视频渲染任务可能会从CPU卸载到GPU。
通信模块214包括用于与诸如AR内容源206的其他计算设备进行通信的一个或多个设备。通信模块114可以经由诸如网络208的无线或有线网络进行通信。
传感器***216可以包括各种传感器,诸如相机部件232。传感器***216的实施方式还可以包括其他传感器,例如,包括惯性运动单元(IMU)234、光传感器、音频传感器、图像传感器、距离和/或接近传感器、诸如电容性传感器的接触传感器、计时器和/或其他传感器和/或传感器的不同组合。
IMU 234检测计算设备202和/或HMD 204的运动、移动和/或加速度。IMU 234可以包括各种不同类型的传感器,例如,加速度计、陀螺仪、磁力计和其他此类传感器。可以基于IMU 234中包括的传感器提供的数据来检测和跟踪HMD 204的位置和定向。检测到的HMD204的位置和定向可以允许***检测并跟踪用户的注视方向和头部移动,或计算设备202的移动。
在一些实施方式中,AR应用220可以使用传感器***216来确定用户在物理空间内的位所和定向和/或辨识物理空间内的特征或对象。
相机部件232捕获计算设备202周围的物理空间的图像和/或视频。相机部件232可以包括一个或多个相机。相机部件232还可包括红外相机。
AR应用220可以经由HMD和/或计算设备202的诸如显示设备218、扬声器和/或其他输出设备的一个或多个输出设备向用户呈现AR内容或向用户提供AR内容。在一些实施方式中,AR应用220包括存储在存储器210中的指令,该指令在由处理器部件212执行时使处理器部件212执行本文所述的操作。例如,AR应用220可以基于例如AR内容——诸如AR内容222和/或从AR内容源206接收的AR内容——向用户生成AR环境并将AR环境呈现给用户。AR内容222可以包括可以在HMD 204中的用户视野的一部分上显示的诸如图像或视频的内容。AR环境还可以包括物理(真实世界)环境和物理(真实世界)实体的至少一部分。例如,可以生成阴影,使得内容更好地适合用户所位于的物理空间。内容可以包括覆盖物理空间各个部分的对象。内容可以被渲染为平面图像或三维(3D)对象。3D对象可以包括表示为多边形网格的一个或多个对象。多边形网格可以与诸如颜色和图像法人各种表面纹理相关联。
AR应用220可以基于AR内容222使用图像缓冲器224、图像分析器226、内容分析器228和阴影引擎230来生成用于经由HMD 204显示的图像。例如,相机部件232捕获到的一个或多个图像可以存储在图像缓冲器224中。在一些实施方式中,图像缓冲器224是存储器210的被配置成存储一个或多个图像的区域。在一些实施方式中,计算设备202将由相机部件232捕获的图像作为纹理存储在图像缓冲器224中。替代地或附加地,图像缓冲器还可以包括与处理器部件212成一体的存储器位所,诸如专用的GPU上的随机存取存储器(RAM)。
图像分析器226可以确定图像的各种属性,诸如表面平面的位所或内容可以被定位在其上的表面平面。这样的表面平面在本文中可以被称为参考表面。在一些实施方式中,给定的表面平面(参考表面)可以是与地面、地板、书桌、桌子或可以在其上放置诸如要***的内容的对象的另一表面相对应的基本水平的平面。
AR应用220可以确定***诸如AR对象(贴纸、角色、精灵等)的AR内容的位所。例如,AR应用可以提示用户识别用于***内容的位所,然后可以接收指示该内容在屏幕上的位所的用户输入。在一些实施方式中,用户可以在被提示的情况下指示用于放置AR内容的位所。AR应用220可以基于该用户输入来确定***的内容的位所。例如,要***的内容的位所可以是用户指示的位所。在一些实施方式中,通过将用户指示的位所映射到与图像中的诸如台面、桌面,地板或地面的表面相对应的平面(例如,通过在由在用户指示的位所下方的图像分析器226识别的平面上找到位所)来确定位所。还可以基于为相机部件捕获的先前图像中的内容确定的位所来确定位所(例如,AR应用可以使内容跨图像中捕获的物理空间内识别的表面移动)。
然后内容分析器228可以确定要在确定的位所处***的内容的各种属性。例如,内容可以与包括关节的3D模型和骨骼动画模型相关联。骨骼动画模型可以设置在3D模型中,并且可以允许3D模型的部分围绕一些或所有关节移动。作为示例,内容分析器228可以基于骨骼动画模型的至少一些关节的位所来确定表面平面上的边界框和阴影中心点。例如,骨骼关节可以投影到表面平面上。在至少一些实施例中,关节从头顶上方位置投影使得生成看起来来自头顶上方光源的阴影(例如,通过丢弃关节的3D位置的高度分量(即,当表面平行于XZ时的Y分量)或将高度分量设置为等于该平面的高度)。在一些实施方式中,所有关节都用于生成边界框并识别阴影中心点。在一些实施方式中,关节的子集用于生成边界框并识别阴影中心点(例如,***的内容可以识别要使用或排除的关节)。在一些实施方式中,阴影中心点可以不在对象的中心。
边界框可以是包含所有投影关节的表面上的矩形。在至少一些实施方式中,矩形与3D坐标系的轴对准(例如,如果表面平行于X-Z平面,则矩形的边与X或Z轴对准)。
可以以各种方式确定阴影中心点。例如,阴影中心点可以是投影关节的空间中点。阴影中心点也可以计算为投影关节的质心(即,投影关节的平均位置)。在一些实施方式中,可以出于计算质心的目的为关节指配权重。例如,可以基于距表面的距离指配权重(例如,距离表面较近的关节具有高于距离较远的那些关节的权重)。在一些实施方式中,基于距表面的距离,对未列入黑名单的所有关节被相反地加权。
阴影引擎230可以为***的AR内容(对象)生成一个或多个阴影。在一些实施方式中,阴影引擎230基于由内容分析器228确定的边界框和阴影中心点来生成阴影多边形。该阴影多边形可以具有深色(例如,黑色)和基于距阴影中心点的距离而变化的透明度值。在一些实施方式中,透明度值是通过基于距中心点的距离应用非线性衰减来确定的。非线性衰减可能导致多边形中心附近的像素具有较低的透明度值,而多边形边缘附近的像素具有较高的透明度值。在至少一些实施方式中,多边形边缘上的像素是完全透明的。
在一些实施方案中,阴影引擎230还可以使用其他技术来生成阴影。例如,阴影引擎230可以使用阴影图来生成阴影。阴影图生成的阴影可以与使用边界框和阴影中心点生成的阴影组合。在一些实施方式中,使用这两种技术(或甚至附加技术)生成的阴影是通过基于到***内容的距离来对使用这两种技术生成的阴影进行加权来组合。例如,当***的内容更靠近相机部件232时,可以更重地加权使用阴影图生成的阴影。另外,也可以使用其他生成阴影的技术,并以类似的方式进行组合(或加权)。例如,可以基于骨骼中的单独关节生成附加阴影。当***的内容距离相机部件232较远时,可以给这些附加阴影更大的权重(例如,以替代使用阴影图生成的阴影)。在一些实施方式中,可以响应于用户操纵AR对象以改变AR对象升高离开在其上显示阴影的给定参考表面的距离而更改AR对象的阴影的大小。
在一些实施方式中,图像分析器226、内容分析器228和阴影引擎230可以包括存储在存储器210中的指令,所述指令在由处理器部件212执行时使处理器部件212执行本文所述的操作以生成(例如,经由HMD 204)显示给用户的图像或系列图像。
AR应用220可以基于从相机部件232、IMU 234和/或传感器***216的其他组件接收的输入来更新AR环境。例如,IMU 234可以检测计算设备202和/或HMD 204的运动、移动和加速度。IMU 234可以包括各种不同类型的传感器,诸如例如加速度计、陀螺仪、磁力计和其他此类传感器。可以基于IMU 234中包括的传感器提供的数据来检测和跟踪HMD 204的位置和定向。检测到的HMD 204的位置和定向可以允许***检测并跟踪用户在物理空间内的位置和定向。基于检测到的位置和定向,AR应用220可以更新AR环境以反映环境中用户的已改变的定向和/或位置。
尽管在图2中将计算设备202和HMD 204示为单独的设备,在一些实施方式中,计算设备202可以包括HMD 204。在一些实施方式中,计算设备202经由电缆与HMD 204通信,如图2所示。例如,计算设备202可以将视频信号和/或音频信号传送到HMD 204以供为用户显示,并且HMD 204可以将运动、位置和/或定向信息传送给计算设备202。
AR内容源206可以生成并输出AR内容,该AR内容可以经由网络208被分发或发送到一个或多个计算设备,诸如计算设备202。在示例实施方式中,AR内容包括三个维场景和/或图像。另外,AR内容可以包括流传输或分发到一个或多个计算设备的音频/视频信号。AR内容还可以包括运行在计算设备202上以生成3D场景、音频信号和/或视频信号的AR应用。
网络208可以是互联网、局域网(LAN)、无线局域网(WLAN)和/或任何其他网络。例如,计算设备202可以经由网络接收音频/视频信号,其可以在说明性示例实施例中作为AR内容的一部分被提供。
图3是示例物理空间300的第三人称视角,其中用户正在通过示例HMD 204体验AR环境302。AR环境302可以由计算设备202的AR应用220生成并通过HMD 204或其他设备显示给用户。
AR环境302包括显示在物理空间300的图像上方的***内容304。在该示例中,内容304是在AR环境302中在地板的表示上生成阴影306的乌龟。根据本文描述的技术生成阴影。
在一些实施方式中,AR环境302作为占据用户的全部或基本上全部视野并且经由HMD 204被显示给用户的单个图像或立体图像对被提供给用户。在其他实施方式中,通过在占据用户视野的至少一部分的至少部分透明的组合物上显示/投影***的内容304和所生成的阴影306,AR环境被提供给用户。例如,HMD 204的部分可以是透明的,并且当佩戴HMD204时,用户可能能够通过那些部分看到物理空间300。
图4是用户经由示例便携式电子设备402体验AR环境302的示意图。便携式电子设备402是计算设备202的示例。便携式电子设备402可以是智能电话、平板电脑或其他类型的便携式计算设备。在该示例中,用户正在通过便携式电子设备的显示设备418来体验AR环境302。例如,显示设备418可以包括屏幕,该屏幕可以显示图像和/或视频,以及从用户接收用于在AR环境302(或其他AR环境)中AR对象的放置和操纵(移动、升高等)的输入。
图5是根据本文描述的实施方式的为***的内容生成阴影的示例方法500的图。该方法500可以例如由计算设备202执行以为用户提供AR环境。
在操作502处,接收图像。接收图像可以包括利用诸如相机部件232的相机部件捕获图像。接收图像可以包括访问存储在存储器位所中的先前捕获的图像。还可从诸如可经由网络访问的服务器的另一计算设备接收图像。
在操作504处,在图像内识别可以称为参考表面的表面平面。可以使用各种图像处理技术来识别表面平面。例如,可以通过识别图像的基本上平坦的区域来识别表面平面。在一些实施方式中,可以基于分析多个图像(例如,来自物理空间的视频流的图像序列)来生成表面平面。该表面平面可以对应于地面、地板、台面、桌面或可以在其上放置对象的另一表面(例如,桌子、柜台、架子)。在一些实施方式中,可以在AR环境中识别多个表面平面或参考表面。
在操作506处,确定要***的内容的位所。在一些实施方式中,要***的内容是AR内容,诸如AR对象。在至少一些实施方式中,***的内容可以包括一个或多个三维模型,诸如多边形网格。多边形网格可以与骨骼动画模型相关联,该骨骼动画模型包括彼此连接的多个关节。骨骼动画模型可以允许围绕至少一些关节的移动或旋转。这些移动可能导致多边形网格的部分的对应的移动或变形。
例如,可以通过在接收的图像中识别基本平坦的表面并将内容定位在识别的表面上来确定要***的内容的位所。还可以至少部分地通过用户输入来确定要***的内容的位所。例如,用户可以识别图像内的位所以***内容。在一些实施方式中,可以将内容放置在与用户所识别的位所相对应的水平面上的位所(例如,在用户所识别的位置下方的位所,使得将内容定位在平面上)。还可以基于先前图像(即,相机部件捕获的视频的先前帧)中内容的位所来确定内容的位所。例如,内容可以相对于物理空间四处移动(例如,图3所示的计算机生成的乌龟图像内容可以跨地板爬行,或者可以由用户操纵以在AR环境中四处移动)。
在操作508处,基于关节来为内容生成边界框。关节可以从上方投影到在操作504中识别的表面平面上。在一些实施方式中,可以忽略关节的3D位置的垂直分量以计算边界框。在一些实施方式中,边界框是四边形,其对关节限界(包围关节)。边界框可以是例如矩形。在一些实施方式中,关节的子集用于确定边界框。例如,***的内容可以与数据结构相关联,所述数据结构识别关节中的一些用于生成边界框或从用于生成边界框中排除。
在操作510处,基于关节来确定阴影中心点位所。例如,基于投影到表面平面上的关节的位置来确定阴影中心点位所。在一些实施方式中,阴影中心点是关节的空间中点。在一些实施方式中,阴影中心点被计算为这些点的质心。例如,可以相等地对关节进行加权,并通过平均关节的位置来确定中心点的位所。在一些实施方式中,基于距表面平面的距离(例如,高度)对关节加权,并且将中心点的位所确定为关节位置的加权平均值。在一些实施方式中,类似于生成边界框(以上至少关于操作508描述的),可以使用关节的子集来确定阴影中心点位所。
在操作512处,基于边界框和阴影中心点来在表面平面上生成阴影实体。例如,阴影实体可以是由边界框限制的多边形。在至少一些实施方式中,阴影实体是椭圆形的多边形,其具有在阴影中心点处相交的第一轴和第二轴。椭圆形多边形可以具有零个、一个或两个对称轴。在一些实施方式中,可以使用具有其他形状的多边形,诸如矩形多边形。另外,在一些实施方式中,通常使用布置成近似椭圆的多个直线来表示椭圆形多边形。
在操作514处,使用基于阴影中心点确定的像素值来渲染阴影实体。在一些实施方案中,阴影实体的像素以深色(诸如黑色)渲染且具有变化的透明度(例如,alpha值)。可以基于像素与中心点之间的距离来确定像素的透明度值。在一些实施方式中,透明度值还基于从像素值到多边形的边缘的距离。例如,可以使用基于像素位所的径向衰减函数来确定透明度值,该像素位所被表示为从阴影中心点到多边形边缘的距离的百分比。在一些实施方式中,位于多边形边缘的像素(100%)将完全透明,而位于阴影中心点的像素(0%)将完全不透明。在一些实施方式中,径向衰减是线性的。在其他实施方式中,径向衰减是非线性的。例如,对于距离多边形边缘小于50%的像素,透明度值可能会很低,使得阴影实体基本不透明;而距离多边形边缘50%以上的像素的透明度会迅速增加。在一些实施方式中,像素值可以包括像素的颜色。
一旦渲染阴影实体,就可以将***的内容添加到阴影的前面,并且然后可以将阴影实体和***的内容都叠加在操作502接收的图像上,以生成增强图像。然后可以将增强的图像显示给用户以提供增强的环境。此外,可以将渲染的阴影实体和***的内容投影到在其中将它们示出在用户的物理空间的视野上的透明的组合物表面上。尽管此示例描述将***的内容添加到渲染的阴影实体的前面,但是在一些实施方式中,***的内容和阴影实体一起渲染,并且实际上渲染阴影实体的可见部分。
图6是图示AR对象在AR环境中的放置的图。在图6中,图示AR环境600。AR环境600包括多个参考表面610(台面)和620(地板)。在一些实施方式中,参考表面可以对应于在AR环境600中视觉地显示的物理空间中的物理对象。如上所述,用户可以提供(例如,使用电子设备的触摸屏)AR对象630(例如,动画甜甜圈)将被放置在参考表面610(桌子)上的指示,尽管用户也可以选取将AR对象630放置在参考表面620(地板)上。在一些实施方式中,可以(由用户)从(例如,作为示例,可以被包括在图2的AR内容源206和/或AR内容222中的)多个AR对象中选择AR对象630。例如,可以从呈现给用户的可用AR对象的选项板(palette)中选择AR对象630(例如,在相机应用中,用于显示AR环境600的电子设备)。
如图6中所示,在将AR对象630放置在参考表面610上之后,可以在AR对象630下面显示图案640。在一些实施方式中,图案640可以用于向用户指示AR对象的放置完成。在一些实施方式中,在放置AR对象630的过程期间(例如,当用户将AR对象从选项板拖到AR环境600中的期望放置位所时),可以不显示图案640。如图6进一步所示,可以在例如AR环境600中的参考表面610上显示与AR对象630相对应的阴影650。可以使用这里描述的方法来显示(渲染等)阴影650。
在放置之后,用户可以在AR环境中操纵AR对象630,这可以包括将AR对象630从AR环境600中的一个位所移动到AR环境600中的另一位所,并且/或者将AR对象630升高到AR对象630已经放置在其上的参考表面(例如,在该示例中为参考表面610)之上。在一些实施方式中,当AR对象630被用户操纵时,图案640和阴影650可以被渲染使得实际上与AR对象630的操纵相对应。例如,如果AR对象630被移动,则图案640和/或阴影650可以在AR环境600中与AR对象630的移动相对应地移动。如果用户改变AR对象630在诸如参考表面610的参考表面之上的升高,阴影650的大小可以与AR对象630在给定参考表面之上的升高的变化(例如,向下或向上)相对应地更改(例如,增加或减少)。
图7A至图7C是图示用于在AR环境中从参考表面升高AR对象的序列的图。对图7A-7C的每个元件和/或方面的简要描述也包括在各个图中。例如,在图7A-7C中,可以在移动电子设备7-1上显示AR环境。在一些实施方式中,移动电子设备7-1可以是智能电话设备,并且AR环境可以被实现(显示)为移动电子设备7-1的相机应用的一部分。如所示的,在图7A中,可以诸如使用本文所述的方法将虚拟角色(AR对象)7-2放置在AR环境中。在该示例实施方式中,虚拟角色阴影7-3可以被示出在虚拟角色7-2被(例如,被用户)放置在其上的参考表面(图7A中未示出)上。虽然在图7A-图7C中未示出,但是在图7A-图7C的序列中在虚拟角色的放置之后诸如图6的图案640的图案也可以被示出。
如图7A中所图示(通过参考字符7-4),用户可以发起手势(例如,两手指滑动手势),该手势可以用于改变虚拟角色在虚拟角色在其上被放置在AR环境中的参考表面之上的升高。例如,用户可以将两个手指的指尖放置在移动电子设备7-1的触摸屏显示器上的虚拟角色上。
该序列可以如图7B中所图示继续,其中,如参考字符7-5所指示的,用户可以在移动设备7-1的显示屏上向上滑动放置在虚拟角色(图7A中)上的两个指尖。响应于该手势(例如,在该示例中为两手指手势),如参考字符7-6所示,虚拟角色从最初放置该虚拟角色的参考表面抬高。换句话说,图7A和7B所图示的手势使虚拟角色被升高到该虚拟角色所放置的参考表面(例如,图6的参考表面610)之上。如图7B中的参考字符7-7所示,可以在参考表面和虚拟角色之间显示牵绳线,作为升高视觉可见性,指示参考表面上的起点(例如,虚拟角色刚好在升高之前所在的地方)和高度,或者虚拟角色已升高到参考表面之上的距离。同样,如图7B中的参考字符7-8所示,虚拟角色的阴影在升高之后,可以与虚拟角色已经升高到参考表面之上的距离相对应地收缩(与图7A中的参考字符3处的阴影相比)。在一些实施方式中,可以通过使用用户向下而不是向上滑动的手势(例如,两手指手势)来减小虚拟角色在对应参考表面之上的升高。
如图7C中所示,如参考字符7-9处指示的,可以通过用户释放虚拟角色(从移动设备的触摸屏移除两个指尖)来完成升高虚拟角色的手势。如图7C中所示,使虚拟角色飘浮在其最初放置并从其上升高的参考表面之上,虚拟角色的视觉可见性由图7C中的参考字符7-10处的牵绳线示出。
图8A-8D是图示用于在AR环境中操纵AR对象(例如,升高和移动AR对象)的序列的图。如在图7A-7C中,在图8A-8D中,可以在移动电子设备或其他电子设备上显示AR环境。同样如图7A至图7C,对图8A至图8D的每个元件和/或方面进行的简要描述也包括在相应图中。与图7A和图7B相似,图8A和图8B图示AR对象(例如,AR或虚拟角色8-2)的放置和升高。例如,在图8A中,虚拟角色8-2可以诸如使用本文所述的方法放置在AR环境中的第一参考表面8-1上。在此示例中,参考表面可以是图6中的参考表面620,或与地板相对应的参考表面。在图8B中,虚拟角色8-2的阴影8-3在图8A的参考表面8-1上示出。如在图8B中的参考字符8-4、8-5、8-6和8-7所示,第一手势(例如,在参考字符8-4处的两手指手势)可以用于将虚拟角色(在参考字符8-5处)升高到第一参考表面之上,该升高的视觉可见性以通过牵绳线(在参考字符8-6处)图示,并且虚拟角色阴影的大小(在参考字符8-7处)可以与虚拟角色已升高(实际上升高)到第一参考表面之上的距离相对应地进行更改(减小)。
如图8C中所示,如参考字符8-8处的视觉可见性所示的先前升高的虚拟角色,参考字符8-9处的第二手势(例如,一手指手势)可以被用于通过以下来选择和重新定位(移动、操纵等)被升高的虚拟角色:将所选择、所升高的虚拟角色由从图8A的第一参考表面来参考拖动到从第二(升高的)表面8-10来参考,所述第二(升高的)表面8-10可以是如图6中所示的桌子的参考表面620。如图8D所示,使用第二手势,可以将升高的虚拟角色重新定位(例如,移动、拖动等)在第二参考表面上方。然后,升高的虚拟角色可以在AR环境中被显示为以与从第一参考表面原始升高的距离相同的距离被放置在第二参考表面之上或被升高到第二参考表面之上,例如,如图8D所示,如参考字符8-12处的视觉可见性所图示。在此示例中,如图8D中所图示,如果虚拟角色最初被升高到第一参考表面之上1英尺的距离,则AR角色将保持在第二参考表面之上的1英尺的升高处,其中由于参考表面的变化而导致的AR角色的升高的任何变化是基于在第一参考表面和第二参考表面之间的距离(例如,虚拟距离)。
前述序列通过示例给出。在一些实施方式中,序列可以是不同的。例如,可以将AR角色移动到第二参考表面和第一参考表面之间,或者可以将其移动到AR环境中的其他位所。在一些实施方式中,可以使用不同的手势(例如,触摸屏手势或其他手势)来在AR环境中升高和操纵(移动)AR(虚拟)角色。在一些实施方式中,可以在AR环境中放置和操纵其他AR(虚拟)角色和/或附加AR角色。
图9示出方法900的示例。可以使用一个或多个执行存储在非暂时性存储介质中的指令的一个或者多个处理器来执行方法的任何或所有操作,例如如下所述。在一些实施方式中,可以执行比所示更多或更少的操作。在一些实施方式中,可以以不同的顺序执行两个或更多个操作。仅出于说明的目的,在以下描述中将提及本公开中其他地方引入的一些组件。
在902处,可以接收AR环境。例如,设备202(图2)可以接收与AR环境600(图6)相对应的数据,诸如与参考表面610和620相对应的数据。也就是说,在一些实施方式中,在902处接收AR环境可以包括在AR环境中识别(物理)参考表面。换句话说,设备202可以识别在AR环境中表示的物理对象(例如,地板、桌子等)的表面平面(参考表面),诸如图6中所示的表面610和620。
在904处,可以接收将AR对象(AR角色、虚拟角色、虚拟贴纸等)放置在AR环境中(例如,在参考表面上)的指示。
在906处,响应于904处的指示,可以将AR对象放置在AR环境中。例如,AR对象可以被放置在AR环境的第一参考表面上。在一些实施方式中,诸如本文所述的那些实施方式,可以在906处在第一参考表面上显示虚拟角色的阴影和/或指示AR对象的放置完成的图案。
在908处,可以执行第一手势。例如,可以在AR对象上执行两手指手势。
在910处,响应于第一手势,可以将AR对象升高到在906处该AR对象被放置的参考表面之上。在一些实施方式中,升高AR对象可以包括显示视觉升高可见性(例如,使用牵绳线)和/或调整AR环境中示出的AR对象阴影的大小。
在912处,可以执行第二手势。例如,可以在升高的AR对象上执行一手指手势。
在914处,响应于912处的第二手势,可以在AR环境中移动AR对象。例如,可以诸如使用本文所述的方法移动AR对象,使得AR对象的升高的参考从第一参考表面改变为第二参考表面。在一些实施方式中,移动AR对象可以包括移动与AR对象相对应的视觉升高可见性、阴影和/或放置指示图案。
图10示出可以用于实现这里描述的技术的计算机设备和移动计算机设备的示例。图10示出可以与这里描述的技术一起使用的通用计算机设备1000和通用移动计算机设备1050的示例。计算设备1000旨在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、平板电脑、工作站、个人数字助理、电视、服务器、刀片服务器、大型机和其他适当的计算设备。计算设备1050旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话和其他类似的计算设备。此处所示的组件、它们的连接和关系以及它们的功能仅意指是示例性的,并不意指限制本文档中描述和/或要求保护的发明的实施方式。
计算设备1000包括处理器1002、存储器1004、存储设备1006、连接到存储器1004和高速扩展端口1010的高速接口1009以及连接到低速总线1014和存储设备1006的低速接口1012。处理器1002可以是基于半导体的处理器。存储器1004可以是基于半导体的存储器。组件1002、1004、1006、1009、1010和1012中的每一个均使用各种总线来互连,并且可以被安装在公共主板上或者适当地以其它方式安装。处理器1002可处理用于在计算设备1000内执行的指令,包括存储在存储器1004中或在存储设备1006上以在诸如耦合到高速接口1009的显示器1016的外部输入/输出设备上显示GUI的图形信息的指令。在其它实施方式中,可以使用多个处理器和/或多个总线以及适当地多个存储器和多种类型的存储器。另外,可以连接多个计算设备1000,其中每个设备提供必要操作的各部分(例如,作为服务器组、一组刀片服务器或多处理器***)。
存储器1004存储计算设备1000内的信息。在一个实施方式中,存储器1004是一个或多个易失性存储器单元。在另一实施方式中,存储器1004是一个或多个非易失性存储器单元。存储器1004还可以是另一形式的计算机可读介质,诸如磁盘或光盘。
存储设备1006能够为计算设备1000提供大容量存储。在一个实施方式中,存储设备1006可以是或者包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备或磁带设备、闪速存储器或其它类似的固态存储设备或设备的阵列,包括存储区域网络或其它配置中的设备。可在信息载体中有形地具体实现计算机程序产品。计算机程序产品还可以包含指令,所述指令当被执行时,执行一种或多种方法,诸如上述的那些方法。信息载体是计算机或机器可读介质,诸如存储器1004、存储设备1006或处理器1002上的存储器。
高速控制器1009管理计算设备1000的带宽密集操作,然而低速控制器1012管理较低带宽密集操作。功能的这种分配仅是示例性的。在一个实施方式中,高速控制器1009耦合到存储器1004、显示器1016(例如,通过图形处理器或加速器),并且耦合到高速扩展端口1010,所述高速扩展端口1010可以接受各种扩展卡(未示出)。在该实施方式中,低速控制器1012耦合到存储设备1006和低速扩展端口1014。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口例如通过网络适配器耦合到一个或多个输入/输出设备,诸如键盘、指点设备、扫描器或诸如交换机或路由器的联网设备。
如图中所示,可以以许多不同的形式实现计算设备1000。例如,它可以作为标准服务器1020被实现,或者在一组这样的服务器中实现多次。它还可以作为机架服务器***1024的一部分被实现。此外,它可以被实现在诸如膝上型计算机1022的个人计算机中。可替选地,来自计算设备1000的组件可以与诸如设备1050的移动设备(未示出)中的其它组件组合。这样的设备中的每一个均可以包含计算设备1000、1050中的一个或多个,并且整个***可以由彼此通信的多个计算设备1000、1050组成。
计算设备1050包括处理器1052、存储器1064、诸如显示器1054的输入/输出设备、通信接口1066和收发器1069以及其它组件。设备1050还可以被提供有存储设备,诸如微驱动器或其它设备,以提供附加存储。组件1050、1052、1064、1054、1066和1069中的每一个均使用各种总线来互连,并且组件中的数个可以被安装在公共主板上或者适当地以其它方式安装。
处理器1052可执行计算设备1050内的指令,包括存储在存储器1064中的指令。可以将处理器实现为包括单独的及多个模拟和数字处理器的芯片的芯片组。例如,处理器可以提供对设备1050的其它组件的协调,诸如对用户接口、由设备1050运行的应用以及由设备1050进行的无线通信的控制。
处理器1052可以通过耦合到显示器1054的控制接口1059和显示接口1056来与用户进行通信。显示器1054可以是例如TFT LCD(薄膜晶体管液晶显示器)或OLED(有机发光二极管)显示器或其它适当的显示技术。显示接口1056可以包括用于驱动显示器1054以向用户呈现图形和其它信息的适当的电路。控制接口1058可以接收来自用户的命令并且对它们进行转换以便提交给处理器1052。此外,可以提供与处理器1052通信的外部接口1062,以便使得能实现设备1050与其它设备的近区域通信。外部接口1062可以例如在一些实施方式中提供用于有线通信,或者在其它实施方式中提供用于无线通信,并且还可以使用多个接口。
存储器1064存储计算设备1050内的信息。可将存储器1064实现为一个或多个计算机可读介质、一个或多个易失性存储器单元或者一个或多个非易失性存储器单元中的一个或多个。还可以提供扩展存储器1074并将它通过扩展接口1072来连接到设备1050,所述扩展接口1072可以包括例如SIMM(单列直插存储器模块)卡接口。这样的扩展存储器1074可以为设备1050提供额外的存储空间,或者还可以为设备1050存储应用或其它信息。具体地,扩展存储器1074可以包括用于执行或者补充上述的过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器1074可以作为用于设备1050的安全模块被提供,并且可以被编程有允许安全地使用设备1050的指令。此外,可以经由SIMM卡提供安全应用以及附加信息,诸如以不可破解的方式将识别信息放置在SIMM卡上。
如下所述,存储器可以包括例如闪速存储器和/或NVRAM存储器。在一个实施方式中,计算机程序产品被有形地具体实现在信息载体中。计算机程序产品包含指令,所述指令当被执行时,执行一种或多种方法,诸如上述的那些方法。信息载体是可以例如通过收发器1069或外部接口1062接收的计算机或机器可读介质,诸如存储器1064、扩展存储器1074或处理器1052上的存储器。
设备1050可以通过通信接口1066以无线方式通信,所述通信接口1066可以在必要时包括数字信号处理电路。通信接口1066可以提供用于在各种模式或协议下通信,所述各种模式或协议诸如GSM语音呼叫、SMS、EMS或MMS消息收发、CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS等。这样的通信可以例如通过射频收发器1069而发生。此外,可以发生短距离通信,诸如使用蓝牙、Wi-Fi或其它这样的收发器(未示出)。此外,GPS(全球定位***)接收器模块1070可以向设备1050提供附加的导航和位所相关无线数据,其可以由在设备1050上运行的应用适当地使用。
设备1050还可以使用音频编解码器1060来可听地通信,所述音频编解码器1060可以接收来自用户的口语信息并且将它转换为可用的数字信息。音频编解码器1060可以同样地为用户生成可听声音,诸如通过扬声器,例如在设备1050的听筒中。这样的声音可以包括来自语音电话呼叫的声音,可以包括录制的声音(例如,语音消息、音乐文件等)并且还可以包括由在设备1050上操作的应用所生成的声音。
如图中所示,可以以许多不同的形式实现计算设备1050。例如,它可以作为蜂窝电话1090被实现。它还可以作为智能电话1092、个人数字助理或其它类似的移动设备的一部分被实现。
用户可以使用跟踪的控制器1094与计算设备进行交互。在一些实施方式中,控制器1094可以跟踪用户的身体的移动,诸如手、脚、头和/或躯干的移动,并生成对应于跟踪的运动的输入。输入可以在一个或多个运动维度上——诸如在三个维度上——对应于移动。例如,被跟踪的控制器可以是用于VR应用的物理控制器,该物理控制器与VR应用中的一个或多个虚拟控制器相关联。作为另一个示例,控制器1094可以包括数据手套。
这里描述的***和技术的各种实施方式可用数字电子电路、集成电路、专门地设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合加以实现。这些各种实施方式可包括在可编程***上可执行和/或可解释的一个或多个计算机程序中的实施方式,所述可编程***包括至少一个可编程处理器,其可以是专用的或通用的,耦合以从存储***、至少一个输入设备和至少一个输出设备接收数据和指令,并且向存储***、至少一个输入设备和至少一个输出设备传送数据和指令。
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可用高级过程和/或面向对象编程语言和/或用汇编/机器语言加以实现。如本文所使用的,术语“机器可读介质”、“计算机可读介质”指代用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(PLD)),包括将机器指令作为机器可读信号来接收的机器可读介质。术语“机器可读信号”指代用于向可编程处理器提供机器指令和/或数据的任何信号。
为了提供与用户的交互,可在计算机上实现这里描述的***和技术,所述计算机具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及用户可以用来向该计算机提供输入的键盘和指点设备(例如,鼠标或轨迹球)。其它种类的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且可以任何形式接收来自用户的输入,包括声、语音或触觉输入。
可在计算***中实现这里描述的***和技术,所述计算***包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有用户可用来与这里描述的***和技术的实施方式交互的图形用户界面或Web浏览器的客户端计算机),或者包括这样的后端、中间件或前端组件的任何组合。***的组件可通过任何形式或介质的数字数据通信(例如,通信网络)来互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)和互联网。
计算***可包括客户端和服务器。客户端和服务器一般地彼此远离并且通常通过通信网络来交互。客户端和服务器的关系借助于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。
在一些实施方式中,图10中描绘的计算设备可包括与虚拟现实(VR头戴耳机1095)对接的传感器。例如,包括在图10中描绘的计算设备1050或其它计算设备上的一个或多个传感器可向VR头戴耳机1095提供输入,或者通常向VR空间提供输入。传感器可包括但不限于触摸屏、加速度计、陀螺仪、压力传感器、生物计量传感器、温度传感器、湿度传感器和环境光传感器。计算设备1050可使用传感器来确定计算设备在VR空间中的绝对位置和/或检测到的旋转,其然后可被用作VR空间的输入。例如,计算设备1050可以作为虚拟对象被并入到VR空间中,所述虚拟对象诸如控制器、激光指示器、键盘、武器等。当被并入到VR空间中时由用户定位计算设备/虚拟对象可允许用户定位计算设备以在VR空间中以某些方式查看虚拟对象。例如,如果虚拟对象表示激光指示器,则用户可操纵计算设备,好像它是实际的激光指示器一样。用户可左右、上下、以圆圈等移动计算设备,并且以与使用激光指示器类似的方式使用设备。
在一些实施方式中,包括在计算设备1050上或者连接到计算设备1050的一个或多个输入设备可被用作VR空间的输入。输入设备可包括但不限于触摸屏、键盘、一个或多个按钮、触控板、触摸板、指点设备、鼠标、轨迹球、操纵杆、相机、麦克风、具有输入功能性的耳机或耳塞、游戏控制器或其它可连接的输入设备。当计算设备被并入到VR空间中时用户与包括在计算设备1050上的输入设备交互可导致在VR空间中发生特定动作。
在一些实施方式中,可将计算设备1050的触摸屏渲染为VR空间中的触摸板。用户可与计算设备1050的触摸屏交互。例如在VR头戴耳机1095中,交互被渲染为VR空间中的经渲染的触摸板上的移动。经渲染的移动可控制VR空间中的虚拟对象。
在一些实施方式中,包括在计算设备1050上的一个或多个输出设备可向VR空间中的VR头戴耳机1095的用户提供输出和/或反馈。输出和反馈可以是视觉、触觉或音频。输出和/或反馈可包括但不限于振动、一个或多个灯或闪光灯的打开和关闭或闪烁和/或闪光、发出警报声、播放铃声、播放歌曲以及播放音频文件。输出设备可包括但不限于振动马达、振动线圈、压电设备、静电设备、发光二极管(LED)、闪光灯和扬声器。
在一些实施方式中,计算设备1050可以作为计算机生成的3D环境中的另一对象出现。通过用户与计算设备1050的交互(例如,旋转、摇动、触摸触摸屏、跨越触摸屏扫掠手指)可被解释为与VR空间中的对象的交互。在VR空间中的激光指示器的示例中,计算设备1050作为计算机生成的3D环境中的虚拟激光指示器出现。当用户操纵计算设备1050时,VR空间中的用户看到激光指示器的移动。用户从在计算设备1050上或VR头戴耳机1095上的VR空间中与计算设备1050的交互接收反馈。
已经描述了许多实施例。然而,应理解的是,在不脱离本发明的精神和范围的情况下,可以做出各种修改。
此外,图中描绘的逻辑流程不要求所示的特定次序或顺序次序以实现所希望的结果。此外,可以提供其它步骤,或者可以从所描述的流程中消除步骤,并且可以向所描述的***添加其它组件,或者从所描述的***中移除其它组件。因此,其它实施例在以下权利要求的范围内。

Claims (20)

1.一种方法,包括:
由电子设备接收定义增强现实AR环境的数据;
接收将AR对象放置在所述AR环境中的参考表面上的指示;
响应于所述指示,在所述AR环境中的所述参考表面上显示所述AR对象;
在所述电子设备的输入设备上执行第一手势;
响应于所述第一手势,将所述AR对象升高到在所述AR环境中的所述参考表面之上的一距离;
在所述电子设备的所述输入设备上执行第二手势;以及
响应于所述第二手势,在所述AR环境中移动所述AR对象。
2.根据权利要求1所述的方法,进一步包括在所述AR环境中显示所述AR对象与所述参考表面之间的牵绳线,所述牵绳线指示所述AR对象在所述参考表面之上的所述一距离。
3.根据权利要求2所述的方法,其中,所述牵绳线包括所述参考表面上的原点的指示,所述原点是在所述AR对象的升高之前所述AR对象在所述参考表面上的位所。
4.根据权利要求1所述的方法,其中,所述参考表面是第一参考表面,并且在所述AR环境中移动所述AR对象包括将所述AR对象移动到在所述AR环境中的第二参考表面上方,所述方法进一步包括:
响应于将所述AR对象移动到所述第二参考表面上方,在所述AR环境中将所述AR对象显示在所述第二参考表面之上的所述一距离。
5.根据权利要求4所述的方法,进一步包括在所述AR环境中显示所述AR对象与所述第二参考表面之间的牵绳线,所述牵绳线指示所述AR对象在所述第二参考表面之上的所述一距离。
6.根据权利要求5所述的方法,其中,所述第一参考表面与在所述AR环境中显示的第一物理对象相对应,并且所述第二参考表面与在所述AR环境中的第二物理对象相对应。
7.根据权利要求1所述的方法,进一步包括:
在所述AR环境中的所述参考表面上显示所述AR对象的阴影;和
响应于所述AR对象的升高而改变所述阴影的大小。
8.根据权利要求1所述的方法,进一步包括在所述AR环境中的所述AR对象下方显示图案,所述图案指示所述AR对象已经被放置在所述参考表面上。
9.根据权利要求1所述的方法,其中,所述AR对象是虚拟角色。
10.一种***,包括:
计算设备,包括:
存储器,所述存储器存储可执行指令;和
处理器,所述处理器被配置成执行所述指令以使所述计算设备:
接收定义增强现实AR环境的数据;
接收将AR对象放置在所述AR环境中的参考表面上的指示;
响应于所述指示,在所述AR环境中的所述参考表面上显示所述AR对象;
接收在所述计算设备的输入设备上的第一手势;
响应于所述第一手势,将所述AR对象升高到在所述AR环境中的所述参考表面之上的一距离;
在所述计算设备的所述输入设备上接收第二手势;以及
响应于所述第二手势,在所述AR环境中移动所述AR对象。
11.根据权利要求10所述的***,其中,所述处理器进一步被配置成执行所述指令以使所述计算设备:
在所述AR环境中显示所述AR对象与所述参考表面之间的牵绳线,所述牵绳线指示所述AR对象在所述参考表面之上的所述一距离。
12.根据权利要求11所述的***,其中,所述牵绳线包括所述参考表面上的原点的指示,所述原点是在所述AR对象的升高之前所述AR对象在所述参考表面上的位所。
13.根据权利要求10所述的***,其中,所述参考表面是第一参考表面,并且在所述AR环境中移动所述AR对象包括将所述AR对象移动到在所述AR环境中的第二参考表面上方,所述处理器进一步被配置成执行所述指令以使所述计算设备:
响应于将所述AR对象移动到所述第二参考表面上方,在所述AR环境中将所述AR对象显示在所述第二参考表面之上的所述一距离。
14.根据权利要求12所述的***,其中,所述处理器进一步被配置成执行所述指令以使所述计算设备:
在所述AR环境中显示所述AR对象与所述第二参考表面之间的牵绳线,所述牵绳线指示所述AR对象在所述第二参考表面之上的所述一距离。
15.根据权利要求13所述的***,其中,所述第一参考表面与在所述AR环境中显示的第一物理对象相对应,并且所述第二参考表面与在所述AR环境中的第二物理对象相对应。
16.根据权利要求10所述的***,其中,所述处理器进一步被配置成执行所述指令以使所述计算设备:
在所述AR环境中的所述参考表面上显示所述AR对象的阴影;以及
响应于所述AR对象的升高而改变所述阴影的大小。
17.根据权利要求10所述的***,其中,所述处理器进一步被配置成执行所述指令以使所述计算设备:
在所述AR环境中的所述AR对象下方显示图案,所述图案指示所述AR对象已经被放置在所述参考表面上。
18.根据权利要求10所述的***,其中,所述AR对象是虚拟角色。
19.一种具有存储在其上的指令的计算机可读介质,所述指令在由电子设备的处理器执行时使所述电子设备:
接收定义增强现实AR环境的数据;
接收将AR对象放置在所述AR环境中的参考表面上的指示;
响应于所述指示,在所述AR环境中的所述参考表面上显示所述AR对象;
在所述电子设备的输入设备上执行第一手势;
响应于所述第一手势,将所述AR对象升高到在所述AR环境中的所述参考表面之上的一距离;
在完成所述第一手势之后,将所述AR对象显示在所述AR环境中的所述参考表面之上的所述一距离;以及
在所述AR环境中,显示所述AR对象和所述参考表面之间的牵绳线,所述牵绳线指示所述AR对象在所述参考表面之上的所述一距离。
20.根据权利要求19所述的计算机可读介质,其中,所述牵绳线包括所述参考表面上的原点的指示,所述原点是在所述AR对象的升高之前所述AR对象在所述参考表面上的位所。
CN201980042083.1A 2018-10-03 2019-10-02 增强现实环境中对象的放置和操纵 Pending CN112313605A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862740918P 2018-10-03 2018-10-03
US62/740,918 2018-10-03
PCT/US2019/054219 WO2020072591A1 (en) 2018-10-03 2019-10-02 Placement and manipulation of objects in augmented reality environment

Publications (1)

Publication Number Publication Date
CN112313605A true CN112313605A (zh) 2021-02-02

Family

ID=68296759

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980042083.1A Pending CN112313605A (zh) 2018-10-03 2019-10-02 增强现实环境中对象的放置和操纵

Country Status (4)

Country Link
US (1) US11430192B2 (zh)
EP (1) EP3814876B1 (zh)
CN (1) CN112313605A (zh)
WO (1) WO2020072591A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107423445B (zh) * 2017-08-10 2018-10-30 腾讯科技(深圳)有限公司 一种地图数据处理方法、装置及存储介质
US11232646B2 (en) * 2019-09-06 2022-01-25 Snap Inc. Context-based virtual object rendering
US11574485B2 (en) * 2020-01-17 2023-02-07 Apple Inc. Automatic measurements based on object classification
US11789584B1 (en) * 2020-03-30 2023-10-17 Apple Inc. User interface for interacting with an affordance in an environment
CN111707280A (zh) * 2020-06-24 2020-09-25 深圳市元征科技股份有限公司 2d地图软件ar导航方法、装置、设备及存储介质
WO2022146673A1 (en) * 2020-12-30 2022-07-07 Snap Inc. Augmented reality precision tracking and display
US20240077984A1 (en) * 2022-09-01 2024-03-07 Lei Zhang Recording following behaviors between virtual objects and user avatars in ar experiences

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100315413A1 (en) * 2009-06-16 2010-12-16 Microsoft Corporation Surface Computer User Interaction
WO2012135553A1 (en) * 2011-03-29 2012-10-04 Qualcomm Incorporated Selective hand occlusion over virtual projections onto physical surfaces using skeletal tracking
US20140306993A1 (en) * 2013-04-12 2014-10-16 Adam G. Poulos Holographic snap grid
US8887043B1 (en) * 2012-01-17 2014-11-11 Rawles Llc Providing user feedback in projection environments
CN107771309A (zh) * 2015-06-19 2018-03-06 微软技术许可有限责任公司 三维用户输入
US20180150998A1 (en) * 2016-11-29 2018-05-31 Pacific Future Limited Light field light source orientation method for augmented reality and virtual reality and front-end device

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9733789B2 (en) * 2011-08-04 2017-08-15 Eyesight Mobile Technologies Ltd. Interfacing with a device via virtual 3D objects
US9685005B2 (en) * 2015-01-02 2017-06-20 Eon Reality, Inc. Virtual lasers for interacting with augmented reality environments
US10176641B2 (en) 2016-03-21 2019-01-08 Microsoft Technology Licensing, Llc Displaying three-dimensional virtual objects based on field of view
US10373381B2 (en) * 2016-03-30 2019-08-06 Microsoft Technology Licensing, Llc Virtual object manipulation within physical environment
JP6614356B2 (ja) * 2016-07-22 2019-12-04 ヤマハ株式会社 演奏解析方法、自動演奏方法および自動演奏システム
US10846519B2 (en) * 2016-07-22 2020-11-24 Yamaha Corporation Control system and control method
US10290152B2 (en) * 2017-04-03 2019-05-14 Microsoft Technology Licensing, Llc Virtual object user interface display
US10692287B2 (en) * 2017-04-17 2020-06-23 Microsoft Technology Licensing, Llc Multi-step placement of virtual objects
DK201870347A1 (en) * 2018-01-24 2019-10-08 Apple Inc. Devices, Methods, and Graphical User Interfaces for System-Wide Behavior for 3D Models
US10607415B2 (en) * 2018-08-10 2020-03-31 Google Llc Embedding metadata into images and videos for augmented reality experience
US11107265B2 (en) * 2019-01-11 2021-08-31 Microsoft Technology Licensing, Llc Holographic palm raycasting for targeting virtual objects
US10762716B1 (en) * 2019-05-06 2020-09-01 Apple Inc. Devices, methods, and graphical user interfaces for displaying objects in 3D contexts
US10991163B2 (en) * 2019-09-20 2021-04-27 Facebook Technologies, Llc Projection casting in virtual environments

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100315413A1 (en) * 2009-06-16 2010-12-16 Microsoft Corporation Surface Computer User Interaction
WO2012135553A1 (en) * 2011-03-29 2012-10-04 Qualcomm Incorporated Selective hand occlusion over virtual projections onto physical surfaces using skeletal tracking
US8887043B1 (en) * 2012-01-17 2014-11-11 Rawles Llc Providing user feedback in projection environments
US20140306993A1 (en) * 2013-04-12 2014-10-16 Adam G. Poulos Holographic snap grid
CN107771309A (zh) * 2015-06-19 2018-03-06 微软技术许可有限责任公司 三维用户输入
US20180150998A1 (en) * 2016-11-29 2018-05-31 Pacific Future Limited Light field light source orientation method for augmented reality and virtual reality and front-end device

Also Published As

Publication number Publication date
WO2020072591A1 (en) 2020-04-09
EP3814876B1 (en) 2023-02-22
EP3814876A1 (en) 2021-05-05
US20210183158A1 (en) 2021-06-17
US11430192B2 (en) 2022-08-30

Similar Documents

Publication Publication Date Title
EP3814876B1 (en) Placement and manipulation of objects in augmented reality environment
US10019131B2 (en) Two-handed object manipulations in virtual reality
KR101823182B1 (ko) 동작의 속성을 이용한 디스플레이 상의 3차원 사용자 인터페이스 효과
CN110709897B (zh) 用于***到图像中的图像内容的阴影生成
JP6352426B2 (ja) ヘッドマウントディスプレイを使用して拡張ディスプレイを提供するデバイス、方法、及びシステム
JP2022540315A (ja) 人工現実環境において周辺デバイスを使用する仮想ユーザインターフェース
CN111771180B (zh) 增强现实环境中对象的混合放置
US10685485B2 (en) Navigation in augmented reality environment
CN111971714A (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