특정 시점에서 장면에서 SCNRenderer를 생성 중입니다. SCNView를 사용하여 뷰의 내 시점을 표시하고 객체 장면이 원하는 것처럼 보이면 오프라인 openGLContext에서 이미지를 렌더링하여 렌더링합니다.SCNRenderer의 PointOfView 변경
SCNRenderer *lRenderer = [SCNRenderer rendererWithContext:openGLContext.CGLContextObj options: nil];
lRenderer.scene = self.sceneView.scene;
lRenderer.pointOfView = [self.sceneView.pointOfView clone];
[ lRenderer render ];
나는 관점의 복제가 렌더러가 SCNView가 작동하는 것과 같은 방식으로 장면을 렌더링하게 발견이 코드의 관련 비트입니다. 지금까지 완벽 해.
이제 시점을 조정하고 싶습니다.
lRenderer.pointOfView.rotation = SCNVector4Make(1,1,1,M_PI_2);
[lRenderer render]
를 호출하기 전에이는 일을 변경하지 않습니다 : 예를 들어, 내가 씬 뷰의 독립적 인 무언가에 회전을 설정하려는, 나는 수행의 그래서 0을 가정 해 봅시다.
lRenderer.pointOfView에서 변경 한 모든 속성은 중요하지 않습니다. 하지만, 라인 lRenderer.pointOfView = [self.sceneView.pointOfView clone]
을 생략하면 렌더러는 self.sceneView의 관점 대신 기본 시점에서 렌더링되므로 복제 된 SCNNode에는 효과가있는 lRenderer.pointOfView에서 변경할 수있는 무언가가 있어야합니까?
당신은 아마 의미'[lRenderer.scene.rootNode addChildNode : lRenderer.pointOfView]'맞죠? self.scene에는 pointOfView 멤버가 없으며 SCNScene 유형입니다. –
호 아니, 내가 의미 [self.sceneView.pointOfView addChildNode : anotherPointOfView]; 참으로 트릭을하는 것으로 보이는 – toyos
을 수정했습니다. 감사! –