Skip to content

Commit

Permalink
Revert getCamera() removal (#26350)
Browse files Browse the repository at this point in the history
* Revert getCamera() removal.

* Updated webxr_vr_handinput_pressbutton screenshot.
  • Loading branch information
mrdoob committed Jun 29, 2023
1 parent 2c2c671 commit fdef0f8
Show file tree
Hide file tree
Showing 10 changed files with 50 additions and 58 deletions.
Binary file modified examples/screenshots/webxr_vr_handinput_pointerclick.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified examples/screenshots/webxr_vr_handinput_pointerdrag.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified examples/screenshots/webxr_vr_handinput_pressbutton.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified examples/screenshots/webxr_vr_rollercoaster.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 7 additions & 4 deletions examples/webxr_vr_handinput_pointerclick.html
Original file line number Diff line number Diff line change
Expand Up @@ -254,9 +254,10 @@

const offset = entity.getComponent( OffsetFromCamera );
const object = entity.getComponent( Object3D ).object;
object.position.x = camera.position.x + offset.x;
object.position.y = camera.position.y + offset.y;
object.position.z = camera.position.z + offset.z;
const xrCamera = this.renderer.xr.getCamera();
object.position.x = xrCamera.position.x + offset.x;
object.position.y = xrCamera.position.y + offset.y;
object.position.z = xrCamera.position.z + offset.z;
entity.removeComponent( NeedCalibration );

}
Expand Down Expand Up @@ -320,7 +321,8 @@
renderer.useLegacyLights = false;
renderer.shadowMap.enabled = true;
renderer.xr.enabled = true;
renderer.xr.setUserCamera( camera );
renderer.xr.cameraAutoUpdate = false;

container.appendChild( renderer.domElement );

document.body.appendChild( VRButton.createButton( renderer ) );
Expand Down Expand Up @@ -515,6 +517,7 @@

const delta = clock.getDelta();
const elapsedTime = clock.elapsedTime;
renderer.xr.updateCamera( camera );
world.execute( delta, elapsedTime );
renderer.render( scene, camera );

Expand Down
11 changes: 7 additions & 4 deletions examples/webxr_vr_handinput_pointerdrag.html
Original file line number Diff line number Diff line change
Expand Up @@ -310,9 +310,10 @@

const offset = entity.getComponent( OffsetFromCamera );
const object = entity.getComponent( Object3D ).object;
object.position.x = camera.position.x + offset.x;
object.position.y = camera.position.y + offset.y;
object.position.z = camera.position.z + offset.z;
const xrCamera = this.renderer.xr.getCamera();
object.position.x = xrCamera.position.x + offset.x;
object.position.y = xrCamera.position.y + offset.y;
object.position.z = xrCamera.position.z + offset.z;
entity.removeComponent( NeedCalibration );

}
Expand Down Expand Up @@ -423,7 +424,8 @@
renderer.useLegacyLights = false;
renderer.shadowMap.enabled = true;
renderer.xr.enabled = true;
renderer.xr.setUserCamera( camera );
renderer.xr.cameraAutoUpdate = false;

container.appendChild( renderer.domElement );

document.body.appendChild( VRButton.createButton( renderer ) );
Expand Down Expand Up @@ -593,6 +595,7 @@

const delta = clock.getDelta();
const elapsedTime = clock.elapsedTime;
renderer.xr.updateCamera( camera );
world.execute( delta, elapsedTime );
renderer.render( scene, camera );

Expand Down
21 changes: 12 additions & 9 deletions examples/webxr_vr_handinput_pressbutton.html
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,11 @@
let buttonPressSound, buttonReleaseSound;
if ( this.renderer.xr.getSession() && ! this.soundAdded ) {

const xrCamera = this.renderer.xr.getCamera();

const listener = new THREE.AudioListener();
xrCamera.add( listener );

// create a global audio source
buttonPressSound = new THREE.Audio( listener );
buttonReleaseSound = new THREE.Audio( listener );
Expand Down Expand Up @@ -309,9 +314,10 @@

const offset = entity.getComponent( OffsetFromCamera );
const object = entity.getComponent( Object3D ).object;
object.position.x = camera.position.x + offset.x;
object.position.y = camera.position.y + offset.y;
object.position.z = camera.position.z + offset.z;
const xrCamera = this.renderer.xr.getCamera();
object.position.x = xrCamera.position.x + offset.x;
object.position.y = xrCamera.position.y + offset.y;
object.position.z = xrCamera.position.z + offset.z;
entity.removeComponent( NeedCalibration );

}
Expand All @@ -330,9 +336,7 @@

const world = new World();
const clock = new THREE.Clock();

