具有自动表面选择放置和内容取向放置的增强现实观看器

文档序号:863564 发布日期:2021-03-16 浏览:1次 >En<

阅读说明:本技术 具有自动表面选择放置和内容取向放置的增强现实观看器 (Augmented reality viewer with automatic surface selection placement and content orientation placement ) 是由 V·恩格-索-兴 于 2019-06-10 设计创作,主要内容包括:描述了一种增强现实观看器。用户取向确定模块确定用户取向。内容矢量计算器计算相对于内容的近边缘和远边缘的内容取向矢量;确定用户取向矢量与内容取向矢量的点积;以及基于点积的大小来定位内容。表面区域矢量计算器针对多个表面区域中的每一个来计算表面区域取向矢量。表面选择模块确定用户取向矢量与每个表面区域取向矢量的点积,并基于点积的相对大小来选择优选表面。(An augmented reality viewer is described. A user orientation determination module determines a user orientation. A content vector calculator calculates a content orientation vector with respect to a near edge and a far edge of the content; determining a dot product of the user orientation vector and the content orientation vector; and locating content based on the size of the dot product. A surface region vector calculator calculates a surface region orientation vector for each of the plurality of surface regions. The surface selection module determines a dot product of the user orientation vector and each surface region orientation vector and selects a preferred surface based on a relative size of the dot product.)

具有自动表面选择放置和内容取向放置的增强现实观看器

相关申请的交叉引用

本申请要求于2018年6月8日提交的ET.S.临时专利申请No.62/682,788的优先权,其全部内容通过引用整体合并于此。

技术领域

本发明涉及增强现实观看器以及增强现实观看方法。

背景技术

现代计算和显示技术已经促进了“增强现实”观看器的发展。增强现实观看器是为用户呈现两幅图像的可穿戴装置,一幅图像用于左眼,一幅图像用于右眼。用于每只眼睛的图像中的对象被使用略有不同的视点渲染,从而允许大脑将这些对象处理为三维对象。当图像随着观看者移动而不断改变视点时,可以模拟围绕合成三维内容的移动。

增强现实观看器通常包括允许将数字或虚拟图像信息呈现为对用户周围的实际世界的可视化的增强的技术。在一个实施方式中,虚拟图像信息被呈现在相对于增强现实观看器的静态位置中,使得如果用户移动他们的头部以及增强现实观看器随着其头部移动,则向用户呈现有保持在他们前面的静止位置的图像,而真实世界对象在他们视线中偏移。这使用户看起来虚拟图像信息不是相对于真实世界对象固定的,而是固定在观看器的视角。在其他实施方式中,存在当用户移动其头部时将虚拟图像信息保持在相对于真实世界对象固定的位置的技术。在后一种场景下,可以向用户提供对虚拟图像信息相对于真实世界对象的初始放置的某些控制。

发明内容

本发明提供了一种增强现实观看器,其包括:显示器,其允许用户看到真实世界对象;数据通道,其用于保持内容;用户取向确定模块,其用于确定用户相对于第一显示区域的第一用户取向,并用于确定所述用户相对于所述第一显示区域的第二用户取向;投射器,其被连接到所述数据通道,以在所述用户观看所述真实世界对象的同时在所述第一显示区域的边界(confine)内通过所述显示器向所述用户显示所述内容;以及内容取向选择模块,其被连接到表面提取模块和所述用户取向模块,以相对于所述第一显示区域以第一内容取向来显示所述内容,以使得当所述用户处于所述第一用户取向时所述内容的近边缘靠近所述用户,并且相对于所述第一显示区域以第二内容取向来显示所述内容,以使得当所述用户处于所述第二用户取向时所述近边缘被旋转得更靠近所述用户,并且所述内容相对于所述第一显示区域从所述第一内容取向旋转到所述第二内容取向。

本发明进一步提供了一种增强现实观看方法,包括:由所述处理器确定用户相对于所述第一显示区域的第一用户取向;当所述用户处于所述第一取向时,由所述处理器确定相对于所述显示器的第一内容取向;在所述用户处于所述第一用户取向时通过显示器观看真实世界对象的同时,由所述处理器在所述第一显示区域的边界内通过所述显示器以所述第一内容取向来向所述用户显示内容;由所述处理器确定所述用户相对于所述第一显示区域的第二用户取向;当所述用户处于所述第二位置时,由所述处理器确定相对于所述显示器的第二内容取向;以及当所述用户通过显示器从所述第二位置观看真实世界对象的同时,由所述处理器在所述显示区域的边界内通过所述显示器以所述第二内容取向来向所述用户显示内容,其中,所述内容相对于所述第一显示区域从所述第一内容取向被旋转到所述第二内容取向。

