定义SCNNode

时间:2018-12-29 11:59:47

标签: ios swift augmented-reality arkit

我基于SCNBox创建SCNVector3。但我不了解创作的概念。

对于2D矩形, x y 代表矩形的右上角。 对于ARKit 3D SCNBox x,y z 分别代表什么?那代表SCNBox的中心吗?

1 个答案:

答案 0 :(得分:2)

设置SCNNode的位置时,您正在初始化SCNVector3来描述节点的位置。

您必须定义节点的中心点相对于父节点的位置(中心点不一定位于自定义节点的中心,但是如果您拥有具有SCNBoxSCNSphere等几何形状的基本节点,中心点位于中心)

一个简单的示例是将具有几何SCNBox的节点添加到rootNode的{​​{1}}的{​​{1}}中,当您在Xcode中创建新的 Augmented Reality时应用

sceneView

enter image description here

如您所见,要初始化scene,您必须定义节点中心点 x,y z 位置。请注意,单位是米。

我用 x,y z 轴创建了(非常好)图片,这应该可以帮助您了解如何放置let cube = SCNBox(width: 0.1, height: 0.1, length: 0.1, chamferRadius: 0) let material = SCNMaterial() material.diffuse.contents = UIColor.red cube.materials = [material] let node = SCNNode() node.position = SCNVector3(x: 0, y: 0, z: -0.5) node.geometry = cube sceneView.scene.rootNode.addChildNode(node)

... origin是添加节点时节点父级坐标系的原点。 AR世界的图像原点简化为SCNVector3

的中心位置

enter image description here