let camera, scene, renderer;
let listener;

init();
animate();
Expand All @@ -359,9 +363,6 @@
camera = new THREE.PerspectiveCamera( 50, window.innerWidth / window.innerHeight, 0.1, 10 );
camera.position.set( 0, 1.2, 0.3 );

listener = new THREE.AudioListener();
camera.add( listener );

scene.add( new THREE.HemisphereLight( 0xcccccc, 0x999999, 3 ) );

const light = new THREE.DirectionalLight( 0xffffff, 3 );
Expand All @@ -380,7 +381,8 @@
renderer.useLegacyLights = false;
renderer.shadowMap.enabled = true;
renderer.xr.enabled = true;
renderer.xr.setUserCamera( camera );
renderer.xr.cameraAutoUpdate = false;

container.appendChild( renderer.domElement );

document.body.appendChild( VRButton.createButton( renderer ) );
Expand Down Expand Up @@ -572,6 +574,7 @@

const delta = clock.getDelta();
const elapsedTime = clock.elapsedTime;
renderer.xr.updateCamera( camera );
world.execute( delta, elapsedTime );
renderer.render( scene, camera );

Expand Down
21 changes: 10 additions & 11 deletions examples/webxr_vr_rollercoaster.html
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,16 @@

let mesh, material, geometry;

const renderer = new THREE.WebGLRenderer( { antialias: true } );
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
renderer.useLegacyLights = false;
renderer.xr.enabled = true;
renderer.xr.setReferenceSpaceType( 'local' );
document.body.appendChild( renderer.domElement );

document.body.appendChild( VRButton.createButton( renderer ) );

//

const scene = new THREE.Scene();
Expand Down Expand Up @@ -179,17 +189,6 @@

//

const renderer = new THREE.WebGLRenderer( { antialias: true } );
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
renderer.useLegacyLights = false;
renderer.xr.enabled = true;
renderer.xr.setReferenceSpaceType( 'local' );
renderer.xr.setUserCamera( camera );
document.body.appendChild( renderer.domElement );

document.body.appendChild( VRButton.createButton( renderer ) );

window.addEventListener( 'resize', onWindowResize );

function onWindowResize() {
Expand Down
4 changes: 3 additions & 1 deletion src/renderers/WebGLRenderer.js
Original file line number Diff line number Diff line change
Expand Up @@ -1054,7 +1054,9 @@ class WebGLRenderer {

if ( xr.enabled === true && xr.isPresenting === true ) {

camera = xr.updateCameraXR( camera ); // use XR camera for rendering
if ( xr.cameraAutoUpdate === true ) xr.updateCamera( camera );

camera = xr.getCamera(); // use XR camera for rendering

}

Expand Down
40 changes: 11 additions & 29 deletions src/renderers/webxr/WebXRManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,6 @@ class WebXRManager extends EventDispatcher {

//

let userCamera = null;

const cameraL = new PerspectiveCamera();
cameraL.layers.enable( 1 );
cameraL.viewport = new Vector4();
Expand All @@ -63,19 +61,11 @@ class WebXRManager extends EventDispatcher {

//

this.cameraAutoUpdate = true; // @deprecated, r153
this.cameraAutoUpdate = true;
this.enabled = false;

this.isPresenting = false;

this.getCamera = function () {}; // @deprecated, r153

this.setUserCamera = function ( value ) {

userCamera = value;

};

this.getController = function ( index ) {

let controller = controllers[ index ];
Expand Down Expand Up @@ -512,15 +502,9 @@ class WebXRManager extends EventDispatcher {

}

this.updateCameraXR = function ( camera ) {
this.updateCamera = function ( camera ) {

if ( session === null ) return camera;

if ( userCamera ) {

camera = userCamera;

}
if ( session === null ) return;

cameraXR.near = cameraR.near = cameraL.near = camera.near;
cameraXR.far = cameraR.far = cameraL.far = camera.far;
Expand Down Expand Up @@ -566,19 +550,11 @@ class WebXRManager extends EventDispatcher {

// update user camera and its children

if ( userCamera ) {

updateUserCamera( cameraXR, parent );

}

return cameraXR;
updateUserCamera( camera, cameraXR, parent );

};

function updateUserCamera( cameraXR, parent ) {

const camera = userCamera;
function updateUserCamera( camera, cameraXR, parent ) {

if ( parent === null ) {

Expand Down Expand Up @@ -615,6 +591,12 @@ class WebXRManager extends EventDispatcher {

}

this.getCamera = function () {

return cameraXR;

};

this.getFoveation = function () {

if ( glProjLayer === null && glBaseLayer === null ) {
Expand Down

0 comments on commit fdef0f8

Please sign in to comment.