本发明还提供一种增强现实观看器,其包括:显示器,其允许用户观看真实世界对象;数据通道,其用于保持内容;表面区域提取模块,其用于确定第一表面区域和第二表面区域;用户取向确定模块,其用于确定用户相对于所述第一表面区域和所述第二表面区域的第一取向;表面区域选择模块,其基于相应的表面区域的法线被定向成与所述用户的所述第一用户取向更相反,在所述第一表面区域与所述第二表面区域之间选择优选表面区域;以及投射器,其在所述用户观看所述真实世界对象的同时在所述优选表面区域的边界内通过所述显示器向所述用户显示所述内容。

本发明进一步提供了一种增强现实观看方法,包括:由处理器确定第一表面区域和第二表面区域;由所述处理器确定用户相对于所述第一表面区域和所述第二表面区域的第一取向;由所述处理器基于相应的表面区域的法线被定向成更朝向所述用户的所述第一位置,在所述第一表面区域与所述第二表面区域之间选择优选表面区域;以及在所述用户从所述第一位置通过显示器观看真实世界对象的同时,由所述处理器在所述优选表面区域的边界内通过所述显示器向所述用户显示内容。

本发明还提供了一种增强现实观看器,包括:环境计算单元,其用于确定指示用户的取向的第一矢量;矢量计算器,其用于计算第二矢量;选择模块,其用于计算所述第一矢量与所述第二矢量的点积;数据通道,其用于保持内容;内容渲染模块,其用于基于所述点积来确定所述内容的放置;显示器,其允许所述用户看到真实世界对象;以及投射器,其在所述用户通过所述显示器观看所述真实世界对象的同时通过所述显示器向所述用户显示所述内容,所述内容基于由所述内容渲染模块确定的所述放置而被显示。

本发明进一步提供了一种增强现实观看方法,包括:由处理器确定指示用户的取向的第一矢量;由所述处理器计算第二矢量;由所述处理器计算所述第一矢量与所述第二矢量的点积;由所述处理器基于所述点积来确定内容的放置;以及在所述用户通过显示器观看真实世界对象的同时,由所述处理器通过所述显示器向所述用户显示所述内容,所述内容基于由所述内容渲染模块确定的所述放置而被显示。

附图说明

参考附图通过示例进一步描述本发明,其中:

图1A是增强现实观看器的框图,该增强现实观看器被用户用来观看通过来自计算机的内容而被增强的真实世界对象;

图1B是增强现实观看器的透视图;

图2是示出了在三维环境中的在观看二维内容时的佩戴增强现实观看器的用户的透视图;

图3是示出了用增强现实观看器创建的三维数据图的透视图;

图4是示出了确定用户取向矢量、提取表面区域以及计算表面区域取向矢量的透视图;

图5是类似于图4的示出了在表面区域中的一个上的内容渲染的放置的视图;

图6是类似于图5的示出了用户取向矢量的变化的视图;

图7是类似于图6的示出了由于用户取向矢量的变化而导致的内容渲染的放置的视图;

图8是类似于图7的示出了由于用户的移动而导致的用户取向矢量的变化的视图;

图9是类似于图8的示出了由于用户取向矢量的变化而导致的内容渲染的旋转的视图;

图10是类似于图9的示出了由于用户的移动而导致的用户取向矢量的变化的视图;

图11是类似于图10的示出了由于用户取向矢量的变化而导致的内容渲染的旋转的视图;

图12是类似于图11的示出了由于用户的移动而导致的用户取向矢量的变化的视图;

图13是类似于图12的示出了由于用户取向矢量的变化而导致的内容渲染的旋转的视图;

图14是类似于图13的示出了由于用户向上看而导致的用户取向矢量的变化的视图;

图15是类似于图14的示出了由于用户取向矢量的变化而导致的在另一个表面区域上的内容渲染的放置的视图;

图16是示出了执行前述附图的方法的算法的功能的流程图;

图17是示出了在三维环境中的在观看三维内容时佩戴增强现实观看器的用户的透视图;

图18是图17的俯视图;

图19是类似于图18的视图,其中,用户已围绕显示表面沿顺时针方向旋转;

图20是类似于图19的视图,其中,内容已沿顺时针方向旋转;

图21是示出了用户在观看竖直表面上的内容时的透视图;

图22是类似于图21的视图,其中,用户已沿逆时针方向旋转;

图23是类似于图2的视图,其中,内容已沿逆时针方向旋转;以及

图24是根据本发明的一个实施例的可以在本发明的系统中找到应用的计算机形式的机器的框图。

具体实施方式

