我正在尝试在 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
}