ARCore之路-光估计之光照一致性

版权声明:David Wang原创ARCore文章,仅供学习研究之用,不得用于任何商业目的,未经授权不得转载! https://blog.csdn.net/yolon3000/article/details/83211792

  增强现实技术(AR)与虚拟现实(VR)在光照上最大的不同在于,VR世界是纯数字世界,有完整的一套数学模型,而AR则是将计算机生成的虚拟物体或关于真实物体的非几何信息叠加到真实世界的场景之上实现对真实世界的增强,这是融合了真实世界与数字世界。就在光照上来讲,VR中的光照完全由开发人员决定,光照效果是一致的,而AR中则不得不考虑真实世界的光照信息与虚拟的3D光照信息的一致性,打个比方说,如果在AR 3D应用中设置了一个模拟太阳的高亮度方向光,而用户是在晚上使用这个AR应用,如果不考虑光照一致性,那么渲染出来的虚拟物体的光照与真实世界其他物体的光照反差将会非常明显,由于人眼对光照信息的高度敏感,这种渲染可以说是完全失败的,完全没有沉浸感。由于用户与真实世界的联系并未被切断,光照的交互方式也要自然,如果真实世界的阴影向左而渲染出来的虚拟物体阴影向右,这也是让人难以接受的。

Cookie

一、3D光照

  Unity3D使用的标准着色器(Standard Shader)使用基于物理的渲染(PBR Physically Based
Rendering)或照明模型,如前节所说,这个光照模型非常复杂的,当然渲染效果更真实一些。目前,PBR着色器目前只适用于PC桌面平台,在移动平台通常不能工作或性能表现比较差。移动设备的GPU无法支持对PBR着色器所需的附加指令。因此,我们将仅限于编写我们自己的自定义照明着色器。
  我们分别使用在ARCore/DiffuseWithLightEstimation、Mobile Diffuse、Standard(Roughness setup)在相同光照情况下对物体进行渲染,效果如下图所示:

Cookie

  上图中左边使用的是Standard(Roughness setup)、中间使用的是ARCore/DiffuseWithLightEstimation、右边使用的是Mobile Diffuse,从渲染效果来看,Standard(Roughness setup)看起来最自然,ARCore/DiffuseWithLightEstimation、Mobile Diffuse渲染出来的效果有点理想化而且明显要明亮许多。如果使用Mobile Diffuse渲染物体,然后生成AR应用将会看到,这个渲染发白且一成不变,原因在于Mobile Diffuse着色器的光源(强度和方向)保持着不变,这意味着我们的模型总是得到相同的光(方向和强度)。而实现在真实世界中,当用户移动时,光的方向和强度会急剧的发生改变(如用户从户外进行到户内,这时光照会发生剧烈的变化)。当我们使用手机等设备经历这个过程,手机设备的相机会尝试并对此进行补偿,但仍然可以看到光照的明显变化。这就会导致AR应用中非常大的问题,那就是光照的不致性。

二、光照一致性

  光照一致性,是指让虚拟物体具有与真实场景相同的光照效果。光照一致性的目标是使虚拟物体的光照情况与真实场景中的光照情况相一致,虚拟物体与真实物体有着一致的明暗、阴影效果,以提高对真实场景的增强效果,解决光照一致性问题的关键是如何获取真实场景的光照信息,准确的光照信息能够实现更加逼真的增强现实效果。光照一致性包含的技术性问题很多,完全的解决方案需要场景精确的几何模型和光照模型,以及场景中物体的光学属性描述。这样才可能绘制出真实场景与虚拟物体的光照交互,包括真实场景中的光源使虚拟物体产生的明暗、阴影和反射以及虚拟物体对真实物体的明暗、阴影和反射的影响。光照一致性问题是增强现实技术中的一个难点,光照模型的研究是光照一致性问题的重要部分,主要研究的是如何根据光学物理的有关定律,采用计算机来模拟自然界中光照明的物理过程。