术语“表面”和“表面区域”在本文中用于描述适合用作显示区域的二维区域。当使用其他显示区域时,例如作为三维表面区域的显示区域或表示三维体积内的切片的显示区域,本发明的各方面可以找到应用。

附图中的图1A示出了增强现实观看器12,用户使用该增强现实观看器12观看真实世界场景的直接视图,该真实世界场景包括真实世界表面和真实世界对象14,其被存储在计算机或计算机网络上、由计算机或计算机网络接收或以其他方式生成的类型的内容16增强。

增强现实观看器12包括显示器18、数据通道20、内容渲染模块22、投射器24、深度传感器28、诸如加速度计30的位置传感器、相机32、环境计算单元34、以及内容放置和内容取向单元36。

数据通道20可以连接到保持内容16的存储装置,或者可以连接到实时提供内容16的服务。内容16可以例如是:静态图像,诸如照片;在一段时间内保持静态并且可以由用户操纵的图像,诸如网页;在计算机显示器上显示的文本文档或其他数据;或者运动图像,诸如视频或动画。内容16可以是二维、三维、静态、动态、文本、图像、视频等。内容16可以包括游戏、书籍、电影、视频剪辑、广告、化身、图画、应用、网页、装饰、体育游戏、重播、3D模型或如本领域技术人员将理解的任何其他类型的内容。

内容渲染模块22连接到数据通道20以从数据通道20接收内容16。内容渲染模块22将内容16转换为适合于三维观看的形式。存在各种技术来根据用户的取向观看三维空间中的二维平面、或者由用户观看三维中的三维体积。

投射器24连接到内容渲染模块22。投射器24将由内容渲染模块22生成的数据转换为光,并将光传递到显示器18。光从显示器18行进到用户的眼睛26。存在各种技术来为用户提供三维体验。每只眼睛被提供有不同的图像,并且用户将图像中的对象感知为在三维中构造的。还存在用于用户聚焦位于深度场处的对象的技术,该深度场不必位于显示器18的平面内并且通常位于显示器18的后面一定距离处。可以使虚拟内容看起来位于某个深度处的一种方式是通过以模仿来自真实物理对象的光如何到达眼睛的方式使光线发散并形成弯曲的波前。然后,通过在称为调节的过程中改变解剖晶状体的形状,眼睛使发散的光束聚焦到视网膜上。不同的发散角代表不同的深度,并且是被使用波导上出射光瞳扩展器上的衍射光栅而创建的。

显示器18是透明显示器。显示器18允许用户通过显示器18看到真实世界对象14。因此,用户感知到增强现实视图40,其中,用户在三维中看到的真实世界对象14被三维图像增强,该三维图像经由显示器18从投射器24提供给用户。

深度传感器28和相机32被安装在捕获真实世界对象14的位置。深度传感器28通常检测红外范围内的电磁波,以及相机32检测可见光谱内的电磁波。如图1B更清楚地示出的,可以在面向世界的位置上将多个相机32安装在增强现实观看器12的框架13上。在特定实施例中,四个相机32被安装在框架13上,其中,两个位于向前面向世界的位置,而两个位于左侧或右侧或倾斜面向世界的位置。多个相机32的视场可以重叠。深度传感器28和相机32相对于增强现实观看器12的框架13被安装在静态位置。由深度传感器28和相机32捕获的图像的中心点始终位于相对于增强现实观看器12的相同的向前方向上。

加速度计30被以固定位置安装在增强现实观看器12的框架上。加速度计30检测重力的方向。加速度计30可用于确定增强现实观看器相对于地球重力场的取向。深度传感器28与依赖于视觉同时定位和映射(“SLAM”)以及惯性测量单元(“IMU”)输入的头部姿势算法组合,加速度计30允许增强现实观看器12确定真实世界对象14相对于重力方向和相对于增强现实观看器12的位置。

相机32捕获真实世界对象14的图像,并且连续地对该图像的进一步处理提供了指示增强现实观看器12相对于真实世界对象14的运动的数据。因为深度传感器28、世界相机32和加速度计30连续地确定真实世界对象14相对于重力的位置,因此还可以计算增强现实观看器12相对于重力和映射的真实环境的运动。

在图1A中,环境计算单元34包括环境映射(mapping)模块44、表面提取模块46和观看者取向确定模块48。环境映射模块44可以接收来自一个或多个传感器的输入。一个或多个传感器可以包括例如深度传感器28、一个或多个世界相机32和加速度计30,以确定真实世界表面和对象14的位置。表面提取模块46可以从环境映射模块44接收数据并确定环境中的平坦表面。观看者取向确定模块48连接到深度传感器28、相机32和加速度计30并从深度传感器28、相机32和加速度计30接收输入,以确定用户相对于真实世界对象14和由该表面提取模块46识别的表面的用户取向。

