diff --git a/src/renderers/WebGLMultipleRenderTargets.js b/src/renderers/WebGLMultipleRenderTargets.js index 9c370bd36da6c0..a5fb5a176b53c8 100644 --- a/src/renderers/WebGLMultipleRenderTargets.js +++ b/src/renderers/WebGLMultipleRenderTargets.js @@ -13,6 +13,7 @@ class WebGLMultipleRenderTargets extends WebGLRenderTarget { for ( let i = 0; i < count; i ++ ) { this.texture[ i ] = texture.clone(); + this.texture[ i ].isRenderTargetTexture = true; } diff --git a/src/renderers/webgl/WebGLTextures.js b/src/renderers/webgl/WebGLTextures.js index 9404373bd8c93e..5154f05b306e4b 100644 --- a/src/renderers/webgl/WebGLTextures.js +++ b/src/renderers/webgl/WebGLTextures.js @@ -426,7 +426,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils, if ( texture.isVideoTexture ) updateVideoTexture( texture ); - if ( texture.version > 0 && textureProperties.__version !== texture.version ) { + if ( texture.isRenderTargetTexture === false && texture.version > 0 && textureProperties.__version !== texture.version ) { const image = texture.image; diff --git a/src/textures/Texture.js b/src/textures/Texture.js index e4286437ef7cdb..b03e055b69a65d 100644 --- a/src/textures/Texture.js +++ b/src/textures/Texture.js @@ -136,6 +136,8 @@ class Texture extends EventDispatcher { this.userData = JSON.parse( JSON.stringify( source.userData ) ); + this.needsUpdate = true; + return this; }