Hello! I have several effects composer layers, and as the last layer I’d like to add a render pass but with some transparency to blend the previous pass with the render pass. How would one approach this?
By default, RenderPass always overwrites the buffer, so you can’t directly blend it with previous passes. Instead, you need a custom pass that samples both the existing scene buffer and your final render, then blends them with an alpha factor. A common approach is:
- Render your main passes as usual (e.g.
pass1,pass2, etc.). - Add a final custom
ShaderPassthat has two texture inputs:
tDiffusefrom the previous composer pass (the accumulated scene).- A second texture of what you want to blend in (for instance, a separate
RenderTargetor the output of a hidden camera).
- In the fragment shader, do something like:
gl_FragColor = mix(texture2D(tDiffuse, vUv), texture2D(tBlend, vUv), alpha);
- Use that
ShaderPassas the last pass in your composer chain.
This way, you can control opacity (alpha) to merge your final render with the existing buffer.