内容放置和内容取向单元36包括表面矢量计算器50、表面选择模块52、内容尺寸确定模块54、内容矢量计算器56和内容取向选择模块58。表面矢量计算器50、表面选择模块52和内容尺寸确定模块54可以顺序地彼此连接。表面选择模块52连接到观看者取向确定模块48并向观看者取向确定模块48提供输入。内容矢量计算器56连接到数据通道20,以便能够接收内容16。内容取向选择模块58连接到内容矢量计算器56和观看者取向确定模块48并接收来自内容矢量计算器56和观看者取向确定模块48的输入。内容尺寸确定模块54连接到内容取向选择模块58并将输入提供给内容取向选择模块58。内容渲染模块22连接到内容尺寸确定模块54并接收来自内容尺寸确定模块54的输入。

图2示出了在三维环境中的佩戴增强现实观看器12的用户60。

矢量62表示由增强现实观看器12上的一个或多个传感器检测到的重力方向。矢量64表示从用户60的角度来看向右的方向。用户取向矢量66表示用户取向,在本示例中,是用户60的视场中间的向前方向。用户取向矢量66也指向由图1中的深度传感器28和相机32捕获的图像的中心点的方向。图1B示出了另一坐标系63,其包括彼此正交的向右的矢量64、用户取向矢量66和装置竖直矢量67。

通过示例的方式,三维环境包括具有水平表面70的桌子68、表面72和74、对象76,这些对象提供了可能使表面72和74不适合放置内容的障碍物。例如,破坏连续表面72和74的对象76可以包括相框、镜子、墙壁上的裂缝、粗糙的纹理、不同的着色区域、表面上的孔、表面的突起或相对于平坦表面72、74的任何其他不均匀性。相反,表面78和80可能更适合内容的放置,因为它们的尺寸相对较大以及与用户60的接近度。根据所显示内容的类型,寻找具有矩形尺寸的表面也可能是有利的,尽管也可以使用其他形状,诸如正方形、三角形、圆形、椭圆形或多边形。

图3示出了图1中的深度传感器28、加速度计30和环境映射模块44的功能。深度传感器28捕获了包括三维环境中的对象和表面的所有特征的深度。环境映射模块44直接或间接地接收来自增强现实观看器12上的一个或多个传感器的数据。例如,深度传感器28和加速度计30可以向环境映射模块44提供输入,以将三维环境的深度映射到三维中。

图3还示出了相机32和观看者取向确定模块48的功能。相机32捕获对象76和表面78的图像。观看者取向确定模块48接收来自相机32的图像并处理图像,以确定用户60佩戴的增强现实观看器12的取向由用户取向矢量66表示。

可以采用其他映射三维环境的方法,例如,使用位于房间内固定位置的一个或多个相机。然而,深度传感器28和环境映射模块44在增强现实观看器12内的集成提供了更加移动的应用。

图4示出了图1中的表面提取模块46的功能。表面提取模块46处理在图3中创建的三维图,以确定是否存在适合于内容(在本示例中为二维内容)的放置和观看的任何表面。表面提取模块46确定水平表面区域82以及两个竖直表面区域84和86。表面区域82、84和86不是真实表面,而是电子地表示在三维环境中定向的二维平坦表面。作为数据表示的表面区域82、84和86分别对应于图2中的形成图1中的真实世界对象14的一部分的真实表面70、78和80。

图4示出了立方体88和立方体88的阴影90。作者使用这些元素来辅助观看者跟踪用户取向矢量66的变化以及用户60和增强现实观看器12在图2中通过三维空间的移动。

图4还示出了图1中的表面矢量计算器50的功能。表面矢量计算器50针对映射的三维环境的每个提取表面来计算表面区域取向矢量。例如,表面矢量计算器50计算垂直于表面区域82的平面的表面区域取向矢量92。类似地,表面矢量计算器50计算垂直于表面区域84的表面区域取向矢量94以及垂直于表面区域86的表面区域取向矢量94。

通过表面选择模块52来选择在其上显示虚拟内容的表面,该表面选择模块52计算表面与用户之间的关系。图1A中的表面选择模块52计算用户取向矢量66与表面区域取向矢量92的点积。单位矢量a与b的点积由以下等式表示:

a·b=│a││b│cosθ [1]

其中,│a│=1

│b│=1

θ是单位矢量a和b之间的角度。

用户取向矢量66和表面区域取向矢量92彼此正交,这意味着它们的点积为零。

