我正在从具有特定角度的场景创建 SCNRenderer。我正在使用 SCNView 使我的观点可见,并且当对象场景看起来像我想要它时,我在离线 openGLContext 中渲染它以从中制作图像。这是相关的代码:
SCNRenderer *lRenderer = [SCNRenderer rendererWithContext:openGLContext.CGLContextObj options: nil];
lRenderer.scene = self.sceneView.scene;
lRenderer.pointOfView = [self.sceneView.pointOfView clone];
[ lRenderer render ];
我发现视点的克隆使渲染器以与 SCNView 完全相同的方式渲染场景。完美,到目前为止。
现在我想调整观点。例如,我想将旋转设置为独立于场景视图的值,假设为 0。所以,我这样做:
lRenderer.pointOfView.rotation = SCNVector4Make(1,1,1,M_PI_2);
在打电话之前[lRenderer render]
,这不会改变任何事情。
我在 lRenderer.pointOfView 上更改的任何属性似乎都无关紧要。但是,如果我省略了lRenderer.pointOfView = [self.sceneView.pointOfView clone]
渲染器从默认角度而不是 self.sceneView 的角度渲染的线,那么在克隆的 SCNNode 中必须有一些我可以在 lRenderer.pointOfView 上更改的东西会产生影响?