|
@@ -9,19 +9,17 @@ var APP = {
|
|
|
var loader = new THREE.ObjectLoader();
|
|
|
var camera, scene, renderer;
|
|
|
|
|
|
- var controls, effect, cameraVR, isVR;
|
|
|
-
|
|
|
var events = {};
|
|
|
|
|
|
- this.dom = document.createElement( 'div' );
|
|
|
+ var dom = document.createElement( 'div' );
|
|
|
+
|
|
|
+ this.dom = dom;
|
|
|
|
|
|
this.width = 500;
|
|
|
this.height = 500;
|
|
|
|
|
|
this.load = function ( json ) {
|
|
|
|
|
|
- isVR = json.project.vr;
|
|
|
-
|
|
|
renderer = new THREE.WebGLRenderer( { antialias: true } );
|
|
|
renderer.setClearColor( 0x000000 );
|
|
|
renderer.setPixelRatio( window.devicePixelRatio );
|
|
@@ -36,7 +34,13 @@ var APP = {
|
|
|
|
|
|
}
|
|
|
|
|
|
- this.dom.appendChild( renderer.domElement );
|
|
|
+ if ( json.project.vr ) {
|
|
|
+
|
|
|
+ renderer.vr.enabled = true;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ dom.appendChild( renderer.domElement );
|
|
|
|
|
|
this.setScene( loader.parse( json.scene ) );
|
|
|
this.setCamera( loader.parse( json.camera ) );
|
|
@@ -116,26 +120,20 @@ var APP = {
|
|
|
camera.aspect = this.width / this.height;
|
|
|
camera.updateProjectionMatrix();
|
|
|
|
|
|
- if ( isVR === true ) {
|
|
|
+ if ( renderer.vr.enabled ) {
|
|
|
|
|
|
- cameraVR = new THREE.PerspectiveCamera();
|
|
|
- cameraVR.projectionMatrix = camera.projectionMatrix;
|
|
|
- camera.add( cameraVR );
|
|
|
+ WEBVR.checkAvailability().catch( function( message ) {
|
|
|
|
|
|
- controls = new THREE.VRControls( cameraVR );
|
|
|
- effect = new THREE.VREffect( renderer );
|
|
|
+ dom.appendChild( WEBVR.getMessageContainer( message ) );
|
|
|
|
|
|
- if ( WEBVR.isAvailable() === true ) {
|
|
|
+ } );
|
|
|
|
|
|
- this.dom.appendChild( WEBVR.getButton( effect ) );
|
|
|
-
|
|
|
- }
|
|
|
+ WEBVR.getVRDisplay( function ( device ) {
|
|
|
|
|
|
- if ( WEBVR.isLatestAvailable() === false ) {
|
|
|
+ renderer.vr.setDevice( device );
|
|
|
+ dom.appendChild( WEBVR.getButton( device, renderer.domElement ) );
|
|
|
|
|
|
- this.dom.appendChild( WEBVR.getMessage() );
|
|
|
-
|
|
|
- }
|
|
|
+ } );
|
|
|
|
|
|
}
|
|
|
|
|
@@ -193,18 +191,7 @@ var APP = {
|
|
|
|
|
|
}
|
|
|
|
|
|
- if ( isVR === true ) {
|
|
|
-
|
|
|
- camera.updateMatrixWorld();
|
|
|
-
|
|
|
- controls.update();
|
|
|
- effect.render( scene, cameraVR );
|
|
|
-
|
|
|
- } else {
|
|
|
-
|
|
|
- renderer.render( scene, camera );
|
|
|
-
|
|
|
- }
|
|
|
+ renderer.render( scene, camera );
|
|
|
|
|
|
prevTime = time;
|
|
|
|
|
@@ -247,9 +234,9 @@ var APP = {
|
|
|
|
|
|
this.dispose = function () {
|
|
|
|
|
|
- while ( this.dom.children.length ) {
|
|
|
+ while ( dom.children.length ) {
|
|
|
|
|
|
- this.dom.removeChild( this.dom.firstChild );
|
|
|
+ dom.removeChild( dom.firstChild );
|
|
|
|
|
|
}
|
|
|
|