表面选择模块52还计算用户取向矢量66与表面区域取向矢量94的点积。因为用户取向矢量66和表面区域取向矢量94正交,所以它们的点积为零。

表面选择模块52还计算用户取向矢量66与表面区域取向矢量96的点积。因为用户取向矢量66与表面区域取向矢量96相对于彼此成180°,所以它们的点积是-1。因为包括表面区域取向矢量96的点积是三个点积中最负的,所以表面选择模块52确定表面区域86是表面区域82、84和86之间用于显示内容的优选表面区域。点积越负,内容就越有可能将被定向为直接面向观看者。因为表面区域86是竖直表面区域,所以内容放置和内容取向单元36不调用图1中的内容取向选择模块58。点积是可以由系统优先考虑或由虚拟内容对选择最佳表面的需求优先考虑的许多表面特性之一。例如,如果具有-1.0的点积的表面很小并且远离用户,则其可能不优先于具有-0.8的点积但又较大且靠近用户的表面。系统可以在放置内容时选择具有良好对比度特性的表面,因此用户会更容易看到。接下来,内容尺寸确定模块54确定要在表面区域86上显示的内容的适当尺寸。内容具有最佳的长宽比,例如在近边缘上为16而在侧边缘上为9的长宽比。内容尺寸确定模块54使用近边缘与侧边缘的比率来确定内容的尺寸和形状,从而在所有视角下保持该长宽比,以不使内容失真。内容尺寸确定模块54以将适合于表面区域86的最佳长宽比来计算内容的最佳高度和宽度。在给定的示例中,表面区域86的左边缘和右边缘之间的距离确定内容的尺寸。

图5示出了图1中的内容渲染模块22和投射器24的功能。内容渲染模块22基于内容尺寸确定模块54和表面选择模块52的尺寸确定,以其计算的取向将内容16提供给投射器24。观看者将内容16视为渲染98,该渲染放置在表面区域86上并与该表面区域86共平面的三维空间中。内容16不被渲染在表面区域82和84上。所有其他表面特性相同,由于由用户取向矢量66表示的用户取向,因此当与表面区域82和84相比时,表面区域86为渲染98提供了最佳区域。当用户取向矢量有很小程度的变化时,渲染98在表面区域86上保持静态。如果图1A中的观看者取向确定模块48感测到用户取向矢量改变了预定阈值度以上,例如改变了5度,则系统如上所述自动继续,以重新计算所有点积,并且如果需要,则重新定位被渲染以显示给用户的内容并调整其尺寸。替代地,该系统可以是例行地(例如每15秒)如上所述重新计算所有点积和放置内容。

替代地,即使在用户改变了他们的取向时,用户也可以选择区域86以用于内容。

在图6中,用户60改变其头部的倾斜。结果,用户取向矢量66沿向下方向100旋转。新的用户取向由新的用户取向矢量102表示。图1A和1B中的相机32连续地捕获真实世界对象14的图像。诸如深度传感器28和加速度计30的附加传感器也可以连续捕获并提供更新的信息。观看者取向确定模块48处理图像以及由增强现实观看器12上的传感器捕获的其他数据,以确定相机32的视场内的真实世界对象14的相对运动。然后,观看者取向确定模块48处理这种运动以确定用户取向矢量从图5中的用户取向矢量66到图6中用户取向矢量102的变化。系统通常选择具有最佳点积的表面,尽管可能会有点积允许的一些公差/范围,使得抖动和处理被减少。通过示例的方式,当存在另一个更优的点积时且如果更优的点积比当前显示的内容所在的表面的点积好至少5%,则系统可以移动内容。

假设用户在改变其取向之后没有选择表面86来用于内容。表面选择模块52再次计算三个点积,即,用户取向矢量102与表面区域取向矢量92之间的点积、用户取向矢量102与表面区域取向矢量94之间的点积以及用户取向矢量102与表面区域取向矢量96之间的点积。然后,表面选择模块52确定三个点积中的哪一个是最负的。在本示例中,用户取向矢量102和表面区域取向矢量92之间的点积是最负的。表面选择模块52确定了表面区域82是优选表面,因为其相关联的点积比针对表面区域84和86的点积更负。系统还可以考虑如上所述的其他因素。

图1A中的内容放置和内容取向单元36调用内容矢量计算器56和内容取向选择模块58。在内容取向选择模块58的操作之后,再次调用内容尺寸确定模块54。

借助于图7更好地示出了内容矢量计算器56、内容取向选择模块58和内容尺寸确定模块54的功能。

图7示出了内容渲染模块22和投射器24创建位于表面区域82内并与表面区域82共面的内容16的渲染104。表面区域86上的渲染不再被显示给用户60。

