Archive for July, 2010

Rendering Techniques

Posted: July 29, 2010 in Real-Time Rendering

This demo shows three common rendering techniques and how they vary in performance. Forward-Multi-Light, Forward-Multi-Pass and Deferred Rendering. The scene comprises of  a collection of spheres and 16 point lights.

Multi-Pass Single Light = ~64FPS
Multi-Light Single Pass = ~200FPS
Deferred = ~300FPS

Multi-pass rendering is hugely inefficient as you have to redraw every thing N times, where N is the number of lights. Multi-Light rendering is more efficient as you only draw things once, but you’re lighting the geometry as its being drawn to the BackBuffer, this isn’t great as you’re probably lighting a lot of geometry that’s going to be behind other opaque geometry, wasting processing time. This could be solved by first rendering a Z-Pass and only then lighting geometry that’s going to be in front, but then you’re back to drawing things more than once again. Deferred Rendering is probably the most efficient in terms of processing as you perform the lighting as a second pass on only the effected area, and the geometry is only drawn once, but it can be both memory and bandwidth intensive when you consider the “baggage” that needs to be stored and accessed.