diff --git a/editor/index.html b/editor/index.html index a4f60529b37cbe8f8213ed5ed018e950d631d01b..6f9d718cdcd6a6636f8e647b7e6c5730d603d805 100644 --- a/editor/index.html +++ b/editor/index.html @@ -85,8 +85,6 @@ - - @@ -392,51 +390,6 @@ }, false ); */ - // VR - - var groupVR; - - // TODO: Use editor.signals.enteredVR (WebVR 1.0) - - editor.signals.enterVR.add( function () { - - if ( groupVR === undefined ) { - - groupVR = new THREE.HTMLGroup( viewport.dom ); - editor.sceneHelpers.add( groupVR ); - - var mesh = new THREE.HTMLMesh( sidebar.dom ); - mesh.position.set( 15, 0, 15 ); - mesh.rotation.y = - 0.5; - groupVR.add( mesh ); - - var signals = editor.signals; - - function updateTexture() { - - mesh.material.map.update(); - - } - - signals.objectSelected.add( updateTexture ); - signals.objectAdded.add( updateTexture ); - signals.objectChanged.add( updateTexture ); - signals.objectRemoved.add( updateTexture ); - signals.sceneGraphChanged.add( updateTexture ); - signals.historyChanged.add( updateTexture ); - - } - - groupVR.visible = true; - - } ); - - editor.signals.exitedVR.add( function () { - - if ( groupVR !== undefined ) groupVR.visible = false; - - } ); - diff --git a/editor/js/Editor.js b/editor/js/Editor.js index 41172d3451e092bbb7da17bae31a4bb3b4c67f05..1ffba507b612e2802b797655df5cbc24ddfae6f9 100644 --- a/editor/js/Editor.js +++ b/editor/js/Editor.js @@ -22,13 +22,6 @@ var Editor = function () { startPlayer: new Signal(), stopPlayer: new Signal(), - // vr - - enterVR: new Signal(), - - enteredVR: new Signal(), - exitedVR: new Signal(), - // actions showModal: new Signal(), diff --git a/editor/js/Menubar.File.js b/editor/js/Menubar.File.js index de004ebb4cc6b4a36c9da63b2b024323ee7cdc97..3e529174b5b0b623e5d19409ebb4227968ae5d1b 100644 --- a/editor/js/Menubar.File.js +++ b/editor/js/Menubar.File.js @@ -273,8 +273,6 @@ Menubar.File = function ( editor ) { if ( vr ) { - includes.push( '' ); - includes.push( '' ); includes.push( '' ); } @@ -297,19 +295,7 @@ Menubar.File = function ( editor ) { if ( vr ) { - loader.load( '../examples/js/controls/VRControls.js', function ( content ) { - - zip.file( 'js/VRControls.js', content ); - - } ); - - loader.load( '../examples/js/effects/VREffect.js', function ( content ) { - - zip.file( 'js/VREffect.js', content ); - - } ); - - loader.load( '../examples/js/WebVR.js', function ( content ) { + loader.load( '../examples/js/vr/WebVR.js', function ( content ) { zip.file( 'js/WebVR.js', content ); diff --git a/editor/js/Viewport.js b/editor/js/Viewport.js index 7cfb034ce798f372e89170ca7a5aa328b79164ff..8d7330e4ce24a5f80199935aaaadf56119c4372e 100644 --- a/editor/js/Viewport.js +++ b/editor/js/Viewport.js @@ -22,18 +22,6 @@ var Viewport = function ( editor ) { var objects = []; - // - - var vrEffect, vrControls; - - if ( WEBVR.isAvailable() === true ) { - - var vrCamera = new THREE.PerspectiveCamera(); - vrCamera.projectionMatrix = camera.projectionMatrix; - camera.add( vrCamera ); - - } - // helpers var grid = new THREE.GridHelper( 60, 60 ); @@ -283,12 +271,6 @@ var Viewport = function ( editor ) { } ); - signals.enterVR.add( function () { - - vrEffect.isPresenting ? vrEffect.exitPresent() : vrEffect.requestPresent(); - - } ); - signals.themeChanged.add( function ( value ) { switch ( value ) { @@ -345,19 +327,6 @@ var Viewport = function ( editor ) { container.dom.appendChild( renderer.domElement ); - if ( WEBVR.isAvailable() === true ) { - - vrControls = new THREE.VRControls( vrCamera ); - vrEffect = new THREE.VREffect( renderer ); - - window.addEventListener( 'vrdisplaypresentchange', function ( event ) { - - effect.isPresenting ? signals.enteredVR.dispatch() : signals.exitedVR.dispatch(); - - }, false ); - - } - render(); } ); @@ -557,49 +526,21 @@ var Viewport = function ( editor ) { // - function animate() { - - requestAnimationFrame( animate ); - - if ( vrEffect && vrEffect.isPresenting ) { - - render(); - - } - - } - function render() { sceneHelpers.updateMatrixWorld(); scene.updateMatrixWorld(); - if ( vrEffect && vrEffect.isPresenting ) { + renderer.render( scene, camera ); - vrControls.update(); + if ( renderer instanceof THREE.RaytracingRenderer === false ) { - camera.updateMatrixWorld(); - - vrEffect.render( scene, vrCamera ); - vrEffect.render( sceneHelpers, vrCamera ); - - } else { - - renderer.render( scene, camera ); - - if ( renderer instanceof THREE.RaytracingRenderer === false ) { - - renderer.render( sceneHelpers, camera ); - - } + renderer.render( sceneHelpers, camera ); } - } - requestAnimationFrame( animate ); - return container; }; diff --git a/editor/js/libs/app.js b/editor/js/libs/app.js index 6acec01426c57fb6505eb9e2b1c11c2d147cf2ae..e271a99a28104fadd0d896ab2d351062918c9b34 100644 --- a/editor/js/libs/app.js +++ b/editor/js/libs/app.js @@ -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 ); }