Apply Bloom FX only to specific layers, sorting layers, materials or whatever

Hi everybody,

AFAIK in the URP and its 2DRenderer the post-processing FXs are applied to all the geometry rendered by one camera. However it’s very common that one needs to apply the Bloom FX to only a subset of them, without using different cameras (to avoid problems with sorting). Possible ways to select which pixels are added to the Bloom FX texture:

  • Emissive color: Only the emissive output would be written to a temporary texture. Every non-emissive pixel that has lower Z would erase existing pixels in such texture.
  • Layer: All the geometry in a specific layer would be rendered to the temporary texture, using a Threshold.
  • Sorting layer: The same as previous but using 2D sorting layers.
  • Type of shader: Like “Sprite-Emissive-Lit”.
  • Checkbox in material.
  • Special Renderer component: Like “SpriteRendererEmissive”.

If you don’t plan to implement anything like this in the future, at least I would like to know about alternatives. I think it’s impossible to do this in the URP / 2DRenderer at the moment.

3 Likes

+1