ARFoundation之路-光照估计
版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。
(一)光照一致性
AR 与 VR 在光照上最大的不同在于 VR 世界是纯数字世界,有一套完整的数学模型,而 AR 则是将计 算机生成的虚拟物体或关于真实物体的非几何信息叠加到真实世界的场景之上实现对真实世界的增强,融 合了真实世界与数字世界。就光照而言,VR 中的光照完全由开发人员决定,光照效果是一致的,而 AR 中 则不得不考虑真实世界的光照信息与虚拟的 3D 光照信息的一致性,比如说,如果在 AR 3D 应用中设 置了一个模拟太阳的高亮度方向光,而用户是在晚上使用这个 AR 应用,如果不考虑光照一致性,那么渲染 出来的虚拟物体的光照与真实世界其他物体的光照反差将会非常明显,由于人眼对光照信息的高度敏感, 这种渲染可以说是完全失败的,完全没有沉浸感。在 AR 中,由于用户与真实世界的联系并未被切断,光照 的交互方式也要自然,如果真实世界的阴影向左而渲染出来的虚拟物体阴影向右,这也是让人难以接受的, 所以在 AR 中,必须要能达到虚拟光照与真实光照的一致,虚拟物体渲染出来的阴影应与真实环境中的阴影基本保持一致,这样才能提高虚拟物体的可信度和真实感。
光照一致性,是指让虚拟物体具有与真实场景相同的光照效果。光照一致性的目标是使虚拟物体的光 照情况与真实场景中的光照情况一致,虚拟物体与真实物体有着一致的明暗、阴影效果,以增强虚拟物体 的真实感。解决光照一致性问题的关键是如何获取真实场景中的光照信息,准确的光照信息能够实现更加 逼真的增强现实效果。光照一致性包含的技术性问题很多,完全的解决方案需要场景精确的几何模型和光 照模型,以及场景中物体的光学属性描述,这样才可能绘制出真实场景与虚拟物体的光照交互,包括真实 场景中的光源对虚拟物体产生的明暗、阴影和反射以及虚拟物体对真实物体的明暗、阴影和反射的影响。 光照一致性问题是增强现实技术中的一个难点,光照模型的研究是解决光照一致性问题的重要手段,其主 要研究如何根据物理光学的有关定律,采用计算机来模拟自然界中光照的物理过程。 由于光照一致性涉及的问题很多,实现虚实场景的一致性光照,一个关键的环节是要获取现实环境中 真实光照的分布信息。目前对真实环境光照的估计方法主要包括:借助辅助标志物的方法、借助辅助拍摄 设备的方法、基于图像的分析方法等等。在下图中,我们利用光照估计技术评估环境光,利用环境光中的光照信息来动态调整虚拟对象的光照效果。
(二)光照估计操作
为在ARFoundation中应用光照估计,我们首先要打开ARFoundation光照估计功能,在Hierarchy窗口中,依次选择AR Session Origin->AR Camera,然后在Inspector窗口的AR Camera Manager组件中,选择其Light Estimation Mode为“Ambient Intensity”,如下图所示。
新建一个C#脚本,命名为LightEstimation,编写如下代码。
using UnityEngine;
using UnityEngine.XR.ARFoundation;public class LightEstimation : MonoBehaviour
{[SerializeField]private ARCameraManager mCameraManager;private Light mLight;void Awake(){mLight = GetComponent<Light>();}void OnEnable(){if (mCameraManager != null)mCameraManager.frameReceived += FrameChanged;}void OnDisable(){if (mCameraManager != null)mCameraManager.frameReceived -= FrameChanged;}void FrameChanged(ARCameraFrameEventArgs args){if (args.lightEstimation.averageBrightness.HasValue){mLight.intensity = args.lightEstimation.averageBrightness.Value ;Debug.Log("Light Intensity:"+args.lightEstimation.averageBrightness.Value);}if (args.lightEstimation.averageColorTemperature.HasValue){mLight.colorTemperature = args.lightEstimation.averageColorTemperature.Value;Debug.Log("Light Color Temperature:"+args.lightEstimation.averageColorTemperature.Value);}if (args.lightEstimation.colorCorrection.HasValue){mLight.color = args.lightEstimation.colorCorrection.Value Debug.Log("Light Color Correction:" + args.lightEstimation.colorCorrection.Value );}}
}
为应用该脚本,我们将该脚本挂载在场景中的Dierctional Light对象上,并将AR Session Origin->AR Camera赋给脚本的mCameraManager属性,如下图所示。
编译运行,Debug输出如下图所示,通过观察我们发现三件事实:一是Light Color Temperature没有输出;二是Light Color Correction值非常接近于1,Light Intersity的值只有Light设定值的一半左右;三是光照估计每帧都会执行。
出现事实一的原因是我们使用的手机操作系统平台为Android,在Android平台上使用的ARCore没有Light Color Temperature的概念。在ARCore中,光照估计会对环境中的光照强度(Intensity)、颜色(Color)、方向(Direction)进行评估计算,在ARFoundation中,计算了光照强度(Intensity)、颜色校正(Light Color Correction)。在iOS平台上使用ARKit时没有Light Color Correction的概念,ARKit只对环境中的光照强度(AmbientIntensity)、颜色色温(AmbientColorTemperature)进行估计,因此在iOS平台,Light Color Correction也将不会输出。
通过事实二我们也可以看到,在实际应用中,颜色校正值其实是比较微弱的;同时我们也可以到了光照强度大概率在0.4-0.5之间浮动,因此有时为了让效果再明显,我们会乘一个系统来对强度、颜色值进行纠偏,例如乘以2扩大影响范围。
ARCore与ARKit的光照估计技术都是建立在图像分析方法基础之上的综合技术,使虚拟物体能够根据环境光照信息 改变光照情况,增加虚拟物体在现实世界中的真实感。基于图像的光照估计算法需要对摄像头获取的每一帧图像的每一个像素点进行数学运算,因此计算里非常大,因此,如果在不需要光照估计时应该及时的关闭光照估计。关闭光照估计的方法是选择场景AR Session Origin->AR Camera对象,将其AR Camera Manager组件中的Light Estimation Mode设为“Disable”。
下图是在同一光照条件下,我们通过更换不同的背景模拟环境光改变,虚拟物体光照也发生了比较明显的变化(为强化效果,我们将Color Correction乘了系数5)。
ARFoundation之路-光照估计相关推荐
- ARFoundation系列讲解 - 31 光照估计
一.介绍 光照估计是一个很重要的功能,它能让虚拟的3D对象具有与真实场景相同的光照效果.让虚拟物体能很好的融入现实背景中. (ps:
- AR Engine光照估计能力,让虚拟物体在现实世界更具真实感
AR是一项现实增强技术,即在视觉层面上实现虚拟物体和现实世界的深度融合,打造沉浸式AR交互体验.而想要增强虚拟物体与现实世界的融合效果,光照估计则是关键能力之一. 人们所看到的世界外观,都是由光和物质 ...
- 基于双光照估计的曝光校正: Dual Illumination Estimation for Robust Exposure Correction
Dual Illumination Estimation for Robust Exposure Correction [pdf] 目录 Abstract 1. Introduction 3. Our ...
- ARFoundation之路-人脸检测增强之二
版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载. 前节所述使用"标准模型"匹配人脸以检测人脸姿态是众多人脸姿态检测方法中的一种,实际上,人脸姿态估计 ...
- ARFoundation之路-3D物体识别之一
版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载. 3D物体跟踪技术,是指通过图像处理技术对摄像头中拍摄到的3D物体识别定位并对其姿态进行跟踪的技术.3D物体跟踪技术的基 ...
- ARFoundation之路-AR阴影生成之一
版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载. 阴影在现实生活中扮演着非常重要的角色,通过阴影我们能直观的感受到光源位置.光源强弱.物体离地面高度. 物体轮廓等,在大 ...
- ARFoundation之路-环境配置(iOS)之二
版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载. (一)AppController 在Project窗口Scripts文件夹下,空白处点击鼠标右键,在弹出的级联菜单中依 ...
- ARFoundation之路-平面管理
平面检测是很多AR应用的基础,无论是ARKit还是ARCore,都提供平面检测功能.同时,平面也是可跟踪对象,在前几节中我们知道,ARFoundation使用ARPlaneManager管理器来管 ...
- ARFoundation之路-视频播放
版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载. 在AR中播放视频也是一种常见的需求,如在一个展厅中放置的虚拟电视上播放宣传视频,或者在游戏中为营造氛围而设置的虚拟电视 ...
最新文章
- Java反射以及应用
- Java Web整合开发(85)
- python字符串删除,列表删除以及字典删除的总结
- 210511阶段四 切片 迭代 生成器
- 全国计算机四六级报名时间2015,2015年英语四六级口语考试报名时间:10月25日起...
- 在Mac电脑上用VMware Fusion在移动硬盘上安装Windows7虚拟机
- paip.手机时间设置不能修改灰色禁用 解决大法
- Java-使用字符串修改彩票程序
- HTML5项目实战之旅行社网站——PC端固定布局
- uci2019计算机录取,最新!加州大学公布2019年新生录取数据!
- 【2022 李宏毅】机器学习导论
- 海思码率控制器各参数说明
- VLAN-TAG 知识相关
- Win10巧用自带输入法轻松打出特殊字符
- 2.1.5 物理路径泄漏_最新的泄漏的Windows 8.1 Build显示出继续关注波兰语和改进功能...
- 明日方舟如何在电脑上玩 明日方舟模拟器教程
- 计算机科学教育英文论文题目,学生方面计算机相关的毕业论文,关于计算机专业英语课程教学改革和实践相关在职研究生毕业论文...
- 旧服务器显示器回收,服务器回收 下城淘汰电脑显示器回收价钱
- 怎样识别app网站服务器在国外,APP服务器你了解多少?什么是海外app服务器
- 格式工厂怎么将qlv转换成mp4 转换方法最新