CN110692089A - 用于插入的图像内容的阴影生成 - Google Patents

用于插入的图像内容的阴影生成 Download PDF

Info

Publication number
CN110692089A
CN110692089A CN201880037061.1A CN201880037061A CN110692089A CN 110692089 A CN110692089 A CN 110692089A CN 201880037061 A CN201880037061 A CN 201880037061A CN 110692089 A CN110692089 A CN 110692089A
Authority
CN
China
Prior art keywords
shadow
joints
content
polygon
joint
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.)
Granted
Application number
CN201880037061.1A
Other languages
English (en)
Other versions
CN110692089B (zh
Inventor
伊万·诺伊兰德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 CN110692089A publication Critical patent/CN110692089A/zh
Application granted granted Critical
Publication of CN110692089B publication Critical patent/CN110692089B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/017Head mounted
    • G02B27/0172Head mounted characterised by optical features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • 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
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Optics & Photonics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

提供了用于为插入的内容生成阴影的系统和方法。插入的内容可以包括插入到物理空间的图像中的增强现实内容。示例包括确定在图像内插入内容的位置。内容可以包括部分地由具有多个关节的骨架限定的多边形网格。示例还可以包括从所述多个关节中选择多个选定的关节。示例还可以包括基于内容而生成阴影多边形,以及对于阴影多边形的像素,确定所述多个选定的关节的阴影贡献值。示例还可以包括:将来自选定的关节的阴影贡献值组合,以生成像素的阴影量值;使用阴影量值渲染阴影多边形;以及将插入的内容覆盖在渲染后的阴影多边形上。

Description

用于插入的图像内容的阴影生成
相关申请的交叉引用
本申请是2018年10月3日提交的标题为“用于插入的内容的阴影(SHADOWS FORINSERTED CONTENT)”的第16/150,813号美国非临时专利申请的继续申请并且主张所述专利申请的优先权,所述专利申请主张2017年10月4日提交的第62/568,083号美国申请的优先权并且主张2017年10月4日提交的第62/568,115号美国申请的优先权,这些美国申请的公开内容以全文引用的方式并入本文中。
本申请与2018年10月3日提交的第16/150,794号美国申请相关,所述美国申请以全文引用的方式并入本文中。
背景技术
内容可以插入到图像或用户的视野中。例如,增强现实(AR)系统可以通过插入内容来为用户生成沉浸式增强环境。可以通过将计算机生成的内容叠加在现实世界的用户视野上来生成沉浸式增强环境。例如,计算机生成的内容可以包括标签、文本信息、图像、子图形和三维实体。这些图像可以显示在用户视野中的某个位置处,以便看起来似乎覆盖现实世界中的对象。类似地,计算机生成的内容可以覆盖在所显示图像上。插入的内容可能会生成覆盖所显示图像的阴影。用于生成阴影的现有技术可能不足以用于实时AR应用。
发明内容
本公开描述了为插入的内容生成阴影的系统和方法。例如,插入的内容可以包括插入到物理空间的图像中的增强现实内容。
一个方面是一种方法,包括:确定在图像内插入内容的位置,所述内容包括多边形网格,所述多边形网格部分地由具有多个关节的骨架限定;从所述多个关节中选择多个选定的关节;生成阴影多边形;对于所述阴影多边形的像素,确定所述多个选定的关节的阴影贡献值(例如,所述多个选定的关节中的每一个的阴影贡献值);将来自所述选定的关节的所述阴影贡献值组合,以生成所述像素的阴影量值;使用所述阴影量值渲染所述阴影多边形;以及将所述插入的内容覆盖在所述渲染后的阴影多边形上。
另一方面是非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质包括存储于其上的指令,所述指令在由至少一个处理器执行时被配置成使计算系统至少:用相机组件捕获图像;识别所述图像内的表面平面;确定插入内容的位置,所述内容包括多边形网格,所述多边形网格部分地由具有多个关节的骨架限定;从所述多个关节中选择多个选定的关节;将淡出值分配给所述多个选定的关节;基于所述内容生成阴影多边形;对于所述阴影多边形的像素,确定所述多个选定的关节的阴影贡献值;将来自所述选定的关节的所述阴影贡献值组合,以生成所述像素的阴影量值;使所述阴影量值归一化,以生成归一化的阴影量值;将径向衰减应用于所述归一化的阴影量值,以生成调整后的阴影量值;使用所述调整后的阴影量值渲染所述阴影多边形;以及将所述插入的内容覆盖在所述渲染后的阴影多边形上。
另一方面是一种系统,包括:至少一个处理器;以及存储器,所述存储器存储指令,所述指令在由所述至少一个处理器执行使所述系统:识别图像内的表面平面;确定插入内容的位置,所述内容包括骨架动画模型;基于来自所述骨架动画模型的多个骨架关节,在所述内容的所述表面平面上生成边界框;基于将所述多个骨架关节投影在所述表面平面上并且使所述投影后的骨架关节的位置平均化,确定所述内容的质心位置;基于所述边界框和所述质心位置,在所述表面平面上生成第一阴影多边形,所述第一阴影多边形具有椭圆形;基于将径向衰减函数应用于所述质心而渲染所述第一阴影多边形,以生成渲染后的第一阴影多边形;从所述多个骨架关节中选择多个选定的骨架关节;基于所述内容生成第二阴影多边形;对于所述第二阴影多边形的像素,确定所述多个选定的骨架关节的阴影贡献值;将来自所述选定的骨架关节的所述阴影贡献值组合,以生成所述第二阴影多边形的所述像素的阴影量值;使用所述阴影量值渲染所述第二阴影多边形,以生成渲染后的第二阴影多边形;将所述渲染后的第一阴影多边形和所述渲染后的第二阴影多边形组合,以生成组合的阴影多边形;以及将所述插入的内容覆盖在所述组合的阴影多边形上。
另一方面是一种方法,包括:确定在图像内插入内容的位置,所述内容包括多边形网格,所述多边形网格部分地由具有多个关节的骨架限定;基于所述多个关节中的至少一些关节为所述内容生成边界框;基于所述多个关节中的至少一些关节确定所述内容的质心位置;基于所述边界框以及所述质心位置生成第一阴影多边形;基于所述质心位置生成所述第一阴影多边形的像素的第一阴影量值;从所述多个关节中选择多个选定的关节;基于所述内容生成第二阴影多边形;对于所述第二阴影多边形的像素,确定所述多个选定的关节的阴影贡献值;将来自所述选定的关节的所述阴影贡献值组合,以生成所述第二阴影多边形的所述像素的第二阴影量值;将来自所述第一阴影多边形的所述第一阴影量值和来自所述第二阴影多边形的所述第二阴影量值组合,以生成组合的阴影量值;以及使用所述组合的阴影量值渲染组合的阴影多边形。
在以下附图和具体实施方式中阐述了一个或多个实施方案的细节。其它特征将从具体实施方式、附图和权利要求书变得显而易见。
附图说明
图1是说明根据示例实施方案的系统的框图。
图2是示例物理空间的第三人称视角,其中用户正通过图1的示例HMD体验AR环境。
图3A、图3B和图3C是根据本文所描述的实施方案描绘示例头戴式显示装置和控制器的图。
图4是用户通过示例便携式电子装置体验AR环境的示意图。
图5是根据本文所描述的实施方案的为插入的内容生成阴影的示例方法的图。
图6是根据本文所描述的实施方案的为插入的内容生成阴影的示例方法的图。
图7A至图7H是根据本文所描述的实施方案的为插入的内容生成阴影的步骤的示意图。
图8是根据本文所描述的实施方案的为插入的内容生成阴影的示例方法的图。
图9A至图9I是根据本文所描述的实施方案的为插入的内容生成阴影的步骤的示意图。
图10示出了可以用于实施本文所描述的技术的计算机装置和移动计算机装置的示例。
具体实施方式
现将详细参考本公开的非限制性示例,其示例在附图中说明。下文通过参考附图描述示例,其中相似附图标记指代相似元件。当示出相似附图标记时,不重复对应的描述,并且感兴趣的读者参考先前论述的图来描述相似元件。
增强现实(AR)系统包括将计算机生成的内容插入到用户对用户周围的物理空间的感知中的系统。计算机生成的内容可以包括标签、文本信息、图像、子图形和三维实体。在一些实施方案中,出于娱乐、教育或信息目的插入内容。
示例AR系统是例如智能电话的便携式电子装置,所述便携式电子装置包括相机和显示装置。便携式电子装置可以使用相机捕获图像,并且在显示装置上示出了AR图像,所述AR图像包括覆盖在相机所捕获的图像上的计算机生成的内容。
另一示例AR系统包括用户佩戴的头戴式显示器(HMD)。HMD包括被定位于用户的眼睛前方的显示装置。例如,HMD可能会遮挡用户的整个视野,使得用户仅可以看到由显示装置显示的内容。在一些示例中,显示装置被配置成显示两个不同图像,用户的每个眼睛可以看到一个图像。例如,一个图像中的至少一些内容可以相对于另一图像中的相同内容略微偏移,以便由于视差而生成对三维场景的感知。在一些实施方案中,HMD包括腔室,例如智能电话的便携式电子装置可以放置于所述腔室中,以便允许通过HMD观看便携式电子装置的显示装置。
另一示例AR系统包括HMD,所述HMD允许用户在佩戴HMD时看到物理空间。HMD可以包括微型显示装置,所述微型显示装置显示覆盖在用户的视野上的计算机生成的内容。例如,HMD可以包括至少部分透明的脸盔,所述脸盔包括组合器,所述组合器允许来自物理空间的光到达用户的眼睛,同时还朝向用户的眼睛反射由微型显示装置显示的图像。
当计算机生成的内容插入到图像中时,可能会在内容周围或下方生成阴影,使得内容显得更加逼真。例如,可以使用看起来由大面积头顶光源生成的软阴影来渲染三维模型。这些软阴影可能比点/定向光生成的硬阴影更优选,因为关于点/定向光的位置的信息可能不适用于物理空间。
AR系统可能需要以高速率,例如每秒24帧(FPS)、30FPS、60FPS或另一速率实时地刷新显示给用户的图像。用于生成阴影的传统技术可能需要确定或估计物理空间中的照明。但是从图像确定或估计场景中的照明可能需要太多计算(或处理器周期),以致于无法在AR系统上以可接受的帧速率实时地执行确定或估计照明。一些传统技术需要关于环境中的照明的先验信息,这可能不适用于使用AR系统的许多环境。本文进一步描述的技术允许以逼真方式为插入的内容生成阴影,而不需要环境照明的先验知识,同时使用比传统技术更少的处理器周期。另外,由于本文所描述的技术所需的处理周期数目减少,这些技术可以允许以逼真的方式将内容插入到所捕获的图像/视频中,同时使用的功率比传统技术所需的功率少。在包括电池供电的移动装置的AR系统中,估计照明并为插入的内容提供阴影所需的功率的此种减少可能尤其重要。
示例AR系统捕获用户周围的物理空间的图像。随后,系统可以识别图像中的表面平面,例如地面或地板,并且确定插入内容的位置。例如,系统可以接收指示内容在屏幕上的位置的用户输入。内容可以放置于由用户指示的位置处,或放置于在所识别的表面平面上的位置处,所述所识别的表面平面在由用户指示的位置下方。例如,内容可以包括使用骨架动画模型而动画化的三维模型。骨架动画模型可以包括网格和一组连接的骨架关节(可以称为骨架或架子),所述骨架关节用于动画化网格并定位网格。骨架关节可以表示为三维坐标。在一些实施方案中,关于骨架动画模型的共同原点定义三维坐标。骨架动画模型还可以存储连接数据,所述连接数据定义连接关节的线段。这些线段可以类比于骨架的骨头。连接关节的线段可以围绕至少一些关节移动或旋转。这些移动可能会导致骨架动画模型的外表面网格发生对应的变化。随着线段移动或旋转,连接的关节和线段也可以移动或旋转。在一些实施方案中,关节(例如,骨架关节)可以是骨架动画模型的关节的近似物。在一些实施方案中,一个或多个关节可以位于内容(例如,对象)的纵向构件的交点处,或可以包括内容(例如,对象)的纵向构件的交点。在一些实施方案中,骨架可以是框架,或可以称为框架。
接下来,系统可以基于内容在表面平面上生成边界框和阴影中心点(例如,阴影中点)。例如,边界框在表面平面上可以是矩形,所述边界框限制与内容相关联的骨架动画模型的所有关节(或关节到平面上的投影)。阴影中心点可以是关节的质心。例如,可以通过使关节的位置(或在关节已经投影到表面平面上之后的位置)平均化来计算质心。在一些实施方案中,质心可以是近似质心。关节可以相等地进行加权,或可以基于其它因素,例如与表面平面的距离进行加权。在一些实施方案中,并非所有关节都用于生成边界框和阴影中心点。例如,在一些实施方案中,插入的内容可以识别用于生成边界框和阴影中心点的关节的子集(即,关节白名单)。在一些实施方案中,插入的内容可以识别在生成边界框和阴影中心点时要排除的关节的子集(即,关节黑名单)。例如,插入的内容可以与数据结构相关联,所述数据结构包括关节黑名单或关节白名单。插入的内容的每一个骨架关节可以包括指示关节是否应该用于生成阴影(例如,在生成边界框和阴影中心点时)的布尔值。
基于边界框和阴影中心点,可以在表面平面上生成阴影多边形。阴影多边形可以具有各种形状。例如,阴影多边形可以具有椭圆形,所述椭圆形配合于边界框内并且包括在阴影中心点处相交的第一和第二轴线。尽管许多描述与椭圆形有关,但是所述形状可以是任何类型的长圆形(oblong shape)。
在渲染期间,可以用透明度值(例如,阿尔法值)对阴影多边形进行阴影处理,所述透明度值随着距阴影中心点的距离增加而增加(即,阴影多边形变得更透明,因此距阴影中心点越远越不可见)。在一些示例中,透明度值基于距阴影中心点的距离而非线性地增加。随后,可以将阴影多边形放置于内容后方,以作为第一阴影实体插入。
另外或替代地,可以为要插入的内容生成第二阴影实体。上述第一阴影实体可以生成单个阴影,所述单个阴影从阴影中心点的确定位置开始具有径向衰减。基于骨架动画模型的关节,此第二阴影实体可能具有不均匀的形状。一些实施方案包括第一阴影实体,一些实施方案包括第二阴影实体,并且一些实施方案包括第一阴影实体和第二阴影实体两者。
为了生成第二阴影实体,一些实施方案在要插入内容的位置下方的表面平面上生成第二阴影多边形。例如,第二阴影多边形可以是形状与骨架动画模型的关节(或关节的选定子集)的边界框的形状相同的矩形。第二阴影多边形可以包括具有十六个边或另一数目的边,例如八个、十个、十二个、十四个、十五个、十七个或十八个边的多边形。其它数目的边也是可能的。在一些实施方案中,多边形的边近似于配合在边界框中的椭圆形。
接下来,可以识别内容的选择。在一些实施方案中,选择包括所有内容或内容的一部分。例如,内容的选择可以包括与内容相关联的骨架动画模型中的25%关节。所述25%可以选择为最低的25%关节(即,沿着竖直维度具有最低位置值的25%关节),或最靠近表面平面的25%关节。在一些实施方案中,代替25%,使用不同阈值来选择关节。例如,在一些实施方案中,阈值可以是10%、20%、30%、33%、40%、50%或另一值。所述选择还可以基于要选择的关节数目,例如,10、20、50、100个或关节的另一数目。在一些实施方案中,可以向选择的关节分配淡出因子。对于几乎未被选择的关节,淡出因子更高。例如,如果基于距表面平面的距离选择关节的25%,则距离表面平面最远的选定的关节可以具有最高的淡出值。淡出值可能会限制一些关节对阴影的贡献,以便防止在连续帧期间关节移入和移出选择时可能出现的弹出伪影。关节的选择还可以基于存储于与插入的内容相关联的数据结构中的值。例如,数据结构可以识别在生成阴影时不使用的一些关节。在这种情况下,可以从不排除的关节中识别阈值百分比或阈值数目的关节。
关节可以分配有半径值,所述半径值可以用于计算关节的阴影贡献。在一些实施方案中,所有选定的关节分配有相同半径值。替代地,关节可以具有与模型的特性对应的不同半径值(例如,距离其它关节最远的关节可以具有比其它关节更大的半径)。例如,具有较大半径值的关节可能对生成的阴影具有更大贡献。在一些实施方案中,一些关节的半径值设定为零,以便排除这些关节为阴影做贡献。
随后,对于第二阴影多边形的每个像素,可以计算阴影强度(还可以称为阴影量值)。例如,可以在渲染期间计算阴影强度。通过从选择中的每个关节选择最大阴影贡献,可以计算像素值。在其它实施方案中,通过对选定的关节的阴影贡献求平均或求和来选择像素值。
对于每个关节,对特定像素的阴影贡献可以基于多个因子,例如距离因子和仰角因子。例如,可以通过将距离因子和仰角因子组合来确定阴影贡献。在一些实施方案中,距离因子对应于关节的关于像素的几何立体角(即,对应于由关节所夹的空间)。在一些实施方案中,立体角计算为某一值,所述值与关节半径除以距关节的距离的商的反正切成比例。在一些实施方案中,距离因子近似于立体角,并且计算为关节半径除以关节半径加上从场景中的像素位置到关节的距离之和的商。与使用反正切函数计算立体角相比,立体角的此种近似法可能需要更少处理器周期。在一些实施方案中,仰角因子基于向量从像素到关节的投影以及第二阴影多边形的法向量。例如,在一些实施方案中,使用以下公式计算仰角因子:
f*dot(N,V)*r/(r+d),其中:
N是表面平面的表面法线:
V是从像素到关节的单位向量;
r是关节的半径;
d是从像素到关节的距离;以及
f是关节的淡出值。
在计算了每个像素的阴影强度之后,可以应用伽马函数以使阴影强度归一化。例如,伽马函数可以将阴影强度重新映射到强调中间调的归一化值,而不会出现过暗区域。另外,平滑径向衰减可以应用于第二阴影多边形,以消除多边形边界处的硬阴影边缘。可以类似于针对第一阴影多边形所描述的方式应用平滑径向衰减。
随后,可以将插入的内容和一个或多个生成的阴影实体呈现给用户(例如,覆盖在所捕获的用户周围的物理空间的图像上,投影/显示在设置在用户的视野内的光学组合器上等)。在一些实施方案中,上述第一和第二阴影实体混合在一起或以其它方式组合。例如,通过为每个像素选择并使用来自第一或第二阴影实体的较低透明度值或通过以另一种方式组合这些值,可以在渲染每个像素期间组合对应于第一和第二阴影实体的多边形。尽管本文中的许多示例涉及透明度值(或阿尔法值),但是其它实施方案也是可能的。例如,一些实施方案计算阴影强度而不是透明度值。阴影强度将与关于透明度值/阿尔法值描述的阴影实体的不透明度成比例(例如,当阴影实体/多边形的透明度最低时,阴影强度将最高,并且当阴影实体/多边形的透明度最高时,阴影强度将最低)。在这些实施方案中,使用阴影强度来改变图像,而不是将部分透明的深色多边形覆盖在图像上。例如,像素值可以乘以1减去阴影强度,其中阴影强度具有在0与1之间的值。以此方式,随着阴影强度增加,像素值变暗。在一些实施方案中,像素值可以包括像素的颜色。
尽管本文所描述的许多示例涉及将视觉内容插入到AR环境中的AR系统,但是也可以使用本文描述的技术将内容插入在其它系统中。例如,本文所描述的技术可以用于将内容插入到图像或视频中。
图1是说明根据示例实施方案的系统100的框图。系统100为系统100的用户生成增强现实(AR)环境。在一些实施方案中,系统100包括计算装置102、头戴式显示装置(HMD)104,以及AR内容源106。还示出了网络108,计算装置102可以通过所述网络与AR内容源106通信。
计算装置102可以包括存储器110、处理器组件112、通信模块114、传感器系统116以及显示装置118。存储器110可以包括AR应用120、AR内容122、图像缓冲器124、图像分析器126、内容分析器128和阴影引擎130。计算装置102还可以包括各种用户输入部件(未示出),例如使用无线通信协议与计算装置102通信的控制器。在一些实施方案中,计算装置102是移动装置(例如,智能电话),所述移动装置可以被配置成通过HMD 104向用户提供或输出AR内容。例如,计算装置102和HMD 104可以通过有线连接(例如,通用串行总线(USB)电缆)或通过无线通信协议(例如,WiFi协议、任何蓝牙协议、Zigbee等)通信。在一些实施方案中,计算装置102是HMD 104的部件,并且可以被包含在HMD 104的外壳内。
存储器110可以包括一个或多个非暂时性计算机可读存储介质。存储器110可以存储可用于为用户生成AR环境的指令和数据。
处理器组件112包括一个或多个装置,所述一个或多个装置能够执行指令,例如,由存储器110存储的以执行与生成AR环境相关联的各个任务的指令。例如,处理器组件112可以包括中央处理单元(CPU)和/或图形处理器单元(GPU)。例如,如果存在GPU,则一些图像/视频渲染任务,例如生成阴影或为表示阴影的多边形着色可以从CPU转移到GPU。
通信模块114包括用于与其它计算装置,例如AR内容源106通信的一个或多个装置。通信模块114可以通过无线或有线网络,例如网络108通信。
传感器系统116可以包括各种传感器,例如相机组件132。传感器系统116的实施方案还可以包括其它传感器,包括例如惯性运动单元(IMU)134、光传感器、音频传感器、图像传感器、距离和/或接近度传感器、接触传感器(例如电容传感器)、计时器和/或其它传感器和/或传感器的不同组合。
IMU 134检测计算装置102和/或HMD 104的运动、移动和/或加速度。IMU 134可以包括各种不同类型的传感器,例如,加速计、陀螺仪、磁力计和其它此类传感器。可以基于由包括在IMU 134中的传感器提供的数据而检测和跟踪HMD 104的位置和定向。检测到的HMD104的位置和定向可以允许系统检测和跟踪用户的注视方向和头部移动。
在一些实施方案中,AR应用可以使用传感器系统116来确定用户在物理空间内的位置和定向,和/或识别物理空间内的特征或对象。
相机组件132捕获计算装置102周围的物理空间的图像和/或视频。相机组件132可以包括一个或多个相机。相机组件132还可以包括红外相机。
AR应用120可以通过HMD和/或计算装置102的一个或多个输出装置(例如显示装置118)向用户呈现或提供AR内容。在一些实施方案中,AR应用120包括存储于存储器110中的指令,所述指令在由处理器组件112执行时使处理器组件112执行本文所描述的操作。例如,基于例如AR内容(例如AR内容122和/或从AR内容源106接收的AR内容)AR应用120可以生成AR环境并且向用户呈现AR环境。AR内容122可以包括例如图像或视频的内容,所述内容可以显示在HMD 104中的用户视野的一部分上。AR环境还可以包括物理(现实世界)环境和物理(现实世界)实体的至少一部分。例如,可以生成阴影,使得内容更好地配合用户所在的物理空间。内容可以包括覆盖物理空间的各个部分的对象。内容可以渲染为平面图像或三维(3D)对象。3D对象可以包括表示为多边形网格的一个或多个对象。多边形网格可以与各种表面纹理(例如颜色和图像)相关联。
AR应用120可以基于AR内容122而使用图像缓冲器124、图像分析器126、内容分析器128和阴影引擎130来生成图像,以通过HMD104显示。例如,由相机组件132捕获的一个或多个图像可以存储于图像缓冲器124中。在一些实施方案中,图像缓冲器124是存储器110的被配置成存储一个或多个图像的区域。在一些实施方案中,计算装置102将由相机组件132捕获的图像作为纹理存储在图像缓冲器124内。替代地或另外,图像缓冲器还可以包括与处理器组件112成一体的存储器位置,例如,GPU上的专用随机存取存储器(RAM)。
图像分析器126可以确定图像的各种特性,例如,在其上可以定位有内容的表面平面的位置。在一些实施方案中,表面平面是基本上水平的平面,所述表面平面对应于地面、地板或在其上可以放置对象(例如要插入的内容)的另一表面。
AR应用120可以确定插入内容的位置。例如,AR应用可以提示用户识别用于插入内容的位置,并且随后可以接收指示所述内容在屏幕上的位置的用户输入。AR应用可以基于所述用户输入来确定插入的内容的位置。例如,用于要插入的内容的位置可以是由用户指示的位置。在一些实施方案中,通过将由用户指示的位置映射到与图像中的例如地板或地面的表面对应的平面来确定所述位置(例如,通过在由图像分析器126所识别的平面上找到在由用户指示的位置下方的位置)。还可以基于针对由相机组件捕获的前一图像中的内容确定的位置来确定所述位置(例如,AR应用可以使内容移动跨越在图像中捕获的物理空间内识别的表面)。
随后,内容分析器128可以确定要插入所确定的位置处的内容的各种特性。例如,内容可以与3D模型以及包括关节的骨架动画模型相关联。骨架动画模型可以设置在3D模型内,并且可以允许3D模型的部分围绕一些或所有关节移动。作为示例,内容分析器128可以基于骨架动画模型的至少一些关节的位置而确定表面平面上的边界框和阴影中心点。例如,骨架关节可以投影在表面平面上。在至少一些实施例中,关节从头顶位置投影,以便生成看起来像来自头顶光源的阴影(例如,通过丢弃关节的3D位置的高度分量(即,当表面平行于X-Z平面时的Y分量)或将高度分量设定成等于平面的高度)。在一些实施方案中,所有关节用于生成边界框并识别阴影中心点。在一些实施方案中,关节的子集用于生成边界框并识别阴影中心点(例如,插入的内容可以识别要使用或排除的关节)。在一些实施方案中,阴影中心点可能不在对象的中心处。
在包含所有投影关节的表面上,边界框可以是矩形。在至少一些实施方案中,矩形与3D坐标系统的轴线对准(例如,如果表面平行于X-Z平面,则矩形的边与X轴或Z轴对准)。
可以用各种方式确定阴影中心点。例如,阴影中心点可以是投影关节的空间中点。阴影中心点还可以被计算为投影关节的质心(即,投影关节的平均位置)。在一些实施方案中,出于计算质心的目的,可以为关节分配权重。例如,可以基于距表面的距离而分配权重(与较远的关节相比,更接近表面的关节具有更高的权重)。
内容分析器128还可以选择多个关节,以生成多个选定的关节。例如,内容分析器128可以基于距表面平面的距离而选择预定百分比的关节。在一些实施方案中,预定百分比是25%,然而,也可以使用其它预定百分比。另外或替代地,可以选择预定数量的关节。在一些实施方案中,选择所有关节。还可以选择关节的子集。在一些实施方案中,基于与插入的内容相关联的数据结构而选择关节的子集。有利地,通过选择关节的子集,可以减少用于生成阴影的处理器周期的量。内容分析器128还可以将淡出值分配给选定的关节。例如,关节的淡出值可以与关节和表面平面之间的距离成比例。内容分析器还可以将半径值分配给选定的关节。在一些实施方案中,将相同半径值分配给选定的关节中的每一个。例如,可以基于内容的尺寸确定半径值(例如,半径可以是内容的尺寸在一个维度上,例如在内容的最长维度上的预定百分比)。另外,可以将不同半径值分配给选定的关节。在这些实施方案中,半径值可以基于从选定的关节到骨架模型中的下一最接近关节的距离。
阴影引擎130可以生成要插入的内容的一个或多个阴影。在一些实施方案中,阴影引擎130基于由内容分析器128确定的边界框以及阴影中心点而生成第一阴影多边形。第一阴影多边形可以具有基于距阴影中心点的距离而变化的深色(例如,黑色)和透明度值。在一些实施方案中,通过基于距中心点的距离应用非线性衰减来确定透明度值。非线性衰减可以导致多边形的中心附近的像素具有低透明度值,而多边形的边缘附近的像素具有较高透明度值。在至少一些实施方案中,多边形的边缘上的像素是完全透明的。
阴影引擎130还可以生成第二阴影多边形,所述第二阴影多边形至少部分地基于选定的关节进行着色。例如,可以根据阴影强度对第二阴影多边形的每个像素进行着色,所述阴影强度基于像素关于选定的关节的各种特性来确定。例如,可以关于第二阴影多边形的特定像素以及特定选定的关节来计算阴影贡献值。阴影贡献值可以基于特定选定的关节相对于特定像素的距离和顶角(overhead angle)(也称为仰角(elevation angle))(即,与距离更远和/或较不直接地位于上方的选定的关节相比,更靠近像素和/或更直接位于像素上方的选定的关节做出更大的阴影贡献)。另外,可以基于分配给选定的关节的淡出值来减少(或以其它方式缩放)阴影贡献值(即,与具有较低淡出值的选定的关节相比,具有较高淡出值的选定的关节将具有较低阴影贡献值,而所有其它因素都相同)。
随后,阴影引擎130可以将来自选定的关节的阴影贡献组合,以生成第二阴影多边形的特定像素的阴影强度值。例如,可以通过从阴影贡献中选择最大值来组合阴影贡献值。替代地,可以通过对至少一些阴影贡献值求和或求平均来组合阴影贡献值。
随后,阴影引擎130可以组合第一阴影多边形和第二阴影多边形。关于第一阴影多边形论述的透明度值以及关于第二阴影多边形论述的阴影强度通常是彼此的倒数。例如,可以从最大透明度值(例如,1.0)中减去透明度值以生成阴影强度值,且反之亦然。在一些实施方案中,通过取第一阴影强度的平方以及第二阴影强度的平方之和的平方根来组合来自第一阴影多边形的第一阴影强度以及来自第二阴影多边形的第二阴影强度。
在一些实施方案中,阴影引擎130还可以使用其它技术来生成阴影。例如,阴影引擎130可以使用阴影图来生成阴影。用于生成阴影图的示例技术在以下文档中描述:兰斯·威廉姆斯(Williams,Lance.)的“将弯曲阴影投射在弯曲表面上”,美国计算机协会计算机图形专业组(ACM Siggraph Computer Graphics),第12卷第3版,美国计算机协会,1978年。由阴影图生成的阴影可以与第一阴影多边形和第二阴影多边形中的一个或多个组合。在一些实施方案中,通过基于距插入的内容的距离对阴影进行加权,使用阴影图生成的阴影与第一阴影多边形和第二阴影多边形中的一个或多个组合。例如,当插入的内容更接近相机组件132时,可以对使用阴影图生成的阴影更重地加权。当插入的内容距离相机组件132更远(例如,以替代使用阴影图生成的阴影)时,可以向第一阴影多边形或第二阴影多边形提供更高权重。另外,也可以使用生成阴影的其它技术并且以类似方式组合(或加权)这些技术。在一些实施方案中,本文所描述的阴影技术可以与阴影图组合,以产生总体上更逼真的总体阴影。
在一些实施方案中,图像分析器126、内容分析器128和阴影引擎130可以包括存储在存储器110中的指令,所述指令在由处理器组件112执行时使处理器组件112执行本文所描述的操作,以生成显示(例如,通过HMD 104)给用户的图像或图像序列。
AR应用120可以基于从相机组件132、IMU 134,和/或传感器系统116的其它部件接收的输入而更新AR环境。例如,IMU 134可以检测计算装置102和/或HMD 104的运动、移动和/或加速度。IMU 134可以包括各种不同类型的传感器,例如,加速计、陀螺仪、磁力计和其它此类传感器。可以基于由包括在IMU 134中的传感器提供的数据而检测和跟踪HMD 104的位置和定向。检测到的HMD 104的位置和定向可以允许系统检测和跟踪用户在物理空间内的位置和定向。基于检测到的位置和定向,AR应用120可以更新AR环境,以反映用户在环境内的改变的定向和/或位置。
尽管计算装置102和HMD 104在图1中示出为单独的装置,但是在一些实施方案中,计算装置102可以包括HMD 104。在一些实施方案中,计算装置102通过电缆与HMD 104通信,如图1中所示。例如,计算装置102可以将视频信号和/或音频信号传输到HMD 104以向用户显示,并且HMD 104可以将运动、位置和/或定向信息传输到计算装置102。
AR内容源106可以生成并输出AR内容,可以通过网络108将AR内容分布或发送到一个或多个计算装置,例如计算装置102。在示例实施方案中,AR内容包括三维场景和/或图像。另外,AR内容可以包括流式传输或分布到一个或多个计算装置的音频/视频信号。AR内容还可以包括AR应用,所述AR应用在计算装置102上运行,以生成3D场景、音频信号,和/或视频信号。
网络108可以是因特网、局域网(LAN)、无线局域网(WLAN),和/或任何其它网络。例如,计算装置102可以通过网络接收音频/视频信号,所述音频/视频信号在说明性示例实施方案中可以提供为AR内容的一部分。
图2是示例物理空间200的第三人称视角,其中用户正通过示例HMD 104体验AR环境202。AR环境202通过计算装置102的AR应用120生成并且通过HMD 104显示给用户。
AR环境202包括显示在物理空间200的图像上的插入的内容204。在此示例中,内容204是乌龟,所述乌龟正在AR环境202中的地板的表示上生成阴影206。所述阴影是根据本文所描述的技术生成的。
在一些实施方案中,AR环境202作为单个图像或一对立体图像提供给用户,所述单个图像或一对立体图像基本上占据了用户的全部视野并且通过HMD 104显示给用户。在其它实施方案中,通过将插入的内容204和生成的阴影206显示/投影在占据用户视野的至少一部分的至少部分透明的组合器上,从而将AR环境提供给用户。例如,HMD 104的部分可以是透明的,并且当佩戴HMD 104时,用户可能够通过这些部分看到物理空间200。
图3A和图3B是示例HMD 300,例如图2中的用户佩戴的HMD104的透视图,并且图3C说明了用于控制HMD 300和/或与HMD 300交互的示例手持式电子装置302。
手持式电子装置302可以包括:外壳303,在所述外壳中接纳有装置302的内部部件;以及用户界面304,所述用户界面位于外壳303外部,并且可由用户访问。用户界面304可以包括被配置成接收用户触摸输入的触敏表面306。用户界面304还可以包括用于由用户操纵的其它部件,例如,致动按钮、旋钮、操纵杆等。在一些实施方案中,用户界面304的至少一部分可以被配置为触摸屏,其中用户界面304的所述部分被配置成向用户显示用户界面项目,并且还接收来自用户的在触敏表面306上的触摸输入。手持式电子装置302还可以包括光源308,所述光源被配置成例如响应于在用户界面304处接收的用户输入,通过外壳303中的端口选择性地发射光,例如光束或光线。
HMD 300可以包括联接到框架320的外壳310,所述外壳包括音频输出装置330,所述音频输出装置包括例如安装在耳机中的扬声器,所述音频输出装置也联接到框架320。在图3B中,外壳310的前部部分310a旋转远离外壳310的基底部分310b,使得容纳在外壳310中的一些部件可见。显示器340可以安装在外壳310的前部部分310a的面向内部侧上。当前部部分310a相对于外壳310的基底部分310b处于闭合位置中时,透镜350可以安装在外壳310中,在用户的眼睛与显示器340之间。在一些实施方案中,HMD 300可以包括:感测系统360,所述感测系统包括各种传感器;以及控制系统370,所述控制系统包括处理器390以及用于促进HMD 300的操作的各种控制系统装置。
在一些实施方案中,HMD 300可以包括用于捕获静止图像和移动图像的相机380。由相机380捕获的图像可以用于帮助跟踪用户和/或手持式电子装置302在现实世界中或相对于增强环境的物理空间中的物理位置,和/或可以用看透模式在显示器340上显示给用户,从而允许用户暂时离开增强环境并返回到物理环境,而无需移除HMD 300或以其它方式改变HMD 300的配置,以将外壳310移出用户的视线。
例如,在一些实施方案中,感测系统360可以包括惯性测量单元(IMU)362,所述IMU包括各种不同类型的传感器,例如,加速计、陀螺仪、磁力计和其它此类传感器。可以基于由IMU 362中包括的传感器提供的数据而检测和跟踪HMD 300的位置和定向。HMD 300的检测到的位置和定向可以允许系统检测和跟踪用户的头部注视方向和移动。
在一些实施方案中,HMD 300可以包括用于检测并跟踪用户的眼睛注视的注视跟踪装置365。注视跟踪装置365可以包括例如图像传感器365A或多个图像传感器365A,用于捕获用户眼睛,例如用户眼睛的特定部分(例如瞳孔等)的图像,以检测并跟踪用户的注视方向和移动。在一些实施方案中,可以配置HMD 300,使得将检测到的注视作为用户输入来处理,以转换成沉浸式虚拟体验中的对应交互。
在一些实施方案中,HMD 300包括可拆卸地设置在外壳310的腔室内的便携式电子装置,例如智能电话。例如,可以由便携式电子装置提供显示器340和相机380。当腔室闭合时(如图3A中所示),显示器340与透镜350对准,使得用户通过每只眼睛观看显示器340(由便携式电子装置提供)的至少一部分。相机380可以与外壳310中的孔对准,使得HMD 300的便携式电子装置可以在被设置在外壳310中时捕获图像。
图4是用户通过示例便携式电子装置402体验AR环境202的示意图。便携式电子装置402是计算装置102的示例。便携式电子装置402可以是智能电话、平板电脑或任何类型的便携式计算装置。在此示例中,用户通过便携式电子装置的显示装置418体验AR环境。例如,显示装置418可以包括可以示出图像和/或视频的屏幕。
图5是根据本文所描述的实施方案的为插入的内容生成阴影的示例方法500的图。例如,此方法500可以由计算装置102执行,从而为用户提供AR环境。
在操作502处,接收图像。接收图像可以包括用相机组件,例如相机组件132捕获图像。接收图像可以包括访问存储在存储器位置中的先前捕获的图像。还可以从另一计算装置,例如通过网络可访问的服务器接收图像。
在操作504处,识别图像内的表面平面。可以使用各种图像处理技术来识别表面平面。例如,可以通过识别图像的基本平坦区域来识别表面平面。在一些实施方案中,可以基于分析多个图像(例如,来自物理空间的视频流的图像序列)生成表面平面。表面平面可以对应于地面、地板或在其上可以放置物体的另一表面(例如,桌子、柜台、架子)。
在操作506处,确定要插入的内容的位置。在一些实施方案中,要插入的内容是AR内容。在至少一些实施方案中,内容包括一个或多个三维模型,例如多边形网格。多边形网格可以与骨架动画模型相关联,所述骨架动画模型包括彼此连接的多个骨架关节。骨架模型可以允许围绕至少一些关节移动或旋转。这些移动可能导致多边形网络的各个部分发生对应的移动或变形。
例如,通过识别接收的图像中的基本平坦表面并且将内容定位在所识别表面上,可以确定要插入的内容的位置。还可以至少部分地通过用户输入确定要插入的内容的位置。例如,用户可以识别图像内的位置以插入内容。在一些实施方案中,可以将内容放置在水平面上与用户识别的位置对应的位置处(例如,由用户识别的位置下方的位置,使得内容被定位于平面上)。还可以基于内容在前一图像(即,由相机组件捕获的视频的前一帧)中的位置来确定内容的位置。例如,内容可以相对于物理空间四处移动(例如,图2中所示的计算机生成的乌龟图像内容可能会爬过地板)。
在操作508处,基于关节,为内容生成边界框。关节可以从上方投影到在操作504中所识别的表面平面上。在一些实施方案中,可以忽略关节的3D位置的竖直分量以计算边界框。在一些实施方案中,边界框是界定(bounds)(包围)关节的四边形。例如,边界框可以是矩形。在一些实施方案中,关节的子集用于确定边界框。例如,插入的内容可以与数据结构相关联,所述数据结构识别要用于生成边界框或排除用于生成边界框的一些关节。
在操作510处,基于关节确定阴影中心点位置。例如,基于投影到表面平面上的关节的位置而确定阴影中心点位置。在一些实施方案中,阴影中心点是关节的空间中点。在一些实施方案中,阴影中心点被计算为关节的质心。例如,关节可以相等地进行加权并且通过使关节的位置平均化来确定中心点的位置。在一些实施方案中,基于距表面平面的距离(例如,高度)对关节进行加权,并且中心点的位置被确定为关节位置的加权平均。类似于生成边界框(上文至少关于操作508描述),在一些实施方案中,关节的子集可以用于确定阴影中心点位置。
在操作512处,基于边界框和阴影中心点,在表面平面上生成阴影实体。例如,阴影实体可以是由边界框限制(circumscribed)的多边形。在至少一些实施方案中,阴影实体是椭圆形多边形,所述椭圆形多边形具有在阴影中心点处相交的第一轴线和第二轴线。椭圆形多边形可以具有零个、一个或两个对称轴。在一些实施方案中,可以使用具有其它形状的多边形,例如,矩形多边形。另外,如本领域技术人员将理解的,通常使用布置成近似椭圆形的多条直线来表示椭圆形多边形。
在操作514处,使用基于阴影中心点确定的像素值来渲染阴影实体。在一些实施方案中,阴影实体的像素用深色,例如黑色渲染,并且具有变化的透明度(例如,阿尔法值)。可以基于像素与中心点之间的距离来确定像素的透明度值。在一些实施方案中,透明度值还基于从像素值到多边形边缘的距离。例如,可以使用基于被表示为从阴影中心点到多边形边缘的距离百分比的像素位置的径向衰减函数来确定透明度值。在一些实施方案中,位于多边形边缘的像素(100%)将完全透明,并且位于阴影中心点的像素(0%)将完全不透明。在一些实施方案中,径向衰减是线性的。在其它实施方案中,径向衰减是非线性的。例如,对于距离多边形边缘不到50%的像素,透明度值可能较低,使得阴影实体基本上是不透明的;而距离多边形边缘大于50%的像素的透明度快速地增加。在一些实施方案中,像素值可以包括像素的颜色。
一旦渲染了阴影实体,就可以将插入的内容添加在阴影前方,并且随后阴影实体和插入的内容两者可以覆盖在操作502处接收的图像上,以生成增强图像。随后,可以向用户显示增强图像以提供增强环境。另外,可以将渲染后的阴影实体和插入的内容投影到透明的组合器表面上,在所述透明的组合器表面处,渲染后的阴影实体和插入的内容将示出在用户的物理空间的视野上。尽管此示例描述将插入的内容添加在渲染后的阴影实体前方,但是在一些实施方案中,插入的内容和阴影实体会一起渲染,并且实际上仅渲染阴影实体的可见部分。
图6是根据本文所描述的实施方案的为插入的内容生成阴影的示例方法600的图。例如,此方法600可以由计算装置102执行,从而为用户提供AR环境。
在操作602处,捕获图像。例如,图像可以由计算装置,例如计算装置102的相机组件捕获。所捕获的图像可以作为纹理存储在图像缓冲器124中。图7A中示出了示例图像700。
在操作604处,识别图像中的表面平面。如上所述,表面平面可以对应于图像中的地面或地板。图7A中示出了已在图像700中识别的示例表面平面702。
在操作606处,确定将要插入的内容的位置。在一些实施方案中,内容包括至少部分地由具有多个关节的骨架限定的多边形网格。如上所述,可以通过各种方式,例如基于用户输入、表面平面的位置,和/或内容在前一图像中的位置来确定所述位置。图7B示出了内容704的示例,所述内容的示例覆盖在图像700上的示例性确定的位置处。图7C从俯视图示出了在表面平面702上的内容704,并且图7D示出了包括关节708的骨架706。
在操作608处,基于所述多个关节而在内容的表面平面上生成边界框。如上所述,边界框在界定(包含)所有或基本上所有关节的表面平面(例如,X-Z平面)上可以是矩形。图7E示出了在界定关节708的表面平面702上的示例边界框710。如上所述,与插入的内容相关联的数据结构可以识别关节的子集,以包括用于生成边界框或排除用于生成边界框。
在操作610处,基于所述多个关节而确定在表面平面上的质心位置。如上所述,关节可以相等地进行加权并且将质心确定为关节的平均位置。替代地,可以通过各种因子(例如在表面平面上方的距离)对关节进行加权。图7E示出了被确定为关节708的质心位置的在表面平面702上的示例阴影中心点712。在一些实施方案中,与插入的内容相关联的数据结构可以提供关节的加权值,或可以识别关节的子集,以将所述关节的子集包括在用于确定质心的处理中,或将所述关节的子集排除在用于确定质心的处理中。
在操作612处,基于边界框和质心位置而在表面平面上生成椭圆形阴影多边形。如上所述,椭圆形的尺寸可以设定为配合于边界框内部,并且可以具有在质心位置处相交的第一和第二轴线。图7F示出了示例椭圆形(例如,长圆形)阴影多边形714。
在操作614处,使用基于从质心位置的径向衰减的透明度值来渲染阴影多边形。如上所述,径向衰减可以是线性的或非线性的。图7G示出了示例渲染后的椭圆形阴影多边形716。
在操作616处,内容插入在渲染后的阴影多边形的前方。阴影实体和插入的内容两者可以覆盖在操作602处捕获的图像上,以生成增强图像。图7H中示出了示例增强图像750。增强图像750包括内容704以及覆盖在图像700上的渲染后的椭圆形阴影多边形716。
图8是根据本文所描述的实施方案的为插入的内容生成阴影的示例方法800的图。例如,此方法800可以由计算装置102执行,从而为用户提供AR环境。
在操作802处,捕获图像。例如,图像可以由计算装置,例如计算装置102的相机组件捕获。所捕获的图像可以作为纹理存储在图像缓冲器124中。示例图像700在图7A中示出并且用作图9A至图9I中所示的其余示例的基础。
在操作804处,识别图像中的表面平面。如上所述,表面平面可以对应于图像中的地面或地板。图9A中示出了已在图像700中识别的示例表面平面902。
在操作806处,确定将要插入的内容的位置。在一些实施方案中,内容包括至少部分地由具有多个关节的骨架限定的多边形网格。如上所述,可以通过各种方式,例如基于用户输入、表面平面的位置,和/或内容在前一图像中的位置来确定所述位置。图9A示出了覆盖在图像700上的示例性确定的位置处的内容904的示例(在图7A处可以看到不具有插入的内容的图像700)。图9A中还示出了关于操作812进一步描述的阴影多边形906。图9B示出了与内容904相关联的骨架908。骨架908包括关节910。
在操作808处,选择所述多个关节中的至少一些关节,以生成多个选定的关节。图9B示出了识别所述多个选定的关节914的区域912。在此示例中,基于距表面平面902的距离来选择关节。在一些实施方案中,基于与插入的内容相关联的数据结构来选择关节。例如,数据结构可以识别应该选择或不应该选择的一些关节(例如,以排除这些关节为阴影做贡献)。
在操作810处,将淡出值分配给所述选定的多个关节。淡出值可以基于距表面平面902的距离。图9C示出了所述选定的多个关节914相对于表面平面902的侧视图。如图所示,淡出值随着距表面平面902的距离增加而增加。
在操作812处,基于内容在表面平面上生成阴影多边形。可以通过多种方式生成阴影多边形。例如,阴影多边形可以是矩形并且基于骨架模型的全部多个关节的边界框设定尺寸。阴影多边形还可以具有更圆的形状,所述更圆的形状例如由被布置成形成闭合椭圆形状的十六个边形成。图9A中在内容904下方示出了示例阴影多边形906。
在操作814处,对于阴影多边形的像素,确定来自选定的关节的阴影贡献值。在一些实施方案中,对于每个像素,为选定的关节中的每一个关节计算阴影贡献值。如先前所描述,特定选定的关节关于特定像素的阴影贡献值可以基于各种因素,例如,特定选定的关节的淡出值、从特定选定的关节到特定像素的距离,以及特定选定的关节关于选定的像素的顶角。图9D示出了来自阴影多边形906的示例像素916a和916b。图9D中还示出了来自所述多个选定的关节914的选定的关节914a和914b。
图9E示出了像素916a关于选定的关节914a和914b的距离值和顶角的示意性示例。在此示例中,线918aa的长度对应于从像素916a到选定的关节914a的距离,并且线918ab的长度对应于从像素916a到选定的关节914b的距离。在此示例中还示出了在阴影多边形906的法线N与线918aa之间(在像素916a与选定的关节914b之间)的顶角Θaa,以及在法线N与线918ab之间(在像素916a与选定的关节914b之间)的顶角Θab
类似地,图9F示出了像素916b关于选定的关节914a和914b的距离值和顶角的示意性示例。在此示例中,线918ba的长度对应于从像素916b到选定的关节914a的距离,并且线918bb的长度对应于从像素916b到选定的关节914b的距离。在此示例中还示出了在阴影多边形906的法线N与线918ba之间(在像素916b与选定的关节914a之间)的顶角Θba,以及在法线N与线918bb之间(在像素916b与选定的关节914b之间)的顶角Θbb
在一些实施方案中,特定选定的关节关于特定选定的像素的阴影贡献值基于以下项的组合,例如以下项之和:基于距离的值(例如,距离的倒数、立体角计算,或上述立体角计算的近似值)以及基于顶角的值(例如,顶角的余弦值,在一些实施方案中,所述顶角由特定选定的关节的淡出值缩放)。
尽管图9D至图9E的示例涉及多边形906上的两个像素与选定的关节914的两个像素之间的阴影贡献值,但是这只是为了阐明附图。如上所述,在至少一些实施方案中,在多边形906的每个像素与每个选定的关节之间确定阴影贡献值。在一些实施方案中,在GPU的渲染管线中的着色器可以执行确定阴影贡献值所需的至少一些计算。
在操作816处,将来自选定的关节的阴影贡献值组合,以生成像素的阴影强度值。阴影贡献值可以通过各种方式组合。例如,通过从来自对于特定像素的选定的关节中的每一个关节的阴影贡献中选择对于所述特定像素的最大阴影贡献,可以组合阴影贡献值。图9G示出了具有基于示例阴影强度值着色的像素916a和916b的多边形906的示例。
在操作818处,将阴影强度值归一化。例如,可以使用伽马函数将阴影强度值归一化到所需阴影轮廓(profile)。伽马函数可以将在操作816处确定的阴影强度值映射到强调中间色调阴影并减少暗阴影的分布。
在操作820处,径向衰减应用于归一化阴影强度值,以生成调整后的阴影强度值。应用于归一化阴影强度值的径向衰减可以是线性的或非线性的。径向衰减可以导致阴影多边形的边缘处的阴影强度降低。图9H示出了基于将调整后的阴影强度值应用于阴影多边形906的示例渲染后的阴影多边形930。
在操作822处,可以使用阴影强度值渲染阴影多边形。随后,阴影实体和插入的内容两者可以覆盖在操作802处捕获的图像上,以生成增强图像。图9I中示出了示例增强图像950。增强图像950包括内容904以及覆盖在图像700上的渲染后的阴影多边形930。如在图9I中的示例中所示,渲染后的阴影多边形930基于与选定阴影关节的接近度而包括较暗的阴影区域。
如先前所描述的,用于生成阴影的方法800可以分别与图5和图6中所描述的方法500或方法600组合。例如,渲染后的阴影多边形930可以与渲染后的椭圆形阴影多边形716(来自图7)组合,以生成组合的阴影多边形。
图10示出了可以与本文所描述的技术一起使用的计算机装置1000和移动计算机装置1050的示例。计算装置1000包括处理器1002、存储器1004、存储装置1006、连接到存储器1004以及高速扩展端口1010的高速接口1008,以及连接到低速总线1014和存储装置1006的低速接口1012。部件1002、1004、1006、1008、1010和1012中的每一个使用各种总线互连,并且可以安装在共同的母板上或视情况以其它方式安装。处理器1002可以处理用于在计算装置1000内执行的指令,包括存储于存储器1004中或存储装置1006上的指令,所述指令将GUI的图形信息显示在外部输入/输出装置(例如联接到高速接口1008的显示器1016)上。在其它实施方案中,多个处理器和/或多个总线可以视情况与多个存储器以及多种类型的存储器一起使用。而且,可以连接多个计算装置1000,其中每个装置提供必要操作的各部分(例如,作为服务器组、刀片服务器群组,或多处理系统)。
存储器1004将信息存储在计算装置1000内。在一个实施方案中,存储器1004是一个或多个易失性存储器单元。在另一实施方案中,存储器1004是一个或多个非易失性存储器单元。存储器1004还可以是另一形式的计算机可读介质,例如,磁盘或光盘。
存储装置1006能够为计算装置1000提供大容量存储。在一个实施方案中,存储装置1006可以是或可以包含计算机可读介质,例如,软盘装置、硬盘装置、光盘装置,或磁带装置、闪存存储器或其它类似的固态存储器装置,或装置的阵列,包括存储区域网络或其它配置中的装置。计算机程序产品可以有形地体现在信息载体中。计算机程序产品还可以包含指令,所述指令在执行时执行一个或多个方法,例如,上述那些方法。信息载体是计算机或机器可读介质,例如,存储器1004、存储装置1006,或处理器1002上的存储器。
高速控制器1008管理计算装置1000的高带宽强度操作,而低速控制器1012管理较低带宽强度操作。这种功能分配仅仅是示例性的。在一个实施方案中,高速控制器1008联接到存储器1004、显示器1016(例如,通过图形处理器或加速计),以及可以接受各种扩展卡(未示出)的高速扩展端口1010。在实施方案中,低速控制器1012联接到存储装置1006和低速扩展端口1014。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口可以例如通过网络适配器联接到一个或多个输入/输出装置,例如,键盘、指点装置、扫描仪,或例如交换机或路由器的联网装置。
如图所示,计算装置1000可以通过多种不同形式实施。例如,所述计算装置可以实施为标准服务器1020,或多次实施于此类服务器的群组中。所述计算装置还可以实施为机架式服务器系统1024的一部分。另外,所述计算装置可以实施于个人计算机(例如膝上型计算机1022)中。替代地,来自计算装置1000的部件可以与移动装置(例如装置1050)(未示出)中的其它部件组合。此类装置中的每一个可以包含计算装置1000、1050中的一个或多个,并且整个系统可以由彼此通信的多个计算装置1000、1050组成。
计算装置1050包括处理器1052、存储器1064、输入/输出装置(例如显示器1054)、通信接口1066和收发器1068,以及其它部件。装置1050还可以设置有存储装置(例如微驱动器或其它装置),以提供另外的存储。部件1050、1052、1064、1054、1066和1068中的每一个使用各种总线互连,并且若干部件可以安装在共同的母板上或视情况以其它方式安装。
处理器1052可以执行计算装置1050内的指令,包括存储于存储器1064中的指令。处理器可以实施为包括有分离的以及多个模拟和数字处理器的芯片的芯片组。例如,处理器可以提供装置1050的其它部件的协调,例如,用户界面、由装置1050运行的应用,以及由装置1050进行的无线通信的控制。
处理器1052可以通过控制接口1058和联接到显示器1054的显示器接口1056与用户通信。例如,显示器1054可以是TFT LCD(薄膜晶体管液晶显示器),或OLED(有机发光二极管)显示器,或其它合适的显示器技术。显示器接口1056可以包括用于驱动显示器1054向用户呈现图形和其它信息的合适电路。控制接口1058可以从用户接收命令并且转换所述命令以提交给处理器1052。另外,可以提供与处理器1052通信的外部接口1062,以便实现装置1050与其它装置进行近距离通信。例如,外部接口1062可以在一些实施方案中提供用于有线通信,或在其它实施方案中提供用于无线通信,并且还可以使用多个接口。
存储器1064将信息存储在计算装置1050内。存储器1064可以实施为一个或多个计算机可读介质、一个或多个易失性存储器单元,或一个或多个非易失性存储器单元中的一个或多个。还可以提供扩展存储器1074,并且通过扩展接口1072连接到装置1050,所述扩展接口可以包括例如,SIMM(单列直插式存储器模块)卡接口。此种扩展存储器1074可以为装置1050提供额外存储空间,或者还可以为装置1050存储应用或其它信息。具体来说,扩展存储器1074可以包括用于执行或补充上述过程的指令,并且还可以包括安全信息。因此,例如,可以将扩展存储器1074提供为装置1050的安全模块,并且可以用允许安全地使用装置1050的指令来编程。另外,可以通过SIMM卡与附加信息一起提供安全应用,例如,以不可侵入的方式将识别信息置于SIMM卡上。
如下所述,存储器可以例如包括闪存存储器和/或NVRAM存储器。在一个实施方案中,计算机程序产品有形地体现在信息载体中。计算机程序产品包含指令,所述指令在执行时执行一个或多个方法,例如,上述那些方法。信息载体是可以例如通过收发器1068或外部接口1062接收的计算机或机器可读介质,例如,存储器1064、扩展存储器1074,或处理器1052上的存储器。
装置1050可以通过通信接口1066无线地通信,所述通信接口在必要时可以包括数字信号处理电路。通信接口1066可以通过各种模式或协议下的通信,例如,GSM语音呼叫、SMS、EMS,或MMS消息传递、CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS等等。例如,这种通信可以通过射频收发器1068进行。另外,短程通信可以例如使用蓝牙、Wi-Fi,或其它此种收发器(未示出)进行。另外,GPS(全球定位系统)接收器模块1070可以向装置1050提供与导航和位置相关的附加无线数据,所述无线数据视情况可以由装置1050上运行的应用使用。
装置1050还可以使用音频编解码器1060以听觉方式通信,所述音频编解码可以从用户接收语音信息并且将所述语音信息转换成可用的数字信息。音频编解码器1060同样可以例如通过在例如装置1050的听筒中的扬声器为用户生成可听声音。这种声音可以包括来自语音电话的声音,可以包括录音声音(例如,语音消息、音乐文件等),并且还可以包括在装置1050上运行的应用所生成的声音。
如图所示,计算装置1050可以通过多种不同形式实施。例如,所述计算装置可以实施为蜂窝电话1080。所述计算装置还可以实施为智能电话1082、个人数字助理,或其它类似移动装置的一部分。
本文描述的系统和技术的各种实施方案可以在数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件,和/或它们的组合中实现。这些各种实施方案可以包括在一个或多个计算机程序中的实施方案,所述计算机程序可以在包括至少一个可编程处理器的可编程系统上执行和/或解释,所述可编程处理器可以用于专用或通用目的,且联接以从存储系统、至少一个输入装置和至少一个输出装置接收数据和指令,并将数据和指令传输到存储系统、至少一个输入装置和至少一个输出装置。
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以用高级程序化和/或面向对象的编程语言,和/或用汇编/机器语言实施。如本文所使用,术语“机器可读介质”、“计算机可读介质”指代用于将机器指令和/或数据提供到可编程处理器的任何计算机程序产品、设备和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”指代用于将机器指令和/或数据提供到可编程处理器的任何信号。
为了提供与用户的交互,本文描述的系统和技术可以在具有显示装置(LED(发光二极管),或OLED(有机LED),或LCD(液晶显示器)监视器/屏幕)的计算机上实施,以将信息显示给用户,以及键盘和指点装置(例如,鼠标或轨迹球),用户可以通过所述鼠标和指点装置将输入提供给计算机。其它种类的装置也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈(例如,视觉反馈、听觉反馈,或触觉反馈);以及来自用户的输入可以通过任何形式(包括声音、语音或触觉输入)接收。
本文描述的系统和技术可以在计算系统中实施,所述计算系统包括后端部件(例如,作为数据服务器),或包括中间件部件(例如,应用服务器),或包括前端部件(例如,具有图形用户界面或网络浏览器的客户端计算机,用户可以通过所述图形用户界面或网络浏览器与本文描述的系统和技术的实施方案交互),或此后端部件、中间件部件或前端部件的任何组合。系统的部件可以通过数字数据通信(例如,通信网络)的任何形式或介质互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)和因特网。
计算系统可以包括客户端和服务器。客户端和服务器通常远离彼此并且通常通过通信网络交互。客户端和服务器的关系通过在相应计算机上运行以及彼此具有客户端-服务器关系的计算机程序产生。
在一些实施方案中,图10中描绘的计算装置可以包括传感器,所述传感器与AR头盔/HMD装置1090接口连接以生成增强环境,用于查看物理空间内的插入的内容。例如,计算装置1050或图10中描绘的其它计算装置上包括的一个或多个传感器可以将输入提供到AR头盔1090,或一般来说将输入提供到AR空间。传感器可以包括但不限于,触摸屏、加速计、陀螺仪、压力传感器、生物计量传感器、温度传感器、湿度传感器,以及环境光传感器。计算装置1050可以使用传感器来确定计算装置在AR空间中的绝对位置和/或检测到的旋转,所述绝对位置和/或检测到的旋转随后可以用作AR空间的输入。例如,计算装置1050可以作为虚拟对象(例如控制器、激光指示器、键盘、武器等)并入到AR空间中。当并入到AR空间中时,用户对计算装置/虚拟对象的定位可以允许用户定位计算装置,以便以特定方式查看AR空间中的虚拟对象。例如,如果虚拟对象表示激光指示器,则用户可以操纵计算装置,如同所述计算装置是真的激光指示器一样。用户可以左右、上下、画圆等方式移动计算装置,并且以与使用激光指示器类似的方式使用所述装置。
在一些实施方案中,包括在计算装置1050上或连接到计算装置1050的一个或多个输入装置可以用作AR空间的输入。输入装置可以包括但不限于,触摸屏、键盘、一个或多个按钮、触控板、触摸板、指点装置、鼠标、轨迹球、操纵杆、相机、麦克风、耳机或具有输入功能的耳塞、游戏控制器,或其它可连接输入装置。当计算装置并入到AR空间中时,与包括在计算装置1050上的输入装置交互的用户可以导致在AR空间中发生特定动作。
在一些实施方案中,计算装置1050的触摸屏可以被渲染为AR空间中的触摸板。用户可以与计算装置1050的触摸屏交互。例如,该交互在AR头盔1090中被渲染为在AR空间中的渲染的触摸板上的移动。渲染的移动可以控制AR空间中的虚拟对象。
在一些实施方案中,包括在计算装置1050上的一个或多个输出装置可以向AR空间中的AR头盔1090的用户提供输出和/或反馈。输出和反馈可以是视觉、触觉或音频输出和反馈。输出和/或反馈可以包括但不限于,振动、一个或多个灯或闪光灯的开关或闪烁和/或闪光、发出警报、播放铃声、播放歌曲,以及播放音频文件。输出装置可以包括但不限于,振动电机、振动线圈、压电装置、静电装置、发光二极管(LED)、闪光灯,以及扬声器。
在一些实施方案中,计算装置1050可以看起来是计算机生成的3D环境中的另一对象。用户与计算装置1050的交互(例如,旋转、摇动、触摸触摸屏、在触摸屏上滑动手指)可以被解释为与AR空间中的对象的交互。在AR空间中的激光指示器的示例中,计算装置1050看起来是计算机生成的3D环境中的虚拟激光指示器。在用户操纵计算装置1050时,AR空间中的用户看到激光指示器的移动。用户在计算装置1050上或AR头盔1090上的AR环境中从与计算装置1050的交互中接收反馈。
在一些实施方案中,计算装置1050可以包括触摸屏。例如,用户可以通过可以模仿触摸屏上发生的事情以及AR空间中发生的事情的特定方式与触摸屏交互。例如,用户可以使用捏紧型运动来缩放显示在触摸屏上的内容。触摸屏上的这种捏紧型运动可以导致在AR空间中提供的信息被缩放。在另一示例中,计算装置可以被渲染为计算机生成的3D环境中的虚拟书本。在AR空间中,书的页面可以显示在AR空间中,并且用户的手指在触摸屏上的滑动可以被解释为翻动/翻转虚拟书的页面。当翻动/翻转每个页面时,除了看到页面内容变化之外,还可以向用户提供音频反馈,例如,翻动书中的页面的声音。
在一些实施方案中,除了计算装置之外,一个或多个输入装置(例如,鼠标、键盘)可以在计算机生成的3D环境中进行渲染。渲染后的输入装置(例如,渲染后的空间、渲染后的鼠标)可以作为在AR空间中渲染的输入装置使用,以控制AR空间中对象。
计算装置1000预期表示各种形式的数据计算机和装置,包括但不限于,膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其它合适的计算机。计算装置1050预期表示各种形式的移动装置,例如,个人数字助理、蜂窝电话、智能电话,以及其它类似的计算装置。此处所示的部件、所述部件的连接和关系,以及部件的功能预期仅仅是示例性的,并且并不意图限制本文档中描述和/或主张的发明的实施方案。
已描述多个实施例。然而,应理解的是,在不脱离本说明书的精神和范围的情况下可以进行各种改型。
另外,附图中描绘的逻辑流程不一定需要按所示的特定次序或按顺序实现期望的结果。另外,可以提供其它步骤,或可以从所描述的流程中去除步骤,并且其它部件可以添加到所描述系统,或从所描述系统移除。因此,其它实施例在所附权利要求书的范围内。
尽管已经如本文所描述的那样说明了所描述实施方案的某些特征,但是本领域技术人员现在将想到许多改型、替换、改变和等效物。因此,应理解的是,所附权利要求书预期涵盖落入实施方案的范围内的所有此类改型和改变。应理解的是,它们仅以示例而非限制性方式呈现,并且可以在形式和细节上进行各种改变。除了相互排斥的组合之外,本文所描述的设备和/或方法的任何部分可以通过任何组合进行组合。本文所描述的实施方案可以包括所描述的不同实施方案的功能、部件和/或特征的各种组合和/或子组合。

