Модель .usdz не имеет текстуры при загрузке в сцену - PullRequest
2 голосов
/ 17 июня 2019

Я загружаю модель .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)

enter image description here

Ответы [ 2 ]

0 голосов
/ 17 июня 2019

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

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

sceneView.scene.rootNode.addChildNode(spotLight)
0 голосов
/ 17 июня 2019

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

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

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

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

enter image description here

...