渲染104具有远边缘106、近边缘108、右边缘110和左边缘112。图1A中的内容矢量计算器56可以计算内容取向矢量114。内容取向矢量114从近边缘108向远边缘106延伸,并且与近边缘108和远边缘106都正交。

内容矢量计算器所进行的计算取决于在数据通道上提供的内容。一些内容可能已经具有从内容的近边缘延伸到远边缘的内容取向矢量,在这种情况下,内容矢量计算器56简单地识别并隔离内容代码中的内容取向矢量。在其他例子中,内容取向矢量可以与内容相关联,并且内容矢量计算器56可能必须使内容取向矢量重新定向以从内容的近边缘延伸到远边缘。在其他例子中,没有内容矢量计算器56可以基于诸如图像分析、工具在内容中的放置等其他数据来生成内容取向矢量。

内容取向选择模块58计算用户取向矢量102与内容取向矢量114之间的点积。针对四个场景计算点积,即,当内容取向矢量114沿图7所示的方向定向时、当内容取向矢量114向右90°定向时、当内容取向矢量114180°定向时、以及当内容取向矢量114向左90°定向时。然后,内容取向选择模块58选择四个点积中最低的点积,并放置渲染104,以使内容取向矢量114在具有最低相关联点积的方向上对准。然后,近边缘108被定位为比远边缘106更靠近用户60,并且右边缘112和左边缘110被定位到距如由用户方向矢量102所描绘的用户60的取向的右侧和左侧。因此,内容16以可由用户60容易看到的方式被定向。例如,显示了人的头部和躯干的照片,其中,头部距用户60最远并且躯干最靠近用户60,以及显示了文本文档,其中,第一行距用户60最远,最后几行距用户60最近。

内容尺寸确定模块54已经确定了渲染104的适当尺寸,其中,右边缘110和左边缘112定义了表面区域82内渲染104的宽度,并且远边缘106和近边缘104之间的距离由期望的长宽比确定。

在图8中,用户60已围绕表面区域82逆时针在方向116移动。用户60还已将其身体逆时针旋转90°。用户60现在已经建立了由新用户取向矢量118表示的新取向。用户的头部仍然朝着表面区域82向下倾斜,并且表面区域84和86现在分别位于用户60的后面和右边。

表面选择模块52再次计算与表面区域取向矢量92、94和96中的每一个相关联的点积。用户取向矢量118与表面区域取向矢量94的点积现在变为正。用户取向矢量118与表面区域取向矢量96之间的点积大约为零。用户取向矢量118与表面区域取向矢量92之间的点积是最负的。图1A中的表面选择模块52选择与表面区域取向矢量92相关联的表面区域82作为用于定位内容16的渲染的优选表面。

图1A中的内容取向选择模块58再次计算四个点积,每个点积与内容取向矢量的相应方向相关联,即,用户取向矢量118与在图8中所示的方向上的内容取向矢量114之间的点积,以及另外的,用户取向矢量118与相对于图8中的内容取向矢量114分别向右90°、180°和向左90°的内容取向矢量之间的点积。内容取向选择模块58确定与相对于图7所示的内容取向矢量114个方向向左90°的内容取向矢量114相关联的点积是四个点积中最正的。

如果内容取向矢量114向左旋转90°,则内容尺寸确定模块54然后确定用于渲染的适当尺寸。

图9示出了内容渲染模块22如何基于由用户取向矢量118所表示的用户取向来创建渲染104。将渲染104逆时针旋转90°,以使得内容取向矢量114与图8相比向左指向90°。近边缘108现在被定位为最靠近用户60。由于表面区域82的可用比例,图1A中的内容尺寸确定模块54使渲染104小于图8。渲染可以根据通过内容创建者或用户喜好选择的在位置之间捕捉(snap)、平滑旋转、淡入/淡出。

在图10中,用户60在方向120上围绕表面区域82进一步移动,并建立了如由新的用户取向矢量122表示的新的用户取向。用户取向矢量122与表面区域取向矢量96之间的点积现在为正。用户取向矢量122与表面区域取向矢量94之间的点积大约为零。用户取向矢量122与表面区域取向矢量92之间的点积是最负的。因此,表面区域82是用于显示内容的优选表面。

如图10所示,用户取向矢量122与内容取向矢量114之间的点积大约为零。如果内容取向矢量114顺时针旋转90°、旋转180°和逆时针旋转90°,则各个点积的大小不同,其中,向左90°的内容取向矢量114的点积为最正。因此,渲染104应该逆时针旋转90°并基于表面区域82的比例来重新调整尺寸。图11示出渲染104如何在保留在表面区域上的同时,由于用户取向矢量122的变化而旋转并重新调整尺寸82。

