|
@@ -4,58 +4,68 @@ import { PerspectiveCamera } from './PerspectiveCamera.js';
|
|
|
|
|
|
const fov = 90, aspect = 1;
|
|
const fov = 90, aspect = 1;
|
|
|
|
|
|
-function CubeCamera( near, far, renderTarget ) {
|
|
|
|
|
|
+class CubeCamera extends Object3D {
|
|
|
|
|
|
- Object3D.call( this );
|
|
|
|
|
|
+ constructor( near, far, renderTarget ) {
|
|
|
|
|
|
- this.type = 'CubeCamera';
|
|
|
|
|
|
+ super();
|
|
|
|
|
|
- if ( renderTarget.isWebGLCubeRenderTarget !== true ) {
|
|
|
|
|
|
+ this.type = 'CubeCamera';
|
|
|
|
|
|
- console.error( 'THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.' );
|
|
|
|
- return;
|
|
|
|
|
|
+ if ( renderTarget.isWebGLCubeRenderTarget !== true ) {
|
|
|
|
+
|
|
|
|
+ console.error( 'THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.' );
|
|
|
|
+ return;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ this.renderTarget = renderTarget;
|
|
|
|
+
|
|
|
|
+ const cameraPX = new PerspectiveCamera( fov, aspect, near, far );
|
|
|
|
+ cameraPX.layers = this.layers;
|
|
|
|
+ cameraPX.up.set( 0, - 1, 0 );
|
|
|
|
+ cameraPX.lookAt( new Vector3( 1, 0, 0 ) );
|
|
|
|
+ this.cameraPX = cameraPX;
|
|
|
|
+ this.add( cameraPX );
|
|
|
|
+
|
|
|
|
+ const cameraNX = new PerspectiveCamera( fov, aspect, near, far );
|
|
|
|
+ cameraNX.layers = this.layers;
|
|
|
|
+ cameraNX.up.set( 0, - 1, 0 );
|
|
|
|
+ cameraNX.lookAt( new Vector3( - 1, 0, 0 ) );
|
|
|
|
+ this.cameraNX = cameraNX;
|
|
|
|
+ this.add( cameraNX );
|
|
|
|
+
|
|
|
|
+ const cameraPY = new PerspectiveCamera( fov, aspect, near, far );
|
|
|
|
+ cameraPY.layers = this.layers;
|
|
|
|
+ cameraPY.up.set( 0, 0, 1 );
|
|
|
|
+ cameraPY.lookAt( new Vector3( 0, 1, 0 ) );
|
|
|
|
+ this.cameraPY = cameraPY;
|
|
|
|
+ this.add( cameraPY );
|
|
|
|
+
|
|
|
|
+ const cameraNY = new PerspectiveCamera( fov, aspect, near, far );
|
|
|
|
+ cameraNY.layers = this.layers;
|
|
|
|
+ cameraNY.up.set( 0, 0, - 1 );
|
|
|
|
+ cameraNY.lookAt( new Vector3( 0, - 1, 0 ) );
|
|
|
|
+ this.cameraNY = cameraNY;
|
|
|
|
+ this.add( cameraNY );
|
|
|
|
+
|
|
|
|
+ const cameraPZ = new PerspectiveCamera( fov, aspect, near, far );
|
|
|
|
+ cameraPZ.layers = this.layers;
|
|
|
|
+ cameraPZ.up.set( 0, - 1, 0 );
|
|
|
|
+ cameraPZ.lookAt( new Vector3( 0, 0, 1 ) );
|
|
|
|
+ this.cameraPZ = cameraPZ;
|
|
|
|
+ this.add( cameraPZ );
|
|
|
|
+
|
|
|
|
+ const cameraNZ = new PerspectiveCamera( fov, aspect, near, far );
|
|
|
|
+ cameraNZ.layers = this.layers;
|
|
|
|
+ cameraNZ.up.set( 0, - 1, 0 );
|
|
|
|
+ cameraNZ.lookAt( new Vector3( 0, 0, - 1 ) );
|
|
|
|
+ this.cameraNZ = cameraNZ;
|
|
|
|
+ this.add( cameraNZ );
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- this.renderTarget = renderTarget;
|
|
|
|
-
|
|
|
|
- const cameraPX = new PerspectiveCamera( fov, aspect, near, far );
|
|
|
|
- cameraPX.layers = this.layers;
|
|
|
|
- cameraPX.up.set( 0, - 1, 0 );
|
|
|
|
- cameraPX.lookAt( new Vector3( 1, 0, 0 ) );
|
|
|
|
- this.add( cameraPX );
|
|
|
|
-
|
|
|
|
- const cameraNX = new PerspectiveCamera( fov, aspect, near, far );
|
|
|
|
- cameraNX.layers = this.layers;
|
|
|
|
- cameraNX.up.set( 0, - 1, 0 );
|
|
|
|
- cameraNX.lookAt( new Vector3( - 1, 0, 0 ) );
|
|
|
|
- this.add( cameraNX );
|
|
|
|
-
|
|
|
|
- const cameraPY = new PerspectiveCamera( fov, aspect, near, far );
|
|
|
|
- cameraPY.layers = this.layers;
|
|
|
|
- cameraPY.up.set( 0, 0, 1 );
|
|
|
|
- cameraPY.lookAt( new Vector3( 0, 1, 0 ) );
|
|
|
|
- this.add( cameraPY );
|
|
|
|
-
|
|
|
|
- const cameraNY = new PerspectiveCamera( fov, aspect, near, far );
|
|
|
|
- cameraNY.layers = this.layers;
|
|
|
|
- cameraNY.up.set( 0, 0, - 1 );
|
|
|
|
- cameraNY.lookAt( new Vector3( 0, - 1, 0 ) );
|
|
|
|
- this.add( cameraNY );
|
|
|
|
-
|
|
|
|
- const cameraPZ = new PerspectiveCamera( fov, aspect, near, far );
|
|
|
|
- cameraPZ.layers = this.layers;
|
|
|
|
- cameraPZ.up.set( 0, - 1, 0 );
|
|
|
|
- cameraPZ.lookAt( new Vector3( 0, 0, 1 ) );
|
|
|
|
- this.add( cameraPZ );
|
|
|
|
-
|
|
|
|
- const cameraNZ = new PerspectiveCamera( fov, aspect, near, far );
|
|
|
|
- cameraNZ.layers = this.layers;
|
|
|
|
- cameraNZ.up.set( 0, - 1, 0 );
|
|
|
|
- cameraNZ.lookAt( new Vector3( 0, 0, - 1 ) );
|
|
|
|
- this.add( cameraNZ );
|
|
|
|
-
|
|
|
|
- this.update = function ( renderer, scene ) {
|
|
|
|
|
|
+ update( renderer, scene ) {
|
|
|
|
|
|
if ( this.parent === null ) this.updateMatrixWorld();
|
|
if ( this.parent === null ) this.updateMatrixWorld();
|
|
|
|
|
|
@@ -64,40 +74,44 @@ function CubeCamera( near, far, renderTarget ) {
|
|
|
|
|
|
renderer.xr.enabled = false;
|
|
renderer.xr.enabled = false;
|
|
|
|
|
|
|
|
+ const renderTarget = this.renderTarget;
|
|
|
|
+
|
|
const generateMipmaps = renderTarget.texture.generateMipmaps;
|
|
const generateMipmaps = renderTarget.texture.generateMipmaps;
|
|
|
|
|
|
renderTarget.texture.generateMipmaps = false;
|
|
renderTarget.texture.generateMipmaps = false;
|
|
|
|
|
|
renderer.setRenderTarget( renderTarget, 0 );
|
|
renderer.setRenderTarget( renderTarget, 0 );
|
|
|
|
+ const cameraPX = this.cameraPX;
|
|
renderer.render( scene, cameraPX );
|
|
renderer.render( scene, cameraPX );
|
|
|
|
|
|
renderer.setRenderTarget( renderTarget, 1 );
|
|
renderer.setRenderTarget( renderTarget, 1 );
|
|
|
|
+ const cameraNX = this.cameraNX;
|
|
renderer.render( scene, cameraNX );
|
|
renderer.render( scene, cameraNX );
|
|
|
|
|
|
renderer.setRenderTarget( renderTarget, 2 );
|
|
renderer.setRenderTarget( renderTarget, 2 );
|
|
|
|
+ const cameraPY = this.cameraPY;
|
|
renderer.render( scene, cameraPY );
|
|
renderer.render( scene, cameraPY );
|
|
|
|
|
|
renderer.setRenderTarget( renderTarget, 3 );
|
|
renderer.setRenderTarget( renderTarget, 3 );
|
|
|
|
+ const cameraNY = this.cameraNY;
|
|
renderer.render( scene, cameraNY );
|
|
renderer.render( scene, cameraNY );
|
|
|
|
|
|
renderer.setRenderTarget( renderTarget, 4 );
|
|
renderer.setRenderTarget( renderTarget, 4 );
|
|
|
|
+ const cameraPZ = this.cameraPZ;
|
|
renderer.render( scene, cameraPZ );
|
|
renderer.render( scene, cameraPZ );
|
|
|
|
|
|
renderTarget.texture.generateMipmaps = generateMipmaps;
|
|
renderTarget.texture.generateMipmaps = generateMipmaps;
|
|
|
|
|
|
renderer.setRenderTarget( renderTarget, 5 );
|
|
renderer.setRenderTarget( renderTarget, 5 );
|
|
|
|
+ const cameraNZ = this.cameraNZ;
|
|
renderer.render( scene, cameraNZ );
|
|
renderer.render( scene, cameraNZ );
|
|
|
|
|
|
renderer.setRenderTarget( currentRenderTarget );
|
|
renderer.setRenderTarget( currentRenderTarget );
|
|
|
|
|
|
renderer.xr.enabled = currentXrEnabled;
|
|
renderer.xr.enabled = currentXrEnabled;
|
|
|
|
|
|
- };
|
|
|
|
|
|
+ }
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
-CubeCamera.prototype = Object.create( Object3D.prototype );
|
|
|
|
-CubeCamera.prototype.constructor = CubeCamera;
|
|
|
|
-
|
|
|
|
-
|
|
|
|
export { CubeCamera };
|
|
export { CubeCamera };
|