Here is your updated fiddle: BLOOM ADVANCED - JSFiddle - Code Playground
- It does not make sense to call
clear()right after rendering todepthRenderTarget. This will clear its content. - You have to be aware that passing a shader to
ShaderPassmeans it’s uniforms are cloned (meaning the texture of theWebGLRenderTargetwhich does not work). So you have to assign the values right after the pass creation. - It’s not necessary to assign
tDiffusesince it’s automatically assigned byShaderPass. It represents the contents of theEffectComposer’s read buffer right before the pass is executed. In your particular case, it’s the result ofRenderPass.