If you are interested in editing the bloom shader, it's in data\shaders\bloom: bloom1-5, bloom1-7, bloom1-9, bloom1-11, bloom1-13, bloom2-5, bloom2-7, bloom2-9, bloom2-11, bloom2-13, and bloom-3
The curves are pre-built constants (otherwise the shader would be far too slow, since it would need multiple exponential calculations per pixel), so this stuff can't be made parameterizable; you have to edit it in directly. The current lighting and bloom functions:
1. Foreground objects are rendered to a buffer with a 0-alpha background
2. Lights, the current scene, and the foreground buffer are fed into light
2.a. Illumination = sum(light magnitude * light color) * foreground pixel alpha
This makes sure only ships and stuff in the foreground are lit; this will include weapon barrels and asteroids in the next SS update.
2.b. Output Pixel = clamp((scene pixel + min(scene pixel, foreground pixel) * Illumination) / hdr, 0, 1)
hdr is 256 with bloom on, and 1 with bloom off, since bloom requires HDR (which I interpret as a 48-bit image, which is probably overkill because that allows luminosity up to 256 times higher than what a 24-bit image can provide). Anyway, this function is important because it makes darker parts of the ship less reflective, preserving contrast, detail, and depth, and also ignores damage glow, weapon hit sprites, etc. when doing this calculation, avoiding unrealistic over-brightness.
3. If bloom is on, the render from step 2 is fed into bloom1
3.a. Output Pixel = horizontalGaussian(max(lighting scene pixel - 1/256, 0) * hdr
This outputs a hdr over-brightness map, which has been blurred horizontally via a blur kernel; in other words, if all of the pixel's components fall below the maximum drawable range, no bloom will occur. Bloom only occurs on pixels that are brightened beyond the displayable range. Once again, hdr is 256.
4. The render from step 3 is fed into bloom2
4.a. Output Pixel = verticalGaussian(max(horizontal gaussian pixel, 0) * intensity
This outputs a normalized over-brightness map, which has been blurred vertically via a blur kernel (completing the box blur, since it has now been blurred in both directions).
5. The renders from steps 2 and 4 are fed into bloom3
5.a Normalized Scene Pixel = lighting scene pixel * hdr
hdr is still 256.
5.b. Output Pixel = normalized scene pixel + max(1 - normalized scene pixel, 0) * bloom pixel
What this does is composite the blurred bloom pixels onto the scene. This time, the lighting curve is the opposite as before; it has a stronger effect on darker pixels and a weaker effect on brighter ones. This avoids washing out the ship and has a nice haze effect on the black of space.
The math is intentionally as simple as possible, for maximum performance. Other modders are welcome to offer alternatives for the user to choose from. Setting up these shaders to work in the first place is a job and a half for me (getting that bloom working properly and looking good in GLSL 1.1 was particularly nightmarish), but writing GLSL code is pretty easy, so don't feel intimidated.