Claims (21)

1.一种方法,包括:
确定在图像内插入内容的位置,所述内容包括部分地由具有多个关节的骨架限定的多边形网格;
从所述多个关节中选择多个选定的关节;
生成阴影多边形;
对于所述阴影多边形的像素,确定所述多个选定的关节的阴影贡献值;
将来自所述选定的关节的所述阴影贡献值组合,以生成所述像素的阴影量值;
使用所述阴影量值渲染所述阴影多边形;以及
将所插入的内容覆盖在渲染后的阴影多边形上。
2.根据权利要求1所述的方法,其中,选择所述多个选定的关节包括基于与所述内容相关联的数据结构而选择关节。
3.根据权利要求1所述的方法,其中,选择所述多个选定的关节包括基于距表面平面的距离而选择关节,所述表面平面是基于所述图像识别的。
4.根据权利要求3所述的方法,其中,选择所述多个选定的关节包括选择最接近所述表面平面的阈值百分比的所述多个关节。
5.根据权利要求3所述的方法,还包括基于距所述表面平面的距离而将淡出值分配给所述多个选定的关节。
6.根据权利要求1所述的方法,其中,对于所述阴影多边形的特定像素,来自所述多个选定的关节的特定关节的所述阴影贡献值基于从所述特定像素到所述特定关节的距离。
7.根据权利要求6所述的方法,其中,对于所述特定像素,所述特定关节的所述阴影贡献值基于在所述特定像素与所述特定选定的关节之间的顶角。
8.根据权利要求1所述的方法,其中,组合所述阴影贡献值包括选择最大的阴影贡献值。
9.根据权利要求1所述的方法,还包括将渲染后的阴影多边形与另外的阴影多边形组合。
10.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质包括存储于其上的指令,所述指令在由至少一个处理器执行时被配置成使计算系统至少:
用相机组件捕获图像;
识别所述图像内的表面平面;
确定插入内容的位置,所述内容包括部分地由具有多个关节的骨架限定的多边形网格;
从所述多个关节中选择多个选定的关节;
将淡出值分配给所述多个选定的关节;
基于所述内容而生成阴影多边形;
对于所述阴影多边形的像素,确定所述多个选定的关节的阴影贡献值;
将来自所述选定的关节的所述阴影贡献值组合,以生成所述像素的阴影量值;
将所述阴影量值归一化,以生成归一化的阴影量值;
将径向衰减应用于所述归一化的阴影量值,以生成调整后的阴影量值;
使用所述调整后的阴影量值渲染所述阴影多边形;以及
将所插入的内容覆盖在渲染后的阴影多边形上。
11.根据权利要求10所述的非暂时性计算机可读存储介质,其中,使所述系统选择所述多个选定的关节的所述指令包括:使所述系统基于与所述内容相关联的数据结构而选择关节的指令。
12.根据权利要求11所述的非暂时性计算机可读存储介质,其中,所述数据结构包括关节黑名单,并且使所述系统选择所述多个选定的关节的所述指令包括:使所述系统选择不在所述关节黑名单中的关节的指令。
13.根据权利要求10所述的非暂时性计算机可读存储介质,其中,选择所述多个选定的关节包括基于距表面平面的距离而选择关节,所述表面平面是基于所述图像识别的。
14.一种系统,包括:
至少一个处理器;以及
存储器,所述存储器存储指令,所述指令在由所述至少一个处理器执行时使所述系统:
识别图像内的表面平面;
确定插入内容的位置,所述内容包括骨架动画模型;
基于来自所述骨架动画模型的多个骨架关节,在所述内容的所述表面平面上生成边界框;
基于将所述多个骨架关节投影到所述表面平面上以及将投影后的骨架关节的位置平均化,确定所述内容的质心位置;
基于所述边界框和所述质心位置而在所述表面平面上生成第一阴影多边形,所述第一阴影多边形具有长圆形;
基于将径向衰减函数应用于所述质心位置而渲染所述第一阴影多边形,以生成渲染后的第一阴影多边形;
从所述多个骨架关节中选择多个选定的骨架关节;
基于所述内容而生成第二阴影多边形;
对于所述第二阴影多边形的像素,确定所述多个选定的骨架关节的阴影贡献值;
将来自所述选定的骨架关节的所述阴影贡献值组合,以生成所述第二阴影多边形的所述像素的阴影量值;
使用所述阴影量值渲染所述第二阴影多边形,以生成渲染后的第二阴影多边形;
将渲染后的第一阴影多边形和渲染后的第二阴影多边形组合,以生成组合的阴影多边形;以及
将所插入的内容覆盖在所组合的阴影多边形上。
15.根据权利要求14所述的系统,还包括相机组件,并且其中,所述指令包括使所述系统用所述相机组件捕获所述图像的指令。
16.根据权利要求14所述的系统,其中,使所述系统选择所述多个选定的骨架关节的所述指令包括:使所述系统基于与包括骨架关节黑名单的所述内容相关联的数据结构而选择关节的指令。
17.根据权利要求16所述的系统,其中,使所述系统选择所述多个选定的骨架关节的所述指令包括:使所述系统选择不在所述关节黑名单中的关节的指令。
18.一种方法,包括:
确定在图像内插入内容的位置,所述内容包括部分地由具有多个关节的骨架限定的多边形网格;
基于所述多个关节中的至少一些关节,为所述内容生成边界框;
基于所述多个关节中的至少一些关节而确定所述内容的质心位置;
基于所述边界框和所述质心位置而生成第一阴影多边形;
基于所述质心位置而生成所述第一阴影多边形的像素的第一阴影量值;
从所述多个关节中选择多个选定的关节;
基于所述内容而生成第二阴影多边形;
对于所述第二阴影多边形的像素,确定所述多个选定的关节的阴影贡献值;
将来自所述选定的关节的所述阴影贡献值组合,以生成所述第二阴影多边形的所述像素的第二阴影量值;
将来自所述第一阴影多边形的所述第一阴影量值与来自所述第二阴影多边形的所述第二阴影量值组合,以生成组合的阴影量值;以及
使用所组合的阴影量值渲染所组合的阴影多边形。
19.根据权利要求18所述的方法,其中,选择所述多个选定的关节包括基于距表面平面的距离而选择关节,所述表面平面是基于所述图像识别的。
20.根据权利要求19所述的方法,还包括基于距所述表面平面的距离而将淡出值分配给所述多个选定的关节。
21.根据权利要求20所述的方法,其中,对于所述第二阴影多边形的特定像素,来自所述多个选定的关节的特定关节的所述阴影贡献值基于从所述特定像素到所述特定关节的距离。
CN201880037061.1A 2017-10-04 2018-10-04 用于生成插入的内容的阴影的方法和系统 Active CN110692089B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201762568115P 2017-10-04 2017-10-04
US201762568083P 2017-10-04 2017-10-04
US62/568,115 2017-10-04
US62/568,083 2017-10-04
US16/150,813 US10679404B2 (en) 2017-10-04 2018-10-03 Shadows for inserted content
US16/150,813 2018-10-03
PCT/US2018/054356 WO2019070969A1 (en) 2017-10-04 2018-10-04 SHADOW GENERATION FOR INSERT IMAGE CONTENT

