.usdz 模型加载到场景时没有纹理
.usdz model has no texture when loaded into scene
我正在将 .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)
如果您已经在 3D 场景中实现了灯光并且这些灯光具有必要的强度级别(默认为 1000 流明),那没关系。如果没有,只需使用以下代码实现自动照明:
let sceneView = ARSCNView()
sceneView.autoenablesDefaultLighting = true
sceneView.automaticallyUpdatesLighting = true
但是如果你还是没有看到机器人模型的shader:
- in Xcode in the
Scene Inspector
just turn on Procedural Sky
value of Environment
属性 from drop-down menu.
您的场景没有光线,这就是物体显示黑暗的原因。只需向您的场景添加定向光:
let spotLight = SCNNode()
spotLight.light = SCNLight()
spotLight.light?.type = .directional
sceneView.scene.rootNode.addChildNode(spotLight)
我正在将 .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)
如果您已经在 3D 场景中实现了灯光并且这些灯光具有必要的强度级别(默认为 1000 流明),那没关系。如果没有,只需使用以下代码实现自动照明:
let sceneView = ARSCNView()
sceneView.autoenablesDefaultLighting = true
sceneView.automaticallyUpdatesLighting = true
但是如果你还是没有看到机器人模型的shader:
- in Xcode in the
Scene Inspector
just turn onProcedural Sky
value ofEnvironment
属性 from drop-down menu.
您的场景没有光线,这就是物体显示黑暗的原因。只需向您的场景添加定向光:
let spotLight = SCNNode()
spotLight.light = SCNLight()
spotLight.light?.type = .directional
sceneView.scene.rootNode.addChildNode(spotLight)