autoenablesDefaultLighting 在 iOS 12 中太亮并且 SCNView.pointOfView 无效

autoenablesDefaultLighting is too bright in iOS 12 and SCNView.pointOfView is not effective

我正在使用我的 sceneView 的 SceneKit 的 autoenablesDefaultLightingallowsCameraControl 函数为应用程序中的 obj 3D 模型提供光并在 Objective-C 中围绕该对象旋转。自升级到iOS12后,autoenablesDefaultLighting的默认光强变高了,3D模型看起来好亮!

有人遇到同样的问题吗?如果是,有没有办法控制autoenablesDefaultLighting值为‘YES’时的光照强度?如果它不可编辑,我尝试通过创建一个节点向相机 attach/constraint 泛光或定向光,为该节点分配一盏灯并添加为 SCNView.pointOfView 的子节点,但没有灯光照亮场景.

示例:
3D object displayed before iOS 12
3D object displayed in iOS 12

如果有人能帮助我就更好了。

非常感谢!

编辑以解决此问题

我创建了一个新的 SCNCamera 并将其添加到一个节点中,并设置了我的 scnView 的 PointOfView。 使用 scnView.pointOfView.wantHDR = YES; 激活此相机的 HDR 但是 a 的背景是灰色的。

要删除灰色背景,我用 scnView.backgroundColor = [UIColor ClearColor] 删除背景色 并将相机的曝光设置为-1:

self.scnView.pointOfView.camera.minimumExposure = -1; self.scnView.pointOfView.camera.maximumExposure = -1;

谢谢

您可以尝试启用HDR。它应该导致平衡曝光

scnView?.pointOfView?.camera?.wantsHDR = true

启用 HDR 后,您甚至可以使用

控制曝光补偿

scnView?.pointOfView?.camera?.exposureOffset

.camera?.wantsHDR = true

.camera?.wantsExposureAdaptation = false

问题应该解决了!