2D Lighting Engine

In 2014/15, I developed a concept 2D lighting system with shadows. A full analysis was undertaken of rendering performance vs. number of lights.

Calculating Shadow Geometry

Shadow geometry is calculated per-light with a mathematical approach. Supporting concave shapes was challenging at the time, requiring determining which object edges 'face' away from the light.

Example Scene 1.PNG
 
mandelbrot2.PNG

'Infinite' light support

The program uses framebuffers to support a very large number of lights. A kind of deferred rendering- lighting information is drawn to framebuffers first, and applied to the scene later. Optionally lights can be drawn a second time with an 'additive' blend mode, leading to a bloom effect.