SceneKit: проекционная точка просмотра сцены с несколькими камерами

#swift #scenekit

#swift #scenekit

Вопрос:

Если сцена содержит несколько камер, какую камеру использует projectPoint метод для проецирования точек из 3D в экранное пространство? Если это определено pointOfView свойством, то почему, когда я обновляю положение pointOfView , данная 3D-точка по-прежнему проецируется на ту же 2D-точку?

Ответ №1:

Поскольку SCNCamera принадлежит SCNView, просто установите PoV через свойство экземпляра «pointOfView» вида на требуемый узел камеры.

 let cameraNode001 = SCNNode()
cameraNode001.camera = SCNCamera()
scene.rootNode.addChildNode(cameraNode001)
cameraNode001.position = SCNVector3(x: 0, y: 0, z: 15)

let cameraNode002 = SCNNode()
cameraNode002.camera = SCNCamera()
scene.rootNode.addChildNode(cameraNode002)
cameraNode002.position = SCNVector3(x: 10, y: 10, z: 30)

let sceneView = self.view as! SCNView 
sceneView.scene = scene


sceneView.pointOfView = cameraNode001
  

затем вы можете изменить точку зрения:

 sceneView.pointOfView = cameraNode002