Publications (2)

Publication Number Publication Date
CN110692089A true CN110692089A (zh) 2020-01-14
CN110692089B CN110692089B (zh) 2023-06-06

Family

ID=65896860

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201880037080.4A Active CN110709897B (zh) 2017-10-04 2018-10-04 用于插入到图像中的图像内容的阴影生成
CN201880037061.1A Active CN110692089B (zh) 2017-10-04 2018-10-04 用于生成插入的内容的阴影的方法和系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201880037080.4A Active CN110709897B (zh) 2017-10-04 2018-10-04 用于插入到图像中的图像内容的阴影生成

Country Status (5)

Country Link
US (3) US10679404B2 (zh)
EP (2) EP3692505A1 (zh)
JP (2) JP7008730B2 (zh)
CN (2) CN110709897B (zh)
WO (2) WO2019070971A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10922878B2 (en) * 2017-10-04 2021-02-16 Google Llc Lighting for inserted content
US11024094B2 (en) * 2017-12-21 2021-06-01 Intel Corporation Methods and apparatus to map a virtual environment to a physical environment
US10997781B1 (en) * 2017-12-27 2021-05-04 Disney Enterprises, Inc. Systems and methods of real-time ambient light simulation based on generated imagery
TWI715903B (zh) * 2018-12-24 2021-01-11 財團法人工業技術研究院 動作追蹤系統及方法
US10846834B2 (en) * 2019-02-20 2020-11-24 United States Of America As Represented By The Secretary Of The Navy Shadow brightening image enhancement
CA3045133C (en) * 2019-06-03 2023-03-21 Eidos Interactive Corp. Systems and methods for augmented reality applications
US20220237849A1 (en) * 2019-06-28 2022-07-28 Tobii Ab Method and system for reducing processor load in a computer
US11164367B2 (en) 2019-07-17 2021-11-02 Google Llc Illumination effects from luminous inserted content
KR102314008B1 (ko) * 2019-12-20 2021-10-18 네이버랩스 주식회사 증강 현실 기반 내비게이션 환경에서 객체의 그림자를 표시하기 위한 전자 장치 및 그의 동작 방법
EP4121947A1 (en) * 2020-03-17 2023-01-25 InterDigital CE Patent Holdings, SAS System and method for real-time ray tracing in a 3d environment
CN112184920B (zh) * 2020-10-12 2023-06-06 中国联合网络通信集团有限公司 基于ar的滑雪盲区显示方法、装置及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11316853A (ja) * 1998-05-01 1999-11-16 Hitachi Ltd 仮想現実感生成装置及び方法
US20030071822A1 (en) * 2001-10-17 2003-04-17 Lake Adam T. Generating a shadow for a three-dimensional model
CN1438615A (zh) * 2002-02-13 2003-08-27 恩益禧电子股份有限公司 图像处理方法
JP2003331313A (ja) * 2002-05-14 2003-11-21 Konami Computer Entertainment Japan Inc 画像処理プログラム
JP3748451B1 (ja) * 2005-03-31 2006-02-22 株式会社ナムコ プログラム、情報記憶媒体、及び画像生成システム
US20080001947A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation Microsoft Patent Group Soft shadows in dynamic scenes
JP2008305241A (ja) * 2007-06-08 2008-12-18 Samii Kk 画像生成装置および画像生成プログラム
CN102696057A (zh) * 2010-03-25 2012-09-26 比兹摩德莱恩有限公司 增强现实系统
CN103988234A (zh) * 2011-12-12 2014-08-13 微软公司 经由透视显示器来显示阴影
CN107230249A (zh) * 2017-07-04 2017-10-03 北京像素软件科技股份有限公司 阴影渲染方法和装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3667393B2 (ja) * 1995-08-04 2005-07-06 株式会社ナムコ 3次元ゲーム装置及び画像合成方法
US6437782B1 (en) 1999-01-06 2002-08-20 Microsoft Corporation Method for rendering shadows with blended transparency without producing visual artifacts in real time applications
JP4443012B2 (ja) * 2000-07-27 2010-03-31 株式会社バンダイナムコゲームス 画像生成装置、方法および記録媒体
US6791563B2 (en) * 2001-09-18 2004-09-14 Bentley Systems, Incorporated System, method and computer program product for global rendering
JP4001227B2 (ja) * 2002-05-16 2007-10-31 任天堂株式会社 ゲーム装置及びゲームプログラム
US6975318B2 (en) * 2002-06-25 2005-12-13 Intel Corporation Polygon binning process for tile-based rendering
JP4193979B2 (ja) 2003-03-17 2008-12-10 任天堂株式会社 シャドウボリューム生成プログラム及びゲーム装置
JP2010055131A (ja) * 2008-07-28 2010-03-11 Namco Bandai Games Inc プログラム、情報記憶媒体及び画像生成システム
US8537233B1 (en) * 2008-10-14 2013-09-17 Marvell International Ltd. Preventing color artifacts in overexposed regions and preserving maximum signals in near-overexposed regions of digital images
US9122053B2 (en) 2010-10-15 2015-09-01 Microsoft Technology Licensing, Llc Realistic occlusion for a head mounted augmented reality display
US9324183B2 (en) * 2011-11-29 2016-04-26 Apple Inc. Dynamic graphical interface shadows
US9613461B2 (en) * 2012-12-10 2017-04-04 Sony Corporation Display control apparatus, display control method, and program
CN104408775B (zh) 2014-12-19 2017-04-26 哈尔滨工业大学 基于深度感知的三维皮影戏制作方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11316853A (ja) * 1998-05-01 1999-11-16 Hitachi Ltd 仮想現実感生成装置及び方法
US20030071822A1 (en) * 2001-10-17 2003-04-17 Lake Adam T. Generating a shadow for a three-dimensional model
CN1438615A (zh) * 2002-02-13 2003-08-27 恩益禧电子股份有限公司 图像处理方法
JP2003331313A (ja) * 2002-05-14 2003-11-21 Konami Computer Entertainment Japan Inc 画像処理プログラム
JP3748451B1 (ja) * 2005-03-31 2006-02-22 株式会社ナムコ プログラム、情報記憶媒体、及び画像生成システム
US20080001947A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation Microsoft Patent Group Soft shadows in dynamic scenes
JP2008305241A (ja) * 2007-06-08 2008-12-18 Samii Kk 画像生成装置および画像生成プログラム
CN102696057A (zh) * 2010-03-25 2012-09-26 比兹摩德莱恩有限公司 增强现实系统
CN103988234A (zh) * 2011-12-12 2014-08-13 微软公司 经由透视显示器来显示阴影
CN107230249A (zh) * 2017-07-04 2017-10-03 北京像素软件科技股份有限公司 阴影渲染方法和装置

