.usdz模型加载到场景中时没有纹理

时间:2019-06-17 11:45:46

标签: swift scenekit augmented-reality arkit 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)

enter image description here

2 个答案:

答案 0 :(得分:0)

如果您已经在3D场景中实现了灯光并且这些灯光具有必要的强度级别(默认值为1000流明),那就可以了。如果没有,只需使用以下代码实现自动照明

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

但是如果您仍然看不到机器人模型的着色器

  • Scene Inspector的Xcode中,只需从下拉菜单中打开Procedural Sky属性的Environment值即可。

enter image description here

答案 1 :(得分:0)

您的场景没有光线,这就是为什么物体显示黑暗的原因。只需向场景中添加定向光即可:

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

sceneView.scene.rootNode.addChildNode(spotLight)