diff --git a/js/Events.js b/js/Events.js index 368eb25..6390ffa 100644 --- a/js/Events.js +++ b/js/Events.js @@ -20,16 +20,17 @@ var onResize = function(){ console.log(controller.inspect()); controller.addEventListener('primary press began', function(){ g_controllerMove = true; }); controller.addEventListener('primary press ended', function(){ g_controllerMove = false; }); + g_material.uniforms.controllerCount.value++; //This only works for OpenVR controllers //For example the oculus uses thumbstick instead of thumbpad controller.addEventListener('thumbpad axes changed', function(event){ var HueSat = axesToHueSat(event.axes); - console.log(HueSat); + //console.log(HueSat); if(HueSat.x !== 0.5 && HueSat.y !== 0){ var HSV = new THREE.Vector3(HueSat.x, HueSat.y, 1.0); var RGB = HSVtoRGB(HSV); - lightIntensities[event.target.gamepad.index + 4] = new THREE.Vector4(RGB.x, RGB.y, RGB.z, 2.0); + lightIntensities[4] = new THREE.Vector4(RGB.x, RGB.y, RGB.z, 2.0); } }); } @@ -78,6 +79,10 @@ var onResize = function(){ document.body.addEventListener('click', function(event){ if(event.target.id === "vr-icon"){ event.target.style.display = "none"; + if (navigator.getVRDisplays) navigator.getVRDisplays().then( g_effect.gotVRDisplay ); + else if ( navigator.getVRDevices ) navigator.getVRDevices().then( g_effect.gotVRDevices ); + else navigator.mozGetVRDevices( g_effect.gotVRDevices ); + } }); diff --git a/js/HyperSpace.js b/js/HyperSpace.js index 195ec40..0556a84 100644 --- a/js/HyperSpace.js +++ b/js/HyperSpace.js @@ -171,7 +171,6 @@ var initLights = function(g){ PointLightObject(g, new THREE.Vector3(0,-1.1,0), new THREE.Vector4(1,1,1,1)); //Add light info for controllers lightIntensities.push(new THREE.Vector4(0.49, 0.28, 1.0, 2)); - lightIntensities.push(new THREE.Vector4(1.0, 0.404, 0.19, 2)); } //------------------------------------------------------- @@ -188,9 +187,8 @@ var initObjects = function(g){ invGlobalObjectBoosts = []; globalObjectRadii = []; globalObjectTypes = []; - SphereObject(g, new THREE.Vector3(-0.5,0,0), 0.2); // geometry, position, radius/radii - SphereObject(g, new THREE.Vector3(0.5,0,0), 0.05); //radii must be less than one! - for(var i = 2; i<4; i++){ // We need to fill out our arrays with empty objects for glsl to be happy + SphereObject(g, new THREE.Vector3(0,-0.7,0), 0.2); // geometry, position, radius/radii + for(var i = 1; i<4; i++){ // We need to fill out our arrays with empty objects for glsl to be happy EmptyObject(); } } diff --git a/shaders/fragment.glsl b/shaders/fragment.glsl index 1d88f82..ccf6fe3 100644 --- a/shaders/fragment.glsl +++ b/shaders/fragment.glsl @@ -3,7 +3,7 @@ float globalSceneSDF(vec4 samplePoint, mat4 globalTransMatrix, bool collideWithL float distance = maxDist; if(collideWithLights){ //Light Objects - for(int i=0; i 1 ? 'button_1' : 'button_0' - buttons.byName[ buttonNamePrimary ].isPrimary = true + //buttons.byName[ buttonNamePrimary ].isPrimary = true // Let’s make some getters! this.getHandedness = function(){ @@ -297,7 +297,6 @@ THREE.VRController.prototype.update = function(){ g_controllerDualPoints[5] = hyperPos.geometryDirection(g_geometry, hyperPos.applyMatrix4(translateByVector(g_geometry, new THREE.Vector3(0.0, 0.0, 0.1)))); }*/ - g_material.uniforms.controllerCount.value = this.controllers.length; this.pollForChanges() this.applyVibes() if( typeof this.updateCallback === 'function' ) this.updateCallback() @@ -420,7 +419,7 @@ THREE.VRController.onGamepadDisconnect = function( gamepad ){ THREE.VRController.update = function(){ var gamepads, gamepad, i - + if( navigator.getGamepads === undefined ) return gamepads = navigator.getGamepads() for( i = 0; i < gamepads.length; i ++ ){ diff --git a/vr/VREffect.js b/vr/VREffect.js index 84ee9f7..8c2466d 100644 --- a/vr/VREffect.js +++ b/vr/VREffect.js @@ -54,9 +54,9 @@ THREE.VREffect = function ( renderer, done ) { return; } - if (navigator.getVRDisplays) navigator.getVRDisplays().then( gotVRDisplay ); - else if ( navigator.getVRDevices ) navigator.getVRDevices().then( gotVRDevices ); - else navigator.mozGetVRDevices( gotVRDevices ); + //if (navigator.getVRDisplays) navigator.getVRDisplays().then( gotVRDisplay ); + //else if ( navigator.getVRDevices ) navigator.getVRDevices().then( gotVRDevices ); + //else navigator.mozGetVRDevices( gotVRDevices ); if(self.leftEyeTranslation.x == undefined){ //we need these to be objects instead of arrays in order to process the information correctly @@ -67,7 +67,7 @@ THREE.VREffect = function ( renderer, done ) { self.getEyeRotation(self.leftEyeTranslation.x); } - function gotVRDisplay( devices ) { + this.gotVRDisplay = function( devices ) { var vrHMD; var error; for ( var i = 0; i < devices.length; ++i ) { @@ -83,6 +83,7 @@ THREE.VREffect = function ( renderer, done ) { document.getElementById("crosshair").style.visibility = 'hidden'; guiInfo.toggleStereo = true; self.getEyeRotation(self.leftEyeTranslation.x); + g_material.uniforms.isStereo.value = 1; break; // We keep the first we encounter } } @@ -93,7 +94,7 @@ THREE.VREffect = function ( renderer, done ) { } } - function gotVRDevices( devices ) { + this.gotVRDevices = function( devices ) { var vrHMD; var error; for ( var i = 0; i < devices.length; ++i ) { @@ -129,12 +130,13 @@ THREE.VREffect = function ( renderer, done ) { var vrHMD = this._vrHMD; // VR render mode if HMD is available if ( vrHMD ) { - g_material.uniforms.isStereo.value = 1; vrHMD.requestAnimationFrame(animate); + renderer.render.apply( this._renderer, [scene, camera] ); if (vrHMD.submitFrame !== undefined && this._vrMode) { // vrHMD.getAnimationFrame(frameData); vrHMD.submitFrame(); } + return; } requestAnimationFrame(animate);