在图12中,用户60已围绕表面区域82在方向124上移动,并建立了如由新的用户取向矢量126表示的新的用户取向。用户取向矢量126与表面区域取向矢量94的点积现在为负。然而,用户取向矢量126与表面区域取向矢量92之间的点积更负。因此,表面区域82是用于创建内容16的渲染的优选表面区域。

如图12所示,用户取向矢量126与内容取向矢量114之间的点积近似为零。如果内容取向矢量114向左旋转90°,则用户取向矢量126与内容取向矢量114之间的点积为正。因此,渲染104应该在保留在表面区域82上的同时逆时针旋转。图13示出了基于新的用户取向矢量126修改的渲染104的放置、取向和尺寸。

图14示出了当用户60沿向上方向134旋转其头部时建立的新用户取向矢量132。用户取向矢量132与表面区域取向矢量92之间的点积近似为零。用户取向矢量132与表面区域取向矢量96之间的点积也近似为零。用户取向矢量132与表面区域取向矢量94之间的点积为-1或接近-1,因此是三个基于表面的点积中最负的。现在,表面区域84是用于放置内容16的渲染的优选表面区域。图15示出了在表面区域84上向用户60显示的渲染136。表面区域82上的渲染不再显示给用户60。在诸如表面区域84和表面区域86的竖直表面区域上,近边缘108总是在底部。

图16示出了用于执行如上所述的方法的算法。在150处,如参考图3所描述的,映射三维空间。在152A、B和C处,如参照图4所描述的,提取表面区域。在154A、B和C处,如参考图4所描述的,计算表面矢量。在156处,如参考图1至图4所描述的,确定用户取向矢量。在158A、B和C处,如参考图4所描述的,计算用户取向矢量与每个相应的表面区域取向矢量之间的相应的点积。在160处,如参考图4所描述的,确定优选表面区域。

在162处,确定优选表面区域是否是竖直的。如果优选表面区域不是竖直的,则在164处,如参照图7所描述的,确定内容取向矢量相对于内容的远边缘、近边缘、右边缘和左边缘的方向。在164之后,在166A、B、C和D处,如参考图7所描述的,计算0°、向右90°、180°和向左90°处的内容矢量。在168A、B、C和D处,计算用户取向矢量与分别在166A、B、C和D处计算的内容取向矢量之间的点积。在170处,如参考图7所描述的,选择内容取向。

在172处,如参考图5和图7所描述,确定内容的尺寸。在174处,如参考图5和图7所描述的,显示内容。

在174之后,如参考图6、8、9、10和12所描述的,可以在156处确定新的用户取向矢量。然后可以重复该过程而无需再次在154A、B和C处计算表面区域取向矢量。

参考图17和18,分别以透视图和俯视图示出了实施例,其中,在环境184内的映射表面182上渲染了三维虚拟内容180,以供用户60观看。在这样的实施例中,上述原理用于定位三维虚拟内容180,用户60可以尽可能容易且自然地观看该三维虚拟内容。

用户取向矢量66与装置12的前向矢量相同,并且因此被称为“装置前向矢量66”。确定放置三维虚拟内容180的表面可以至少部分地依赖于装置前向矢量66与环境184中的映射表面的表面法线矢量186之间的点积关系。为了三维虚拟内容180的最佳观看,取决于内容,许多点积关系中的一个可以被认为是最佳的。例如,如果要从侧面观看内容,则理想的是,装置前向矢量66与表面法线矢量186之间的点积关系接近零,这表明用户几乎与映射表面182正交。在这样的实施例中,放置在映射表面182上的三维虚拟内容180将由用户从侧面看到。替代地,如本文中相对于其他实施例所描述的,如果打算从上方观看三维虚拟内容180,则更希望在-1或接近-1的点积关系。理想点积关系可以是由三维虚拟内容180的创建者设置的属性、可以由用户根据偏好选择、或者可以基于要显示的内容类型由增强现实观看系统确定。

一旦通过系统或者通过用户的放置确定了放置表面,就相对于用户确定在映射表面182上的三维虚拟内容180的取向。在所示出的示例中,三维虚拟内容180被提供有内容取向矢量188,该内容取向矢量188可以用于将三维虚拟内容180与用户装置的参考矢量对准。三维虚拟内容180是角色的头部,其中,角色的近边缘是其嘴所在的位置。通常不渲染角色的远边缘来供用户60观看,因为该远边缘位于角色的用户看不到的一侧。内容取向矢量188与角色的近边缘平行地对准。内容取向矢量188可用于将三维虚拟内容180与增强现实观看器12对准,以使得内容取向矢量188与装置右向矢量64之间的点积等于或接近1,这表明两个矢量指向基本相同的方向。

