问题描述:
最近在开发AR相关的设计,但是拍的AR照片背景一直是有过曝情况的,像下面这样:

但是真实场景,应该是下面这样:

可以看见,画面已经曝光到影响画质了。
环境:
使用的ARSDK:Vuforia,(但是这里的问题和使用的是什么SDK没有关系的,因为之前还使用过VoidAR,一个国产的SDK还是这个问题)
平台:iOS,问题其实和平台也没有什么关系,因为我们需要改动的是shader里面的内容。
因为在我的程序里面,虚拟人物的绘制渲染完成之后会有一段后处理过程的代码,代码里面会有从线性空间转到非线性空间的ToneMapping运算,(ToneMapping运算是一种hdr转换到ldr的过程,这里我就不详细铺开了),因为引擎里面使用的是前向渲染,所以此时ToneMapping的过程是一定要有的,不然虚拟人物就很暗,但是加上ToneMapping之后,画面就是上面那个样子。
此时使用的VuforiaSDK的流程是将手机摄像头拍摄的场景渲染成一张贴图,再将贴图渲染到屏幕上,所以此时是因为ToneMapping的过程影响的真实场景的显示。
解决办法:
我们需要在Vuforia里面提供的画视频背景的shader里面进行ToneMapping的逆运算。
我在虚拟人物的后处理过程中,使用的ToneMa

在AR开发中遇到背景过曝问题,使用Vuforia SDK和iOS平台。问题源于虚拟人物后处理的ToneMapping运算。为解决此问题,需要在Vuforia提供的视频背景shader中进行ToneMapping的逆运算,通过一元二次方程求根公式调整,以平衡虚拟与真实场景的亮度。
最低0.47元/天 解锁文章
1809

被折叠的 条评论
为什么被折叠?



