=====
Bloom
=====

In the real world, when a scene is viewed through any lens be it a camera or the eye, there inevitably will be some distortion.  Normally, these imperfections are hardly noticeable but when there is an intensely bright light source, this light appears to bleed beyond its natural borders.  Bloom is the graphics effect that mimics this behavior in digitally generated scenes.

Traditionally when rendered in high dynamic range (HDR) systems, bloom produces feathery light around very bright objects in a scene.  As this is an intensive computational process, the effect cannot be fully reproduced in non-HDR systems.  However, HOOPS offers an highly effective approximation of bloom through a post-processing step.

.. csv-table::

	.. image:: images/0610a_citynobloom.png, .. image:: images/0610a_citybloom.png
	
*A city skyline scene rendered without bloom on the left and with the bloom affect on the right.*

To enable bloom, which is only available on DX11 and OpenGL2 drivers, call ``Set_Driver_Options`` setting the "bloom" option to on. You can exert finer grain control on the effect by changing the strength suboption which is a multiplier on the default contribution of the bloom calculation.  Note that only light contributions based on specular, emission or environment map will be blurred in a bloom effect.

HOOPS Visualize also features the ability to specify the number of blur passes performed on the scene via the blur suboption.  The more passes performed on a scene widens and smooth the effect.

Finally, you can also determine the shape of the kernel used in performing the bloom calculation. The default kernel shape is "radial" but you can also choose the "star" shape.

.. csv-table::

	.. image:: images/0610b_radialbloom.png, .. image:: images/0610b_starbloom.png

*On the left, a turbine engine is rendered with the bloom effect using the radial kernel.  On the right, the same turbine engine is rendered using the star kernel.*
