|
@@ -15,6 +15,7 @@ class CubeCamera extends Object3D {
|
|
|
|
|
|
this.renderTarget = renderTarget;
|
|
this.renderTarget = renderTarget;
|
|
this.coordinateSystem = null;
|
|
this.coordinateSystem = null;
|
|
|
|
+ this.activeMipmapLevel = 0;
|
|
|
|
|
|
const cameraPX = new PerspectiveCamera( fov, aspect, near, far );
|
|
const cameraPX = new PerspectiveCamera( fov, aspect, near, far );
|
|
cameraPX.layers = this.layers;
|
|
cameraPX.layers = this.layers;
|
|
@@ -112,7 +113,7 @@ class CubeCamera extends Object3D {
|
|
|
|
|
|
if ( this.parent === null ) this.updateMatrixWorld();
|
|
if ( this.parent === null ) this.updateMatrixWorld();
|
|
|
|
|
|
- const renderTarget = this.renderTarget;
|
|
|
|
|
|
+ const { renderTarget, activeMipmapLevel } = this;
|
|
|
|
|
|
if ( this.coordinateSystem !== renderer.coordinateSystem ) {
|
|
if ( this.coordinateSystem !== renderer.coordinateSystem ) {
|
|
|
|
|
|
@@ -125,6 +126,8 @@ class CubeCamera extends Object3D {
|
|
const [ cameraPX, cameraNX, cameraPY, cameraNY, cameraPZ, cameraNZ ] = this.children;
|
|
const [ cameraPX, cameraNX, cameraPY, cameraNY, cameraPZ, cameraNZ ] = this.children;
|
|
|
|
|
|
const currentRenderTarget = renderer.getRenderTarget();
|
|
const currentRenderTarget = renderer.getRenderTarget();
|
|
|
|
+ const currentActiveCubeFace = renderer.getActiveCubeFace();
|
|
|
|
+ const currentActiveMipmapLevel = renderer.getActiveMipmapLevel();
|
|
|
|
|
|
const currentXrEnabled = renderer.xr.enabled;
|
|
const currentXrEnabled = renderer.xr.enabled;
|
|
|
|
|
|
@@ -134,19 +137,19 @@ class CubeCamera extends Object3D {
|
|
|
|
|
|
renderTarget.texture.generateMipmaps = false;
|
|
renderTarget.texture.generateMipmaps = false;
|
|
|
|
|
|
- renderer.setRenderTarget( renderTarget, 0 );
|
|
|
|
|
|
+ renderer.setRenderTarget( renderTarget, 0, activeMipmapLevel );
|
|
renderer.render( scene, cameraPX );
|
|
renderer.render( scene, cameraPX );
|
|
|
|
|
|
- renderer.setRenderTarget( renderTarget, 1 );
|
|
|
|
|
|
+ renderer.setRenderTarget( renderTarget, 1, activeMipmapLevel );
|
|
renderer.render( scene, cameraNX );
|
|
renderer.render( scene, cameraNX );
|
|
|
|
|
|
- renderer.setRenderTarget( renderTarget, 2 );
|
|
|
|
|
|
+ renderer.setRenderTarget( renderTarget, 2, activeMipmapLevel );
|
|
renderer.render( scene, cameraPY );
|
|
renderer.render( scene, cameraPY );
|
|
|
|
|
|
- renderer.setRenderTarget( renderTarget, 3 );
|
|
|
|
|
|
+ renderer.setRenderTarget( renderTarget, 3, activeMipmapLevel );
|
|
renderer.render( scene, cameraNY );
|
|
renderer.render( scene, cameraNY );
|
|
|
|
|
|
- renderer.setRenderTarget( renderTarget, 4 );
|
|
|
|
|
|
+ renderer.setRenderTarget( renderTarget, 4, activeMipmapLevel );
|
|
renderer.render( scene, cameraPZ );
|
|
renderer.render( scene, cameraPZ );
|
|
|
|
|
|
// mipmaps are generated during the last call of render()
|
|
// mipmaps are generated during the last call of render()
|
|
@@ -154,10 +157,10 @@ class CubeCamera extends Object3D {
|
|
|
|
|
|
renderTarget.texture.generateMipmaps = generateMipmaps;
|
|
renderTarget.texture.generateMipmaps = generateMipmaps;
|
|
|
|
|
|
- renderer.setRenderTarget( renderTarget, 5 );
|
|
|
|
|
|
+ renderer.setRenderTarget( renderTarget, 5, activeMipmapLevel );
|
|
renderer.render( scene, cameraNZ );
|
|
renderer.render( scene, cameraNZ );
|
|
|
|
|
|
- renderer.setRenderTarget( currentRenderTarget );
|
|
|
|
|
|
+ renderer.setRenderTarget( currentRenderTarget, currentActiveCubeFace, currentActiveMipmapLevel );
|
|
|
|
|
|
renderer.xr.enabled = currentXrEnabled;
|
|
renderer.xr.enabled = currentXrEnabled;
|
|
|
|
|