Модель .usdz не имеет текстуры при загрузке в сцену

Я загружаю модель .usdz (загруженную с Apple) в свой ARSCNSceneView, который работает. Но, к сожалению, модель всегда отображается без текстуры и выглядит черной.

// Get the url to the .usdz file
guard let usdzURL = Bundle.main.url(forResource:   "toy_robot_vintage", withExtension: "usdz")
else {
    return
}

// Load the SCNNode from file             
let referenceNode = SCNReferenceNode(url: usdzURL)!
referenceNode.load()

// Add node to scene
sceneView.scene.rootNode.addChildNode(referenceNode)

введите здесь описание изображения


person Pikebu    schedule 17.06.2019    source источник


Ответы (2)


В вашей сцене нет света, поэтому объект темный. Просто добавьте в вашу сцену направленный свет:

let spotLight = SCNNode()
spotLight.light = SCNLight()
spotLight.light?.type = .directional

sceneView.scene.rootNode.addChildNode(spotLight)
person M Reza    schedule 17.06.2019

Если вы уже реализовали источники света в своей 3D-сцене, и эти источники света имеют необходимый уровень интенсивности (по умолчанию 1000 люмен), все в порядке. Если нет, просто используйте следующий код для реализации автоматического освещения:

let sceneView = ARSCNView()
sceneView.autoenablesDefaultLighting = true
sceneView.automaticallyUpdatesLighting = true

Но если вы все еще не видите шейдер модели робота:

  • в Xcode в Scene Inspector просто включите Procedural Sky значение свойства Environment из раскрывающегося меню.

введите здесь описание изображения

person Andy Fedoroff    schedule 17.06.2019