参照图19和20,示出了基于用户的移动的三维内容重新取向的示例。在图19中,用户60已相对于图18围绕桌子顺时针移动一定距离和角度。结果,内容取向矢量188与装置右向矢量64之间的点积关系小于1。在一些实施例中,这种位置变化可能不需要对三维虚拟内容180进行重新取向。例如,内容创建者、用户或增强现实观看器12内的软件可以指示仅当内容取向矢量188与装置参考矢量之间的点积小于预定阈值时才需要三维虚拟内容180的重新取向。可以根据要显示的内容类型来设置大的或小的阈值公差。

如果用户60的位置从图18的位置变化到图19的位置触发了三维虚拟内容180的重新取向,则取向模块可以重新渲染三维虚拟内容180,使得如图20所示,内容取向矢量188与装置右向矢量64对准,以使两个矢量的点积等于或接近1。如上所讨论的,三维虚拟内容180的重新取向还可以允许调整内容的尺寸;然而,内容也可以保持相同的尺寸,使得当用户在环境中移动时,内容看起来仅围绕法向于映射表面182的轴重新取向。

参照图21、22和23,示出了在竖直表面198上虚拟内容196重新取向的示例。在图21中,示出了用户60观看位于环境中被竖直地定向的竖直表面198上的虚拟内容196。虚拟内容196可以具有内容右向取向矢量200和内容垂直取向矢量202中的至少一个,内容右向取向矢量200和内容垂直取向矢量202可以用于分别测量相对于装置右向矢量64和装置垂直矢量67的对准。在图21中,内容取向矢量(200、202)中的一个与对应的装置取向矢量(64、67)之间的对准导致点积值近似为1。如上所讨论的,点积值接近于1指示所比较的两个矢量之间更相似的对准。

如果用户60要改变位置,例如通过如图22所示躺在沙发上,在不重新定向虚拟内容196的情况下,内容取向矢量(200、202)与对应的装置取向矢量(64、67)之间的对准可能接近零,这表明用户60与虚拟内容196之间的比图21中所示的对准更差的最佳对准。如果为零的点积关系小于对于虚拟内容与用户相对取向所需的点积关系,则虚拟内容196可以以新的取向被重新渲染,如图23所示,使得点积关系在预定阈值内。在一些实施例中,以新的取向重新渲染虚拟内容196可以重新建立内容取向矢量(200、202)与对应的装置取向矢量(64、67)之间的最佳点积关系。

图24示出了计算机系统900的示例性形式的机器的示意表示,在该计算机系统中,可以执行用于使该机器执行本文所讨论的方法中的任何一个或多个的一组指令。在替代实施例中,该机器作为独立装置操作,或者可以被连接(例如,联网)到其他机器。此外,虽然仅图示了单个机器,但是术语“机器”也应被理解为包括单独或共同执行一组(或多组)指令以执行本文讨论的任何一个或多个方法的机器的任何集合。

示例性计算机系统900包括处理器902(例如,中央处理单元(CPU)、图形处理单元(GPU)或两者);主存储器904(例如,只读存储器(ROM)、闪存、诸如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)的动态随机存取存储器(DRAM)等);以及静态存储器906(例如,闪存、静态随机存取存储器(SRAM)等),其通过总线908彼此通信。

计算机系统900还可以包括磁盘驱动器单元916和网络接口装置920。

磁盘驱动器单元916包括机器可读介质922,其上存储着体现本文所述的方法或功能中的任何一个或多个的一组或多组指令924(例如,软件)。在由计算机系统900执行期间,软件还可以全部或至少部分地驻留在主存储器904内和/或处理器902内,主存储器904和处理器902也构成机器可读介质。

该软件还可以经由网络接口装置920在网络928上发送或接收。

尽管在示例性实施例中将机器可读介质924示出为单个介质,但是术语“机器可读介质”应被认为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的缓存和服务器)。术语“机器可读介质”也应被认为包括能够存储、编码或携带一组指令以供机器执行并且使机器执行本发明的方法中的任意一个或多个的任何介质。因此,术语“机器可读介质”应被认为包括但不限于固态存储器、光学和磁性介质以及载波信号。

尽管已经描述并在附图中示出了某些示例性实施例,但是应当理解,这些实施例仅是说明性的,并且不限制本发明,并且因为本领域的普通技术人员可以进行修改,所以本发明不限于所示出和所描述的特定构造和布置。

40页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:电子装置及其控制方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类