Scenekit snapshot()不包括相机曝光设置

时间:2017-09-29 13:55:16

标签: swift scenekit augmented-reality arkit

我正在为我的AR应用程序提供屏幕截图功能,我注意到我拍摄的屏幕截图(通过sceneView.snapshot())比我从相机看到的更暗。我正在使用Apple的ARKit示例代码,这似乎影响了它:

camera.wantsHDR = true
camera.wantsExposureAdaptation = true
camera.exposureOffset = -1
camera.minimumExposure = -1
camera.maximumExposure = 3

当我删除曝光设置时,快照工作正常。有什么方法可以确保快照考虑那些曝光设置?

1 个答案:

答案 0 :(得分:1)

您应该考虑一个whitePoint变量,也称为亮度级别,用作色调映射曲线的上端。

var whitePoint: CGFloat { get set }

使用高动态范围(HDR)相机时,SceneKit会应用称为色调映射的过程,将可见场景中的各种亮度值转换为可在显示屏上显示的较窄亮度值范围。 SceneKit根据minimumExposuremaximumExposureexposureOffsetwhitePoint属性确定色调映射曲线,并测量场景亮度。

默认值为1.0。通过将此属性设置为更高或更低的值,可以在阴影和高光之间产生更多渐变或更突然的过渡。如果wantsHDR值为false,则此属性无效。

camera.whitePoint = 1.0