Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
864 changes: 783 additions & 81 deletions build/three.cjs

Large diffs are not rendered by default.

15 changes: 15 additions & 0 deletions build/three.core.js
Original file line number Diff line number Diff line change
Expand Up @@ -47613,6 +47613,21 @@ class ObjectLoader extends Loader {
geometry = bufferGeometryLoader.parse( data );
break;

case 'Geometry':

if ( 'THREE' in window && 'LegacyJSONLoader' in THREE ) {

var geometryLoader = new THREE.LegacyJSONLoader();
geometry = geometryLoader.parse( data, this.resourcePath ).geometry;


} else {

console.error( 'THREE.ObjectLoader: You have to import LegacyJSONLoader in order load geometry data of type "Geometry".' );

}
break;

default:

if ( data.type in Geometries ) {
Expand Down
2 changes: 1 addition & 1 deletion build/three.core.min.js

Large diffs are not rendered by default.

855 changes: 771 additions & 84 deletions build/three.module.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion build/three.module.min.js

Large diffs are not rendered by default.

25 changes: 23 additions & 2 deletions examples/jsm/postprocessing/EffectComposer.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ import { ClearMaskPass, MaskPass } from './MaskPass.js';
*
* @three_import import { EffectComposer } from 'three/addons/postprocessing/EffectComposer.js';
*/
const size = /* @__PURE__ */ new Vector2();

class EffectComposer {

/**
Expand All @@ -62,7 +64,7 @@ class EffectComposer {

if ( renderTarget === undefined ) {

const size = renderer.getSize( new Vector2() );
renderer.getSize( size );
this._width = size.width;
this._height = size.height;

Expand Down Expand Up @@ -128,6 +130,22 @@ class EffectComposer {
*/
this.clock = new Clock();

this.onSessionStateChange = this.onSessionStateChange.bind( this );
this.renderer.xr.addEventListener( 'sessionstart', this.onSessionStateChange );
this.renderer.xr.addEventListener( 'sessionend', this.onSessionStateChange );

}

onSessionStateChange() {

this.renderer.getSize( size );
this._width = size.width;
this._height = size.height;

this._pixelRatio = this.renderer.xr.isPresenting ? 1 : this.renderer.getPixelRatio();

this.setSize( this._width, this._height );

}

/**
Expand Down Expand Up @@ -285,7 +303,7 @@ class EffectComposer {

if ( renderTarget === undefined ) {

const size = this.renderer.getSize( new Vector2() );
this.renderer.getSize( size );
this._pixelRatio = this.renderer.getPixelRatio();
this._width = size.width;
this._height = size.height;
Expand Down Expand Up @@ -356,6 +374,9 @@ class EffectComposer {

this.copyPass.dispose();

this.renderer.xr.removeEventListener( 'sessionstart', this.onSessionStateChange );
this.renderer.xr.removeEventListener( 'sessionend', this.onSessionStateChange );

}

}
Expand Down
7 changes: 6 additions & 1 deletion examples/jsm/postprocessing/Pass.js
Original file line number Diff line number Diff line change
Expand Up @@ -165,8 +165,13 @@ class FullScreenQuad {
*/
render( renderer ) {

renderer.render( this._mesh, _camera );
// Disable XR projection for fullscreen effects
// https://github.com/mrdoob/three.js/pull/18846
const xrEnabled = renderer.xr.enabled;

renderer.xr.enabled = false;
renderer.render( this._mesh, _camera );
renderer.xr.enabled = xrEnabled;
}

/**
Expand Down
2 changes: 1 addition & 1 deletion examples/webxr_xr_ballshooter.html
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@

//

renderer = new THREE.WebGLRenderer( { antialias: true } );
renderer = new THREE.WebGLRenderer( { antialias: true, multiviewStereo: true } );
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
renderer.setAnimationLoop( animate );
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "three",
"name": "super-three",
"version": "0.177.0",
"description": "JavaScript 3D library",
"type": "module",
Expand All @@ -20,7 +20,7 @@
},
"repository": {
"type": "git",
"url": "https://github.com/mrdoob/three.js"
"url": "supermedium/three.js"
},
"sideEffects": [
"./src/nodes/**/*"
Expand Down
15 changes: 15 additions & 0 deletions src/loaders/ObjectLoader.js
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,21 @@ class ObjectLoader extends Loader {
geometry = bufferGeometryLoader.parse( data );
break;

case 'Geometry':

if ( 'THREE' in window && 'LegacyJSONLoader' in THREE ) {

var geometryLoader = new THREE.LegacyJSONLoader();
geometry = geometryLoader.parse( data, this.resourcePath ).geometry;


} else {

console.error( 'THREE.ObjectLoader: You have to import LegacyJSONLoader in order load geometry data of type "Geometry".' );

}
break;

default:

if ( data.type in Geometries ) {
Expand Down
35 changes: 35 additions & 0 deletions src/renderers/WebGLMultiviewRenderTarget.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
/**
* @author fernandojsg / http://fernandojsg.com
* @author Takahiro https://github.com/takahirox
*/

import { WebGLRenderTarget } from './WebGLRenderTarget.js';

class WebGLMultiviewRenderTarget extends WebGLRenderTarget {

constructor( width, height, numViews, options = {} ) {

super( width, height, options );

this.depthBuffer = false;
this.stencilBuffer = false;

this.numViews = numViews;

}

copy( source ) {

super.copy( source );

this.numViews = source.numViews;

return this;

}

}

WebGLMultiviewRenderTarget.prototype.isWebGLMultiviewRenderTarget = true;

export { WebGLMultiviewRenderTarget };
Loading