From 405796862a26da49cdb7ee2325b1861c8f0038c2 Mon Sep 17 00:00:00 2001 From: George Corney Date: Fri, 11 Feb 2022 12:29:43 +0000 Subject: [PATCH 1/2] Support transmission roughness on WebGL1 --- src/renderers/WebGLRenderer.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index f2828ff7ce0d0c..ea8faeba5c1b56 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -12,6 +12,7 @@ import { LinearFilter, LinearMipmapLinearFilter } from '../constants.js'; +import { floorPowerOfTwo } from '../math/MathUtils'; import { Frustum } from '../math/Frustum.js'; import { Matrix4 } from '../math/Matrix4.js'; import { Vector2 } from '../math/Vector2.js'; @@ -1194,14 +1195,18 @@ function WebGLRenderer( parameters = {} ) { _transmissionRenderTarget = new renderTargetType( 1, 1, { generateMipmaps: true, type: HalfFloatType, - minFilter: isWebGL2 ? LinearMipmapLinearFilter : LinearFilter, + minFilter: LinearMipmapLinearFilter, useRenderToTexture: extensions.has( 'WEBGL_multisampled_render_to_texture' ) } ); } _this.getDrawingBufferSize( _vector2 ); - _transmissionRenderTarget.setSize( _vector2.x, _vector2.y ); + if (isWebGL2) { + _transmissionRenderTarget.setSize( _vector2.x, _vector2.y ); + } else { + _transmissionRenderTarget.setSize( floorPowerOfTwo( _vector2.x ), floorPowerOfTwo( _vector2.y ) ); + } // From fb37e9a13a6204f7e4decc3357527993b6cb7d6f Mon Sep 17 00:00:00 2001 From: mrdoob Date: Fri, 11 Feb 2022 14:14:51 +0000 Subject: [PATCH 2/2] Update WebGLRenderer.js --- src/renderers/WebGLRenderer.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index ea8faeba5c1b56..859cb9bffbaba3 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -9,7 +9,6 @@ import { UnsignedByteType, LinearEncoding, NoToneMapping, - LinearFilter, LinearMipmapLinearFilter } from '../constants.js'; import { floorPowerOfTwo } from '../math/MathUtils'; @@ -1202,10 +1201,15 @@ function WebGLRenderer( parameters = {} ) { } _this.getDrawingBufferSize( _vector2 ); - if (isWebGL2) { + + if ( isWebGL2 ) { + _transmissionRenderTarget.setSize( _vector2.x, _vector2.y ); + } else { + _transmissionRenderTarget.setSize( floorPowerOfTwo( _vector2.x ), floorPowerOfTwo( _vector2.y ) ); + } //