# Transparency blending difference with/without EffectComposer

**URL:** <https://discourse.threejs.org/t/transparency-blending-difference-with-without-effectcomposer/84823>\
**Category:** Questions\
**Tags:** transparency, lighting, effect-composer, blending, color-space\
**Created:** [July 4, 2025, 10:57am UTC](https://discourse.threejs.org/t/transparency-blending-difference-with-without-effectcomposer/84823 "2025-07-04T10:57:15Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jens84](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/jens84/32/61398_2.png) [@Jens84](https://discourse.threejs.org/u/Jens84)\
**Post date:** [July 4, 2025, 10:57am UTC](https://discourse.threejs.org/t/transparency-blending-difference-with-without-effectcomposer/84823/1 "2025-07-04T10:57:15Z")

</div>

Hi community,

I am currently upgrading an application from r132 to r178.  
While following the migration guidelines, I applied the following steps:

- sRGBColorSpace for renderer output and for input color textures
- sRGB to Linear conversion for non-hex/css colors
- Old lights intensity multiplied by PI
- Added OutputPass to EffectComposer

While doing so, I noticed a difference on transparent materials blending with the background as soon as a pass other than RenderPass is active.  
If I understood well, I think it’s because the blending applies in a WebGLRenderTarget (linear colorSpace) rather than on screen.

You can find here a reproduction with simple objects/materials: [https://codepen.io/Jens84/pen/vEOwjzd](https://codepen.io/Jens84/pen/vEOwjzd)

Is there anything wrong in what I am doing?  
How can I achieve the same transparency blending when EffectComposer has more active passes than RenderPass alone?

Thanks in advance!

---

<div class="post-metadata">

**Author:** ![RichFWebb](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/richfwebb/32/28746_2.png) [@RichFWebb](https://discourse.threejs.org/u/RichFWebb)\
**Post date:** [July 8, 2025, 5:34am UTC](https://discourse.threejs.org/t/transparency-blending-difference-with-without-effectcomposer/84823/2 "2025-07-08T05:34:34Z")

</div>

You might need to check your renderer.autoClear setting, and/or do manual renderer.clear(…), but someone more knowledgeable will be able to answer. I just wanted to recommend you can also check in pmndrs discord or on their github.

---

<div class="post-metadata">

**Author:** ![donmccurdy](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/donmccurdy/32/33209_2.png) [@donmccurdy](https://discourse.threejs.org/u/donmccurdy)\
**Post date:** [July 8, 2025, 7:25pm UTC](https://discourse.threejs.org/t/transparency-blending-difference-with-without-effectcomposer/84823/3 "2025-07-08T19:25:45Z")

</div>

I think you’re right that the difference is alpha blending in Linear-sRGB vs. sRGB color spaces. You’re not doing anything wrong, it’s mainly a limitation in WebGL that we _can’t_ do blending in Linear-sRGB when post-processing isn’t enabled, otherwise it would be preferable.

Unfortunately workarounds to force blending in Linear-sRGB without post-processing are not possible, and workarounds to force blending in sRGB _with_ post-processing are pretty cumbersome. So if you’re using post-processing in the real application, I would recommend adjusting color and opacity to get the result you want with the linear blending space, if that’s an option!
