【问题标题】:SceneKit: sceneView projectPoint with multiple camerasSceneKit:带有多个摄像头的场景视图项目点
【发布时间】:2019-09-12 19:13:24
【问题描述】:

如果一个场景包含多个摄像机,projectPoint 方法使用哪个摄像机将点从 3D 投影到屏幕空间?如果这是由pointOfView 属性定义的,那么当我更新pointOfView 的位置时,为什么给定的3D 点仍然投影到同一个2D 点?

【问题讨论】:

    标签: swift scenekit


    【解决方案1】:

    由于 SCNCamera 属于 SCNView,只需通过 View 的“pointOfView”实例属性将PoV 设置为所需的相机节点即可。

    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
    

    然后你可以改变 PoV:

    sceneView.pointOfView = cameraNode002
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-13
      相关资源
      最近更新 更多