I am using SceneKit’s
allowsCameraControl functions of my sceneView to provide light to an obj 3D model in the app and rotate around this object in Objective-C. Since upgrading to iOS12, the default light intensity of
autoenablesDefaultLighting gets higher and the 3D model looks so bright!
Did anyone faced the same issue? If yes, is there a way to control the light intensity of
autoenablesDefaultLighting when its value is ‘YES’? If it is not editable, I tried to attach/constraint an omni light or directional light to a camera by creating a node, assign a light to this node and add as child of
SCNView.pointOfView but no light illuminates the scene.
Exemple:<br /><a href="https://i.stack.imgur.com/Bve0h.jpg" rel="nofollow">3D object displayed before iOS 12</a><br /><a href="https://i.stack.imgur.com/WKDfH.jpg" rel="nofollow">3D object displayed in iOS 12</a>
It will be good if anyone can help me on it.
<strong>Edit to solve this issue</strong>
I create a new SCNCamera and add this in a node and set the PointOfView of my scnView.
Activate the HDR of this camera with
scnView.pointOfView.wantHDR = YES;
but a had a grey background.
To delete the grey background I delete the background color with
scnView.backgroundColor = [UIColor ClearColor]
and set the explosure of the camera to -1 with :
self.scnView.pointOfView.camera.minimumExposure = -1;
self.scnView.pointOfView.camera.maximumExposure = -1;
You can try enabling HDR. It should result in a balanced exposure
scnView?.pointOfView?.camera?.wantsHDR = true
With HDR enabled, you can even control exposure compensation with
.camera?.wantsHDR = true
.camera?.wantsExposureAdaptation = false
Should solve the problem!