ios - 如何从 .usdz 创建 SCNNode?
问题描述
我已经下载了 Apple 提供的 .usdz 模型:https ://developer.apple.com/arkit/gallery/
但是现在,我想用这些模型之一创建一个 SCNNode,所以我这样做是为了获取节点:
guard let urlPath = Bundle.main.url(forResource: "retrotv", withExtension: "usdz") else {
return
}
let mdlAsset = MDLAsset(url: urlPath)
let modelRootNode = SCNScene(mdlAsset: mdlAsset).rootNode
然后我将它添加到场景中,结果是这样的:
为什么没有纹理?
如您所见,我已将下载的 .usdz 文件放入项目目录中的文件夹中:
解决方案
添加 .USDZ 对象的正确方法实际上是使用文件的 URL 创建场景:
let scene = try! SCNScene(url: usdzURL, options: [.checkConsistency: true])
甚至通过参考节点创建:
let referenceNode = SCNReferenceNode(url: usdzURL)
referenceNode.load()
推荐阅读
- oracle - 使用 Oracle 时是关系模型还是对象关系模型?
- machine-learning - 使用哪种监督机器学习技术?
- machine-learning - 将机器学习或深度学习模型部署到产品中的最佳实践是什么。
- lockscreen - 如何以编程方式在 Redmi 5 中启用在锁定屏幕上显示的权限
- scala - 如何镜像二叉树?
- .htaccess - “此网页包含被阻止的 URL” - 无法从正在开发的网站分享到 FB
- javascript - 标头错误和访问控制允许来源
- c++ - WINdow 10 中的类型转换问题(WinAPI 中的 DWORD 和 ULONG_PTR)
- android - 用户在 inappbrowser 中输入值的安全问题
- java - 从windows中的相对路径获取文件