Also Published As

Publication number Publication date
WO2019070969A1 (en) 2019-04-11
JP7008730B2 (ja) 2022-01-25
CN110709897B (zh) 2024-01-02
US20200273238A1 (en) 2020-08-27
US20190102935A1 (en) 2019-04-04
US10607403B2 (en) 2020-03-31
JP2020537200A (ja) 2020-12-17
JP7008733B2 (ja) 2022-01-25
US20190102934A1 (en) 2019-04-04
WO2019070971A1 (en) 2019-04-11
CN110692089B (zh) 2023-06-06
EP3692505A1 (en) 2020-08-12
US10762694B1 (en) 2020-09-01
US10679404B2 (en) 2020-06-09
CN110709897A (zh) 2020-01-17
JP2020537201A (ja) 2020-12-17
EP3692506A1 (en) 2020-08-12

Similar Documents

Publication Publication Date Title
CN110692089B (zh) 用于生成插入的内容的阴影的方法和系统
US11043031B2 (en) Content display property management
US10546364B2 (en) Smoothly varying foveated rendering
KR101823182B1 (ko) 동작의 속성을 이용한 디스플레이 상의 3차원 사용자 인터페이스 효과
US20180088776A1 (en) Three Dimensional User Interface Effects On A Display
US10922889B2 (en) Directing user attention
US11430192B2 (en) Placement and manipulation of objects in augmented reality environment
CN110692237B (zh) 用于照明插入内容的方法、系统和介质
CN111696190B (zh) 来自发光的插入内容的照明效果
CN111868787A (zh) 用于插入内容的增强镜面反射

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant