How to control bloom strength intensity for each mesh material?

There is a metalness level option, but some materials doesn’t have it.

Bloom is a postprocessing effect, applied to the whole screen.
To have objects with different bloom strength, you need several renders of the same scene with bloom of different strength, combined in one somehow :thinking:
Or maybe it’s possible to achieve with deep modification of UnrealBloomPass.
AFAIK, there is no ready-to-use solution.

@drcmda is there something like this in r3f?

PS Maybe selective bloom is an option though: three.js examples

A very rough and totally imperfect implementation of individual selective bloom:

Feel free to modify it at your will.

Oh thank you! I tried do it myself in past but failed to combine layers and give up on it.

From my experience, layers and selective bloom is dead end, if you don’t want to get very specific visuals.

Just a random thought… Why not utilize sRGB encoding color values and generate a threshold image based on the emissive color values coming from the original scene? This way you can easily control the bloom strength by simply setting the emissive intensity of any object.

Also instead of using the (IMHO quite heavy kernel/convolution technique) just downsample the threshold result 10-or-so times, then upscale again using additive blending from the last two downsampled results and repeat the process until you’re back at full resolution (apply blur here too). I know unity uses this technique to accommodate mobile platforms. I’ve implemented this in my own engine and can easily perform the entire post processing effect (about 20 passes) in under 0.2ms time.