gpt4 book ai didi

swift - 为什么添加到场景 View 场景的 3d 对象会随着相机移动?

转载 作者:行者123 更新时间:2023-11-29 13:56:14 24 4
gpt4 key购买 nike

我已将 3d 对象添加到 dae 格式的场景 View 场景中。但它随着相机移动。如何将其固定到特定位置。相同的代码适用于其他 3d 对象,但问题仅适用于此特定对象。下面是使用的代码:

 let scene = SCNScene(named: "Volvo_FE_Crane_2013.dae")!
craneNode = SCNNode()
let truckNode = scene.rootNode.childNode(withName: "Volvo_FE_Crane_2013", recursively: true)!
craneNode.addChildNode(truckNode.clone())
craneNode.position = SCNVector3Make(hitResult.worldTransform.columns.3.x, hitResult.worldTransform.columns.3.y, hitResult.worldTransform.columns.3.z)
craneNode.light?.intensity = 1000
craneNode.scale = SCNVector3Make(0.08, 0.08, 0.08)
sceneView?.scene.rootNode.addChildNode(craneNode)

最佳答案

您的模型似乎仅在初始跟踪阶段“滑动”。然后它静止不动。发生这种情况是因为尚未跟踪场景。如果它不是真的(我在说什么)——问题出在 hitResult 中。我没有看到你是怎么得到它的。

节点的顺序和层次结构很重要...

let scene = SCNScene(named: "Volvo_FE_Crane_2013.dae")!

craneNode = SCNNode()
let truckNode = scene.rootNode.childNode(withName: "Volvo_FE_Crane_2013",
recursively: true)!

truckNode.position = SCNVector3Make(hitResult.worldTransform.columns.3.x,
hitResult.worldTransform.columns.3.y,
hitResult.worldTransform.columns.3.z)

// truckNode.light?.intensity = 1000 // IT"S NOT A LIGHT

truckNode.scale = SCNVector3Make(0.08, 0.08, 0.08)

craneNode.addChildNode(truckNode.clone())
sceneView?.scene.rootNode.addChildNode(craneNode)

此外,这可能是模型大小(多边形数量)的问题

关于swift - 为什么添加到场景 View 场景的 3d 对象会随着相机移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55826458/

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