Применение текстур PBR на 3D-модели с использованием освещения на основе изображений - PullRequest
0 голосов
/ 14 декабря 2018

В ARKit 2.0 я пытаюсь использовать базовый материал PBR.Использование 3D модели в формате .obj.

Проблема : Я не могу увидеть темный продукт.Я не уверен, связано ли это с настройкой правильного освещения в SceneKit.Пожалуйста, помогите мне, как установить базовое освещение PBR в ARKit / SceneKit.

Попробуйте следующий код:

//Set lighting
let light = SCNLight()
light.type = .ambient
node.light = light

// if light estimation is enabled, update the intensity 
// of the model's lights and the environment map
if let lightEstimate = self.session.currentFrame?.lightEstimate {
    self.enableEnvironmentMapWithIntensity(lightEstimate.ambientIntensity / 1000.0)
} else {
    self.enableEnvironmentMapWithIntensity(6)
}

// Call environment Map
func enableEnvironmentMapWithIntensity(_ intensity: CGFloat) {

    if sceneView.scene.lightingEnvironment.contents == nil {
        if let environmentMap = UIImage(named: "Models.scnassets/sharedImages/environment_blur.exr") {
            sceneView.scene.lightingEnvironment.contents = environmentMap
        }
    }
    sceneView.scene.lightingEnvironment.intensity = intensity
}

Требуемый результат: http://prntscr.com/luwlax

enter image description here

Для справки, прикрепление PBR Материалы:

enter image description here

Диффузный: https://prnt.sc/luwc40

Шероховатость: https://prnt.sc/luwcl7

Нормальный: https://prnt.sc/luwcuw

Металличность: https://prnt.sc/luwdaz

1 Ответ

0 голосов
/ 29 апреля 2019

Если у вас есть разделенная геометрия (экран отдельно от рамки), легко назначить текстуру на эти части.

Если у вас есть комбинированная геометрия (все детали как одна деталь), то единственный способ текстурировать такую ​​модель - назначить предварительно изготовленную UV-сопоставленная текстура .

...