gpt4 book ai didi

ios - 如何在 ARkIt 2 中将图像包裹在 3d 对象上?

转载 作者:行者123 更新时间:2023-11-28 23:39:46 25 4
gpt4 key购买 nike

我需要用图像包装 3D 对象(场景)。像这样:

enter image description here

我正在使用以下代码:

let imageMaterial = SCNMaterial()
let image = UIImage(named: "temp_flow_image")
imageMaterial.diffuse.contents = image

let objectScene = SCNScene(named: "art.scnassets/frame.scn")
let objectNode: SCNNode = objectScene!.rootNode.childNode(withName: "frame", recursively: true)!
objectNode.geometry?.firstMaterial?.diffuse.contents = imageMaterial

objectNode.position = SCNVector3(0,0,-4)

let scene = SCNScene() // Main scene of the app
self.sceneView.scene = objectScene!

整个过程是这样的:

3d 对象加载为 SCNNode 并以编程方式将图像包裹在其周围。我可以看到 3D 对象,但看不到其上方的图像。我在这里做错了什么?我们不能实用地编辑场景的几何部分吗?

我可以将图像包裹在 SCNBoxarkit 中的任何其他预定义形状中,但不能使用外部 3d 对象

最佳答案

以下代码有效:

self.sceneView.scene.rootNode.enumerateChildNodes { (node, _) in
if(node.name == "box") {
parentNode = node
let geometry = parentNode.geometry
geometry?.firstMaterial?.diffuse.contents = imageToDisplay
parentNode.position = SCNVector3Make(0, 0, -2.9)
let boxShape:SCNPhysicsShape = SCNPhysicsShape(geometry: geometry!, options: nil)
parentNode.physicsBody = SCNPhysicsBody(type: .static, shape: boxShape)
parentNode.physicsBody?.restitution = 1
}
}

sceneView.scene.rootNode.addChildNode(parentNode)

我在 Xcode 中创建了场景框

关于ios - 如何在 ARkIt 2 中将图像包裹在 3d 对象上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53858423/

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