科技魔方

苹果AR/VR专利介绍一种在物理表面呈现虚拟对象的方法

AR/VR

2022年08月30日

  如何在物理对象之上叠加呈现虚拟对象是AR增强现实技术必须重点考虑的一个挑战。在名为“Xr preferred movement along planes”的专利申请中,苹果就介绍了一种在物理表面呈现虚拟对象的方法。

  具体地,电子设备可以初始化虚拟对象,使得当通过显示器查看时,虚拟对象看起来好像是放置在环境中的物理表面之上。电子设备可以根据物理表面的物理几何形状来确定虚拟对象的初始化。

  根据一个或多个实施例,电子设备可以获得或以其他方式访问真实环境的几何信息,特别是真实环境中的一个或更多个物理表面。

  在一个或多个实施例中,电子设备可以以不同的粒度级别获得真实环境表面的两个或更多个表示。作为示例,电子设备可以接收平面表示形式的第一表示,其指示真实环境的物理空间中与表面相关联的平面。电子设备可以接收第二表示,第二表示包括表面的几何形状的更精细的表示,例如网格表示。

  根据一个或多个实施例,利用物理表面的粒度较小的表示可能比使用粒度较大的表示更有效。在一个或多个实施例中,当确定如何将虚拟对象呈现为物理表面之上时,电子设备可以首先确定物理表面上的虚拟对象将被呈现的点。

  然后,电子设备可以比较第一表示和第二表示。在一个或多个实施例中,电子设备可以在初始化点处比较粒度较小表示(即平面表示)的第一法线和粒度较大表示(即网格表示)的第二法线。

  在一个或多个实施例中,如果第一法线和第二法线足够相似,则电子设备使用粒度较小的表示(即平面表示)来渲染和显示虚拟对象。如果第一法线和第二法线实质上不同,则电子设备可以使用更细粒度的表示(即,网格表示)来渲染和显示虚拟对象。在一个或多个实施例中,通过在法线基本相似的情况下利用粒度较小的表示,可以通过减少渲染和呈现虚拟对象所需的资源来优化电子设备。

  在一个或多个实施例中,如果网格表示用于初始化对象,则网格表示可用于确定虚拟对象如何在物理表面上移动。作为示例,如果用户使得虚拟对象看起来沿着表面移动,则电子设备可以基于所确定的表示来呈现移动。

  因此,如果第一法线与第二法线充分不同,则根据一个或多个实施例,可以确定物理表面不是基本平坦的,并且应该使用更精细的表示来确定如何渲染和显示虚拟对象。在一个或多个实施例中,当虚拟对象移动时,电子设备可以在表示之间切换,以确定虚拟对象应当如何呈现。

  电子设备最初可以仅获得物理表面一部分的几何表示。根据一个或多个实施例,当使虚拟对象沿着表面移动时,电子设备在接收虚拟对象正在其上移动的物理表面的更新表示时可能会经历延迟。

  因此在一个或多个实施例中,当虚拟对象接近物理表面的几何表示的末端时,则电子设备可以通过在移动方向上延伸平面表示来推断额外的几何数据,使得电子设备可以继续呈现沿着表面移动的虚拟对象。在一个或多个实施例中,在获得更新的几何表示之后,电子设备可以相应地更新虚拟对象的渲染。

  图1示出了电子设备100的简化框图。

  根据一个或多个实施例,表示模块132可以利用物理环境的图像信息来识别物理环境的几何表示。在一个或多个实施例中,表示模块132可以获得给定物理环境的不同粒度级别的多个几何表示。

  作为示例,表示模块132可以基于从摄像头105和深度传感器110等其他组件获得的数据来生成一个或多个几何表示,表示模块132可以识别电子设备所处的物理环境,并例如从几何表示存储142或电子设备100可通信地耦合到的其他存储设备获得物理环境的一个或多个预定几何表示。几何表示可以包括变化的粒度级别。

  在一个或多个实施例中,几何表示可以包括识别物理环境中的平面物理表面的平面表示。几何表示还可以包括网格表示,网格表示可以包括物理环境中的对象(例如物理表面)的几何的网格表示。

  在一个或多个实施例中,虚拟化模块134用于生成用于呈现的虚拟对象,使得它看起来像是放置在物理环境中一样。虚拟化模块可以生成虚拟对象,或者可以从虚拟对象存储144或从网络存储中的其他地方获得虚拟对象。

  根据一个或多个实施例,虚拟化模块134用于渲染和显示给定的虚拟对象,使其看起来好像被放置在物理环境中的物理表面上和/或在物理表面上移动。为了确定渲染和显示虚拟对象的位置,虚拟化模块可以利用一个或多个几何表示来确定要在其上渲染虚拟对象的物理表面的几何结构。根据一个或多个实施例,当可用时,利用较少粒度的表示可能更有效。因此,虚拟化模块可以基于虚拟对象将在其上呈现的表面的表示的特征从多个几何表示中选择。

  图2示出了操作环境。操作环境240包括第一物理环境,而操作环境250包括第二物理环境。

  如图2所示,第一环境240包括正在使用第一电子设备200的第一用户220,第二环境250包括正在使用第二电子设备210的第二用户232。在一个或多个实施例中,第一电子设备210和第二电子设备210包括移动设备等等。

  在一个或多个实施例中,第一电子设备200和第二电子设备210经由网络205彼此通信。网络205的示例可以包括例如互联网、广域网(WAN)、局域网(LAN)等。在一个或者多个实施方式中,第一电子设备200和第二电子设备210可以参与公共共现混合现实环境。

  尽管电子设备200和电子设备210可能参与共同呈现的混合现实环境,但虚拟环境在每个设备呈现可以不同。电子设备200的显示器242同时可以包括与物理环境250中的用户232相对应的Avatar化身226。

  图3示出了用于渲染虚拟对象的技术的流程图。流程图从305开始,其中表示模块132检测真实环境中的物理表面。根据一个或多个实施例,电子设备100可以通过扫描电子设备所处的物理环境的至少一部分来开始。作为示例,电子设备100可以利用摄像头或其他传感器来识别物理环境的特征。在一个或多个实施例中,电子设备100可以检测环境中的物理表面,或者可以识别电子设备100处于具有已知物理表面的位置。

  在310,虚拟化模块134识别并初始化虚拟对象在物理表面上的位置。作为示例,虚拟化模块134可以确定显示器160的视图内的物理表面上的一般位置。例如,可以基于电子设备100与物理表面的相对位置来确定初始化位置,例如,在显示器160的中心可见的物理表面的位置。作为另一示例,可以基于用户输入或其他技术来确定初始化位置。

  在315,表示模块132获得物理表面的第一表示。在一个或多个实施例中,第一表示可以包括平面表示。然后在320,电子设备100可以获得物理表面的第二表示。在一个或多个实施例中,第二表示可以包括物理表面的网格表示。第一表示和第二表示可以包括具有不同粒度级别的物理环境的相同部分的表示。作为示例,平面表示可能不如网格表示详细。作为另一示例,第一表示可以是二维表示,而第二表示可以是物理表面的三维表示。

  在325,虚拟化模块134基于平面表示和网格表示确定渲染虚拟对象的位置。所述位置将是虚拟对象将出现在其上的物理环境的一部分。下面将参照图4更详细地描述用于确定位置的技术。所确定的位置将标识三维空间中虚拟对象应该出现的区域。

  在330,虚拟化模块134根据确定的位置呈现虚拟对象。可以以与三维空间中的确定位置一致的比例来渲染虚拟对象。另外,虚拟对象可以被显示为通过电子设备的显示器向用户呈现,好像虚拟对象位于物理环境中的物理表面之上。

  图4示出了根据一个或多个实施例的用于确定渲染虚拟对象的位置的技术的流程图。具体地,图4描绘了用于确定在渲染虚拟对象时使用物理表面的哪个几何表示的技术。

  在405,虚拟化模块134确定初始化位置处的第一表示的第一法线。如上所述,第一表示可以与物理环境中的物理表面的较不精细或较不详细的几何表示相关联。根据一个或多个实施例,可以确定物理表面上应该呈现虚拟对象的点或区域。

  然后,可以通过识别第一表示上的点或区域来确定第一法线,该点或区域对应于物理表面上虚拟对象应该呈现的点或位置。然后确定第一表示上的该点或区域的法线。在一个或多个实施例中,确定法线的特定点可以基于区域的中心、区域上的代表点,或者可以确定为区域的代表法线等。

  在410,其中虚拟化模块134在初始化位置确定第二表示的第二法线。如上所述,第二表示可以与物理环境中的物理表面的比第一表示更细粒度或更详细的几何表示相关联。根据一个或多个实施例,可以确定物理表面上应该呈现虚拟对象的点或区域。

  然后,可以通过识别第二表示上的点或区域来确定第二法线,该点或区域对应于物理表面上虚拟对象应该呈现的点或位置。然后确定第一表示上的该点或区域的法线。在一个或多个实施例中,确定法线的特定点可以基于区域的中心、区域上的代表点,或者可以确定为区域的代表法线等。在一个或多个实施例中,第一法线和第二法线可以以一致的方式确定,例如每个表示上的点表示物理表面上的相同点。

  在415,计算第一法线和第二法线之间的差。该差可以基于两个法线之间的角度距离来确定。在420,确定所计算的差值是否满足阈值。作为示例,可以确定第一法线和第二法线之间的差是否大于预定阈值差。在一个或多个实施例中,阈值可以是单个值,或者可以基于物理表面、虚拟对象、电子设备等的特性。例如,如果电子设备更接近物理表面,则可以使用较小的阈值来确保虚拟对象在XR环境中看起来真实。作为另一示例,特定类型的虚拟对象可以与更精细的视图相关联,从而与更小的阈值相关联。

  如果在420确定第一法线和第二法线之间的差不满足阈值(即法线基本上不不同),则流程图转向425,并确定初始化位置处的第一表示和第二表示之间的距离。所述另一种方式是,对于要显示虚拟对象的物理表面上的给定点或区域,确定第一表示中的对应点或区域与第二表示中的相应点或区域之间的距离。

  在430,确定计算的距离是否满足预定阈值。在一个或多个实施例中,阈值可以是单个值,或者可以基于物理表面、虚拟对象、电子设备等的特性。例如,如果电子设备更接近物理表面,则可以使用较小的阈值来确保虚拟对象在XR中看起来真实

  在一个或多个步骤中,如果在430确定距离不满足阈值(即距离足够小),则流程图转向435,其中电子设备100根据第一表示呈现虚拟对象。换句话说,如果第一表示和第二表示之间的平面法线的差小,并且两个表示之间的距离小,则可以使用诸如平面表示的粒度较小的表示来渲染虚拟对象。

  根据一个或多个实施例,虚拟化模块134可以基于第一几何表示来确定如何呈现虚拟对象,使得虚拟对象从电子设备上的显示器的视图看来似乎坐在物理表面上。所述另一种方式是,虚拟对象被渲染为使得其位于物理对象的第一表示之上,使得其通过显示器看起来位于物理对象之上。

  如果在420确定第一法线和第二法线之间的差满足阈值,或者如果在430确定第一表示和第二表示之间的距离满足阈值,则流程图转向440。在440,虚拟化模块134确定设备和桌面面之间的第一交点。在一个或多个实施例中,根据从电子设备到物理表面上的目标的视图向量,第一交点确定为第一几何表示和第二几何表示之一。

  在445,其中虚拟化模块134根据第一交点渲染虚拟对象。即,如果第一交点与第一几何表示发生,则虚拟化模块134根据第一几何表示呈现虚拟对象。相反,如果第一交点与第二几何表示发生,则虚拟化模块134根据第二几何表达呈现虚拟对象。换言之,虚拟化模块134利用第二、更细粒度的几何表示来确定如何渲染虚拟对象,使得虚拟对象看起来通过显示器位于物理对象之上。

  名为“Xr preferred movement along planes”的苹果专利申请最初在2022年5月提交,并在日前由美国专利商标局公布。

+1

来源:映维网

推荐文章