Scenekit snapshot()不包括相机曝光设置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scenekit snapshot()不包括相机曝光设置相关的知识,希望对你有一定的参考价值。
我正在为我的AR应用程序提供屏幕截图功能,我注意到我拍摄的截图(通过sceneView.snapshot()
)比我从相机看到的更暗。我正在使用Apple的ARKit示例代码,似乎这会影响它:
camera.wantsHDR = true
camera.wantsExposureAdaptation = true
camera.exposureOffset = -1
camera.minimumExposure = -1
camera.maximumExposure = 3
当我删除曝光设置时,快照工作正常。有什么方法可以确保快照考虑那些曝光设置?
答案
您应该考虑一个whitePoint
变量,也称为亮度级别,用作色调映射曲线的上端。
var whitePoint: CGFloat { get set }
使用高动态范围(HDR)相机时,SceneKit会应用称为色调映射的过程,将可见场景中的宽范围亮度值转换为可在显示屏上显示的较窄亮度值范围。 SceneKit根据minimumExposure
,maximumExposure
,exposureOffset
和whitePoint
属性确定色调映射曲线,并测量场景亮度。
默认值为1.0
。通过将此属性设置为更高或更低的值,可以在阴影和高光之间产生更多渐变或更突然的过渡。如果wantsHDR
值为false
,则此属性无效。
camera.whitePoint = 1.0
以上是关于Scenekit snapshot()不包括相机曝光设置的主要内容,如果未能解决你的问题,请参考以下文章
没有渲染/虚拟内容的 ARKit/SceneKit 屏幕截图