|
@@ -24,7 +24,6 @@ import {
|
|
|
import { Color } from '../math/Color.js';
|
|
|
import { Frustum } from '../math/Frustum.js';
|
|
|
import { Matrix4 } from '../math/Matrix4.js';
|
|
|
-import { Vector2 } from '../math/Vector2.js';
|
|
|
import { Vector3 } from '../math/Vector3.js';
|
|
|
import { Vector4 } from '../math/Vector4.js';
|
|
|
import { WebGLAnimation } from './webgl/WebGLAnimation.js';
|
|
@@ -203,7 +202,6 @@ class WebGLRenderer {
|
|
|
|
|
|
const _projScreenMatrix = new Matrix4();
|
|
|
|
|
|
- const _vector2 = new Vector2();
|
|
|
const _vector3 = new Vector3();
|
|
|
|
|
|
const _emptyScene = { background: null, fog: null, environment: null, overrideMaterial: null, isScene: true };
|
|
@@ -1426,8 +1424,8 @@ class WebGLRenderer {
|
|
|
|
|
|
const transmissionRenderTarget = currentRenderState.state.transmissionRenderTarget;
|
|
|
|
|
|
- _this.getDrawingBufferSize( _vector2 );
|
|
|
- transmissionRenderTarget.setSize( _vector2.x, _vector2.y );
|
|
|
+ const activeViewport = camera.viewport || _currentViewport;
|
|
|
+ transmissionRenderTarget.setSize( activeViewport.z, activeViewport.w );
|
|
|
|
|
|
//
|
|
|
|
|
@@ -1445,6 +1443,11 @@ class WebGLRenderer {
|
|
|
const currentToneMapping = _this.toneMapping;
|
|
|
_this.toneMapping = NoToneMapping;
|
|
|
|
|
|
+ // Remove viewport from camera to avoid nested render calls resetting viewport to it (e.g Reflector).
|
|
|
+ // Transmission render pass requires viewport to match the transmissionRenderTarget.
|
|
|
+ const currentCameraViewport = camera.viewport;
|
|
|
+ if ( camera.viewport !== undefined ) camera.viewport = undefined;
|
|
|
+
|
|
|
renderObjects( opaqueObjects, scene, camera );
|
|
|
|
|
|
textures.updateMultisampleRenderTarget( transmissionRenderTarget );
|
|
@@ -1490,6 +1493,8 @@ class WebGLRenderer {
|
|
|
|
|
|
_this.setClearColor( _currentClearColor, _currentClearAlpha );
|
|
|
|
|
|
+ if ( currentCameraViewport !== undefined ) camera.viewport = currentCameraViewport;
|
|
|
+
|
|
|
_this.toneMapping = currentToneMapping;
|
|
|
|
|
|
}
|