增强现实可以通过透明显示器将计算机生成内容叠加到物理环境的感知视图。所述显示器允许来自物理环境通过并达到眼睛。但是,来自物理环境的光线具有颜色组成、空间变化对比度和/或亮度特性,并以不同程度干扰计算机生成内容。
在一个示例中,光线会限制物理环境和计算机生成内容之间的感知对比度。在另一个示例中,物理环境的颜色组成可以提供一种难以通过加法显示方法和硬件遮罩的主色调来干扰所计算机生成内容的颜色组成。
在名为“Ambient light based mixed reality object rendering”的专利申请中,微软提出了一种根据环境光来渲染混合现实对象的方法。
如图1所示,摄像头104获取可穿戴计算设备100所在的环境103的图像105,并将图像提供给可穿戴计算设备100的输入组件130。然后,可穿戴计算设备100基于接收到的图像105获取环境光信息,从而基于环境光信息渲染对象106,使得用户101可以看到具有环境光效果的对象106。
图2示出了获取环境光信息的方法200流程图。
在方框210中,获取可穿戴计算设备100所在的环境103的至少一个图像105。环境光信息至少指示环境103的多个方向上的光强度。其中,用户101、可穿戴计算设备100和对象106位于同一环境103中,所以可穿戴计算设备100所在的环境103与用户101和/或对象106所在的环境相同。
摄像头104可操作地与可穿戴计算设备100通信。在一个实施例中,摄像头104和可穿戴计算设备100分开设置。摄像头104可以设置在相对于可穿戴计算设备100的固定位置。摄像头104可以经由通信网络与可穿戴计算设备100相接,并以视频流的形式将所获取的图像传送到可穿戴计算设备100。
在另一个实施例中,摄像头104可以集成在可穿戴计算设备100,使得它可以根据佩戴可穿戴计算设备100的用户101的移动来改变其位置。通过这种方式,可以确保摄像头104捕捉到的场景与用户101的位置保持一致。结果,可以获得与环境103更好匹配的光效果。
在一个实施例中,在拍摄图像105的同时,可以预先确定摄像头104的拍摄方向,从而可以完全覆盖可穿戴计算设备100所在的环境103。可以基于指示摄像头104的视场范围的参数来确定用于覆盖环境103的多个拍摄方向,并且使得摄像头104根据所确定的拍摄方向来拍摄图像。
图3示出了摄像头300的示意图。假设具有摄像头104的可穿戴计算设备100处于位置301,则在坐标原点为位置301的球面坐标系中示出34个点,每个点对应于一个拍摄方向。
具体地,在位置310和370中的每一个位置显示一个点,其分别对应于90度和−90度;在位置320和360中的每一个中示出了分别对应于60度和−60度的四个点。
另外,在位置330、340、350中的每一个位置显示了八个点,它们分别对应于30度、0度和-30度。在一个实施例中,坐标原点301处的可穿戴计算设备100的用户101可以朝着这34个点拍摄图像,从而获取能够覆盖环境103的34个图像。
在一个实施例中,可穿戴计算设备100可以向用户101提示所确定的拍摄方向,例如显示具有预定形状、颜色、闪烁模式等的参考对象。因此,当用户101根据提示查看参考对象时,可穿戴计算设备100的摄像头104可以根据拍摄方向自动拍摄图像。以这种方式,可以根据多个拍摄方向来拍摄覆盖环境103的多个图像105。
摄像头104可以包括可以分别捕获图像的多于一个的摄像头,从而更快速地和有效地捕获环境103的图像。
在一个实施例中,环境光信息可以仅根据在框210中获取的单个图像105来确定。单个图像105可以根据所确定的拍摄方向来获取,或者可以是摄像头104在预定时间点根据当前方向获取的环境103的图像。获取单个图像105比获取多个图像105更快速、更灵活。
在从摄像头104接收到环境103的图像105之后,可佩戴计算设备100可以将图像存储到临时图像缓冲器中,以便调整图像。
返回图2,在框220中,基于摄像头104在捕捉图像105时使用的摄像头参数来调整图像105的像素值。摄像头参数可以包括摄像头104在捕捉图像105时使用的一个或多个参数,例如曝光时间、感光度、曝光、光圈大小、快门速度和/或其他参数。可以通过各种手段基于摄像头参数来调整图像105的像素值。
在方框230中,基于经调整的图像105来确定环境光信息。环境光信息至少指示在环境103下的多个方向的光强度。
在一个实施例中,可以基于调整后的图像105来生成环境103的全景图像。在图像105的数量少得多(例如仅一个图像105)的实施例中,可以直接基于图像来确定环境光信息,而不是生成全景图像。在替代实施例中,可以基于图像生成全景图像。然后,图像105或生成的全景图像可以转换为立体图,并且可以全部或部分地用作环境光信息。
这样的转换过程可以通过预定义的重新映射操作来完成。图4示出了相关过程400的示意图。以立方体贴图为例。它使用六面体立方体来表示周围的光环境,并有助于可穿戴计算设备100的图形处理单元更有效地渲染对象106。
在图4所示的示例中,假设由摄像头104捕获的图像105每个都具有可用于计算摄像头的位置的可定位信息,并且可以基于图像105生成全景图像410。全景图像410的点411可以在第一变换中变换为球体420的点421。
然后,可以在第二变换中将点421变换为立方体430的点431。稍后,点431可以在第三变换中变换为具有六条边的立方体贴图440的点441。
通过这三个变换,全景图像410上的每个点可以变换为立方体贴图440的一个点,从而可以获得与全景图像410相对应的立方体贴图440。立方体贴图440可以实现为例如图5中所示的立体图500。
在一个实施例中,可以基于所确定的环境光信息将对象106呈现给可穿戴计算设备100的用户101。例如,可穿戴计算设备100可以使用立方体贴图作为初始光照图,并对初始光照表执行下采样。例如,初始光照图中的像素可以通过预定义的分辨率降低因子迭代平均,从而生成具有不同分辨率的一组下采样光照图。
具体地,对于初始光立方体映射,可以快速生成一组完整的下采样照明映射。下采样的光映射集合由具有不同分辨率的光立方体映射组成,并且是不同分辨率下的光立方体贴图的近似表示。
然后,可穿戴计算设备100可以基于下采样的光图来确定对象106的外观,并将所述外观呈现给用户101。
在专利描述的实施例中,对象106的外观可以由多个点组成。可穿戴计算设备100可以使用下采样的光图来确定对象106的多个点的漫反射强度和镜面反射强度。然后,可以基于点的漫反射强度和镜面反射强度来确定对象106的外观。
以这种方式,可以向用户101提供对象106在当前环境下的更逼真外观。微软表示,与用于根据预定义的光条件再现对象的传统解决方案相比,根据发明描述的方法可以获得更逼真和准确的环境光信息,从而提高所再现对象的真实性。因此,可以避免传统解决方案中的一个缺点:用户无法在现实世界中感受到真实的光照条件。以这种方式,可以改善用户的交互体验。
在一个实施例中,可以使用所确定的环境光信息来进一步更新现有的环境光照信息。现有环境光信息还可以是可穿戴计算设备100在先前时间点确定的历史/原始环境光信息等。
更新环境光信息的过程可以由可穿戴计算设备100在预设时间周期性地或周期性地自动执行,和/或可以在必要时由用户101启动。在一个实施例中,当感觉到周围环境光的显著变化时,用户101可以触发摄像头104拍摄光急剧变化的区域的照片。这样,可穿戴计算设备100使用的环境光信息可以更符合当前环境的实际光照情况。这有助于提高渲染对象的真实性。
具体地,可穿戴计算设备100可以确定是否存在这样的原始环境光信息。如果是,则可以使用在框230中确定的环境光信息来更新原始环境光信息。在更新原始环境光信息的过程中,如果满足预定条件,则可以修改原始环境光的信息,或者如果不满足预定条件则根本不修改原始环境信息。
图6示出了根据实施例的用于更新环境光信息的方法600的流程图。
在方框610中,原始环境光信息被划分为N个原始部分PK。在620中,所确定的环境光信息划分为N个确定的部分QK。如果N个原始部分中的一个原始部分PK与对应的确定部分QK之间的差大于阈值差,则可以使用确定的环境光信息来修改原始环境光信息。
在方框630,判断PK和QK之间的差是否大于阈值差。阈值差可以以各种方式预先确定,例如,根据经验值、先前计算的差值等。可以根据阈值差来确定PK和QK之间是否存在显著变化。如果PK和QK之间的差超过阈值差,则可以确定原始环境光信息和当前确定的环境光信息之间存在相当大的差。这时,在框660中,使用所确定的环境光信息来修改原始环境光信息。
通过这种方式,可穿戴计算设备100的环境光信息可以动态地或实时地更新,使得可穿戴计算设备100使用的环境光照信息可以与当前环境的实际光照情况更加一致,并且可以改善渲染对象的实现性。
评论