Bloom / Emissive Blurring

The bloom effect is a visual effect used in video games, films, and other digital media to create a glowing or halo-like appearance around bright objects or light sources. The effect simulates the way light interacts with the human eye, causing bright objects to appear to bleed or blur into their surroundings.

The bloom effect is achieved through a process known as “convolution”, which involves applying a blur filter to bright areas of the image and then adding the blurred result back to the original image. This creates a soft, glowing effect around bright objects, which can help to make them stand out and create a more immersive and realistic visual experience.

Bloom effects are commonly used in video games to create a more vibrant and atmospheric environment, particularly in games with high levels of graphical fidelity, such as first-person shooters and open-world adventure games. They are also used in films and other digital media to create a dreamlike or surreal atmosphere, or to draw the viewer's attention to specific elements of the scene.

You can activate bloom and configure the range of blurring by changing the EmissiveBlur property in the TGorillaViewport instance.

NOTICE: Larger values meaning more expensive computation, which influences FPS a lot.

// Allowed values are between 0 and 15.
GorillaViewport1.EmissiveBlur := 3

Bloom rendering is only available for 3D objects with DefaultMaterials applied. In those materials the emissive color property need to be set.

To set up emissive color correctly, you have to understand how the shader handles it.

The “Emissive” / “EmissiveF” property of a DefaultMaterial is a RGBA value, where RGB-channels defining the emissive color itself and the alpha-channel the intensity of the bloom effect on this object.

Of course you can set / manipulate this at runtime with immediate render update.

// creating a green halo with medium intensity
GorillaBlinnMaterialSource1.EmissiveF := TAlphaColorF.Create(0, 1, 0, 0.25);