2

我正在尝试在 osx 上使用 scenekit 以 60Hz 的频率从不同的角度渲染场景。

为此,我有 2 个不同的 SCNView。场景渲染还可以,但是:

-> 物理引擎和动画在公共场景的两个 SCNView 中运行,从而实现了 2 倍的执行物理速度和粒子系统速度。

问题:如何在不同的视图中渲染场景的不同视角......而不会对粒子系统和物理速度产生任何影响。

我的代码如下所示:

class GameViewController: NSViewController,SCNSceneRendererDelegate {

    @IBOutlet weak var scnView1: SCNView!
    @IBOutlet weak var scnView2: SCNView!

    ...

    func renderer(aRenderer: SCNSceneRenderer,
        didSimulatePhysicsAtTime time: NSTimeInterval) {
        ...
    }

    ...

    override func awakeFromNib(){

        // create a the scene
        let scene = SCNScene()

        // set up the scene
        ...

        // create two cameras 
        let cameraNode1 = SCNNode()
        cameraNode.position = ...
        cameraNode.rotation = ...
        scene.rootNode.addChildNode(cameraNode1)

        let cameraNode2 = SCNNode()
        cameraNode.position = ...
        cameraNode.rotation = ...
        scene.rootNode.addChildNode(cameraNode2)

        // set up the first view
        scnView1.scene = scene

        // initial point of view
        scnView1.pointOfView = cameraNode1

        // plug game logic
        scnView1.delegate = self

        // set up the second view
        scnView2.scene = scene

        // initial point of view
        scnView2.pointOfView = cameraNode2

}

4

0 回答 0