gpt4 book ai didi

ios - 如何在 ARKit2 中添加 3D 对象作为 SCNNode?

转载 作者:行者123 更新时间:2023-12-01 19:40:39 25 4
gpt4 key购买 nike

我是 ARKit2 的新手并遵循了一些教程和官方文档。
问题
如何添加3d对象为 SCNNode() ?
代码

let artFrame = SCNBox(width: CGFloat(w), height: CGFloat(h), length: 0.002, chamferRadius: 0.02)
artFrame.firstMaterial?.diffuse.contents = imageToDisplay
let artFrameNode = SCNNode(geometry: artFrame)
artFrameNode.physicsBody = SCNPhysicsBody(type: .static, shape: SCNPhysicsShape(geometry: artFrame, options: nil))
artFrameNode.position = SCNVector3Make(Float(x), Float(y), Float(z*3))
sceneView.scene.rootNode.addChildNode(artFrameNode)
根据上面的代码,我使用的是预定义的 SCNBoxSCNNode .有什么方法可以使用 3d对象,例如 .dae , .obj而不是 SCNBox并用图像包装?
我查看了文档,它说您可以添加 Mesh objectsSCNNode :
https://developer.apple.com/documentation/scenekit/scnnode/1419841-init
编辑
每当我添加新的 .dae 并转换为 .scn 时。 Xcode 抛出以下错误:
/Users/paly/Library/Developer/Xcode/DerivedData/sample-bohiilnhthuwfkechtmhscucgccc/Build/Products/Debug-iphoneos/sample.app: resource fork, Finder information, or similar detritus not allowed
Command CodeSign failed with a nonzero exit code

最佳答案

添加.dae.obj反对现场,你需要得到childNode.dae对象并简单地将其添加到您的场景中。我建议转换您的 .dae文件到 .scn只需使用 Xcode 的编辑器菜单。

您还需要节点的名称,该名称可以在场景图形 View 中访问。只需点击您的.obj文件并单击 Xcode 场景编辑器左下角的 Scene Graph View 按钮。在这里,我的节点名称是“objectNode”:

enter image description here

现在您可以将 3D 对象添加为 SCNNode到你的场景:

override func viewDidLoad() {
super.viewDidLoad()
...

let objectScene = SCNScene(named: "object.scn") // Here, add your .obj or .scn file
let objectNode: SCNNode = objectScene.rootNode.childNode(withName: "YourObjectName", recursively: true) // Get the object name from Scene Graph View, which is "objectNode" for me.
objectNode.position = SCNVector3(0,0,-4)

let scene = SCNScene() // Main scene of the app
scene.rootNode.addChildNode(objectNode)
sceneView.scene = scene
...
}

关于ios - 如何在 ARKit2 中添加 3D 对象作为 SCNNode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53846726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com