Add WebVRManager, ArrayCamera support (#22900)

This commit is contained in:
spacejack
2018-01-17 12:49:36 -05:00
committed by Wesley Wigham
parent 1df22278c5
commit 2e11609c20
3 changed files with 35 additions and 2 deletions

View File

@@ -0,0 +1,13 @@
// WebVRManager support
() => {
const renderer = new THREE.WebGLRenderer();
renderer.vr.enabled = true;
const camera = new THREE.PerspectiveCamera();
const vrCamera = renderer.vr.getCamera(camera);
const display: VRDisplay = renderer.vr.getDevice();
renderer.vr.setDevice(display);
const obj = new THREE.Object3D();
renderer.vr.setPoseTarget(obj);
renderer.vr.dispose();
}

View File

@@ -656,6 +656,13 @@ export class StereoCamera extends Camera {
update(camera: PerspectiveCamera): void;
}
export class ArrayCamera extends PerspectiveCamera {
constructor(cameras?: PerspectiveCamera[]);
cameras: PerspectiveCamera[];
isArrayCamera: true;
}
// Core ///////////////////////////////////////////////////////////////////////////////////////////////
/**
@@ -5134,6 +5141,8 @@ export class WebGLRenderer implements Renderer {
state: WebGLState;
allocTextureUnit: any;
vr: WebVRManager;
/**
* Return the WebGL context.
*/
@@ -7077,3 +7086,13 @@ export class MorphBlendMesh extends Mesh {
stopAnimation(name: string): void;
update(delta: number): void;
}
export interface WebVRManager {
enabled: boolean;
getDevice(): VRDisplay | null;
setDevice(device: VRDisplay | null): void;
setPoseTarget(object: Object3D | null): void;
getCamera(camera: PerspectiveCamera): PerspectiveCamera | ArrayCamera;
submitFrame(): void;
dispose(): void;
}

View File

@@ -54,6 +54,7 @@
"test/examples/controls/vrcontrols.ts",
"test/examples/ctm/ctmloader.ts",
"test/examples/octree.ts",
"test/examples/loaders/webgl_loader_obj_mtl.ts"
"test/examples/loaders/webgl_loader_obj_mtl.ts",
"test/webvr/webvr.ts"
]
}
}