翻译对象的几何形状,以便所有后续转换都包括原始翻译

Translate geometry of object so all subsequent transforms include the original translation

在 SceneKit 中,我创建了一个长方体并希望沿 y 轴平移它,但我希望对该长方体节点的所有变换(平移、旋转、缩放)不影响几何体的原始平移。我如何使用 SCNNode 完成此操作?

双重包裹几何体

使用 SCNNode->SCNNode->SCNGeometry.

双重包装对象相当简单
let planeBox = SCNBox(width: 50.0, height: 50.0, length: 1.0, chamferRadius: 0.0)
planeBox.firstMaterial?.diffuse.contents = UIColor(white: 0.0, alpha: 1.0)

let planeNode = SCNNode(geometry: planeBox)
planeNode = SCNMatrix4MakeTranslation(0.0, 50.0, 0.0)

let wrappingNode = SCNNode()
wrappingNode.addChildNode(planeNode)
scene.rootNode.addChildNode(wrappingNode)

然后对 wrappingNode 的所有后续更新都将与原始翻译隔离。