autoenablesDefaultLighting в iOS 12 слишком яркая, а SCNView.pointOfView не работает - PullRequest
0 голосов
/ 27 сентября 2018

Я использую функции SceneKit autoenablesDefaultLighting и allowsCameraControl моего sceneView для предоставления света трехмерной модели obj в приложении и вращения вокруг этого объекта в Objective-C.После обновления до iOS12 интенсивность света по умолчанию autoenablesDefaultLighting становится выше, а 3D-модель выглядит настолько ярко!

Кто-нибудь сталкивался с такой же проблемой?Если да, есть ли способ контролировать интенсивность света autoenablesDefaultLighting, когда его значение равно «ДА»?Если он недоступен для редактирования, я попытался прикрепить / ограничить всенаправленный или направленный источник света к камере, создав узел, назначив источник света этому узлу и добавив его как дочерний элемент SCNView.pointOfView, но сцена не освещает.

Пример:
3D-объект, отображаемый до iOS 12
3D-объект, отображаемый в iOS 12

Будет хорошо, если кто-нибудь сможет мне помочь

Большое спасибо!

Редактировать, чтобы решить эту проблему

Я создаю новую SCNCamera и добавляю ее в узел и устанавливаю PointOfViewмоего scnView.Активируйте HDR этой камеры с помощью scnView.pointOfView.wantHDR = YES;, но на сером фоне.

Чтобы удалить серый фон, я удаляю цвет фона с помощью scnView.backgroundColor = [UIColor ClearColor] и устанавливаю для камеры значение -1 с помощью:

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

Спасибо

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

.camera? .WantsHDR = true

.camera? .WantsExposureAdaptation = false

Должно решить проблему!

0 голосов
/ 28 сентября 2018

Вы можете попробовать включить HDR.Это должно привести к сбалансированной экспозиции

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

При включенном HDR вы даже можете управлять компенсацией экспозиции с помощью

scnView?.pointOfView?.camera?.exposureOffset

...