Cookie

  Qinfen Zheng在1991年首先提出了第一个光照估计算法,该算法只是估算点光源的位置,没有计算光源强度,并且在计算过程中,忽略了环境光。Kanbara等人将一个二维方形板和一个镜面球组合在一起,形成一个三维标志物,其中二维方形板主要完成对用户视点的跟踪,镜面球用来推算点光源的位置,该方法也没有考虑点光源的强度计算问题。Matsuoka则设计了一个由13个二极管和ARToolkit标志组成的传感器立方体,来测量真实光源的位置和强度。Sato和Wang等人通过分析阴影信息进行光源预测,该算法能够用于有多个光源的场景,但是仅仅能估算出各个光源的方向,而不能算出具体的位置和亮度。浙江大学的王靖滨等人主要针对室外场景的AR应用,采用光照交互指定和自动恢复相结合的方法恢复太阳光照,解决了景观规划系统中的光照一致性问题。国防科技大学的高宇等人也采用了类似的方法,北京理工大学的周雅等人,提出根据图像中标志物的明暗状况,利用计算机图形学的光照明模型计算方法进行逆推,可以较为方便地建立增强现实系统的光照模型。由于光照一致性涉及的问题很多,实现虚实场景的一致性光照,一个关键的环节是要获取现实环境中真实光照的分布信息。目前对真实环境光照的估计方法,主要包括:标志物的设计及其表面的光照特性分析、点光源的位置计算、环境光与点光源的光照强度计算等,以此实现虚实场景的一致性光照效果。

三、实现光照一致性的方法

  光照模型的研究是光照一致性问题研究的重要手段,主要研究的是如何根据光学物理的有关定律,采用计算机来模拟自然界中光照明的物理过程。光照一致性研究主要分为以下几类:

(一)、 借助辅助标志物的方法

  借助辅助标志物的方法多以估计真实场景的光源为主要研究任务,然后生成对应的虚拟光源并渲染光照效果到虚拟物体上。它按照标志物的用途又可以分为基于标志物阴影分析的方法和基于标志物表面图像估计光照的方法。

  • 基于标志物阴影分析的方法
    基于标志物阴影分析的方法常利用阴影的亮度估计光源分布, 或是利用阴影的空间投射关系推算光源位置
  • 基于标志物表面图像估计光照的方法
    首先通过图像处理提取标志物上的明暗信息或者标志物表面反射的环境信息, 然后根据光线的反射规律计算出光源的方向。

(二) 、借助辅助拍摄设备的方法

  借助深度相机、光场相机以及鱼眼相机等特殊拍摄设备来获取场景的深度、光场和全视角图像等信息,再通过这些信息估计真实场景的光照信息。

(三)、 基于图像的分析方法

  仅通过图像内容(比如一系列视频图像或是一张图像)分析场景中的光照, 并将虚拟物体无缝融合到真实场景,ARCore就是采用的这种方法。

Cookie
  • (一)、基于阴影的图像光照分布估计算法:该方法用离散的平行光源模拟空间光照分布,在景物几何和材质已知的情况下根据兰伯特或其他更复杂的光照模型建立方程组。由于阴影的存在,图像中不同区域所受到的光照条件不同,因此所得到的方程组有解,求解方程组便可获取场景的光照分布。但此种方法也具有很大的具限性:一是需要场景中包含明显的阴影,对于不含有阴影或者阴影不明显的图像则无法估计其光照分布;二是只能恢复直接光源的信息,不能恢复环境光的信息。
  • (二)、基于用户交互的单幅图像光照分布估计方法:该方法假设场景位于一个立方体内,场景中的物体均为理想漫反射几何体,用户通过交互方式重建场景的粗略几何并且指定场景内光源的位置。在此基础上,算法根据用户的交互信息恢复场景材质,求解光源亮度。此种方法的限性为需要用户交互指定场景几何、光源方位等信息,不能自动估计光源方向和光源位置。

  通过是否进行三维重建可以分成需要分析场景结构的图像分析方法和无需场景结构分析的图像分析方法。

  • 需要分析场景结构的图像分析方法
    通过对图像信息的分析来完成三维重建,然后通过重建后的三维图像来分析场景光照情况。
  • 无需场景结构分析的图像分析方法
    不进行三维重建,只利用图像的特征来估计场景的光照情况。
Cookie

  ARCore光估计技术就是建立在图像的分析方法基础之上的综合技术,使虚拟物体能够根据环境光照信息改变光照情况,并形成相应方位的影子,从而增加虚拟物体在真实世界中的真实度。

参考文献

1、一种基于单幅图像的室内场景光照环境估计方法与流程 一种基于单幅图像的室内场景光照环境估计方法与流程
2、光照一致性中光照估计的三类方法 光照一致性中光照估计的三类方法

猜你喜欢

转载自blog.csdn.net/yolon3000/article/details/83211792