Ok that makes sense now. Yeah there's a few ways you can do this:
I'm not sure, but I think I've read somewhere that I downsample 4 times, then blur each then combine. (or not exactly in this order) this way the blur radius will be much bigger.
e.g. if you only want one bloom result:
* Downsample (to half) -> blurH-> blurV-> downsample (to quarter)-> blurH-> blurV-> composite
* Downsample (to half) -> downsample (to quarter)-> blurH-> blurV-> blurH-> blurV-> blurH-> blurV-> composite
etc... each will give a different look, so experiment
So you can play with: number of times you downsample, number of times you blur each 'level', and the blur-radii used for each blur -- a lot of tweakables!
You can also try compositing together some of the different blur levels, before the final compositing with the scene -- I guess that's what you were thinking about with needing 4 tonemapping passes, if you wanted to screen-blend 4 'levels' of HDR bloom together (instead of just using the final 'level', which is what I was originally thinking of).
Yep - and if you want another 'level' of bloom, you can render your half-res to a quarter-res, and so on.
I should render the input texture to a half-res texture (using half res viewport), then blur that, then upsample and combine right?
There's no need to upsample before combining though -- it will give you the same result either way, so you may as well skip the upsampling step (and simply have the compositing shader read from the low-res bloom texture)
It depends on the game. If it's a huge open world game with a huge variety of scenes, you may have to just pick 1 value, or try and make it dynamic (e.g. tie it to average screen luminance or something). If it's a game with more controlled scenes, e.g. a typical first-person shooter based in corridors, then you could let your artists/level designers control it.
Is it a good idea to let the artist keyframe it (per scene) ?