autoenablesDefaultLighting 在 iOS 12 中太亮并且 SCNView.pointOfView 无效
autoenablesDefaultLighting is too bright in iOS 12 and SCNView.pointOfView is not effective
我正在使用我的 sceneView 的 SceneKit 的 autoenablesDefaultLighting
和 allowsCameraControl
函数为应用程序中的 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
问题应该解决了!
我正在使用我的 sceneView 的 SceneKit 的 autoenablesDefaultLighting
和 allowsCameraControl
函数为应用程序中的 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
问题应该解决了!