FireFly Dynamic Lighting Rendering Engine

The FireFly rendering engine focuses on real-time dynamic lighting. Multiple dynamic lighting techniques are implemented, such as deferred shading, light pre-pass rendering, inferred lighting and the regular forward rendering. The active lighting technique can be switched at run-time, and a lot of debugging information is visualized to get a better understanding of the techniques. For example the contents of all screen space buffers can be viewed as overlay (inspired by the Killzone 2 tech demo “Behind the Bullet”). FireFly also contains a few other techniques such as HDR-lighting (bloom and tone-mapping).

History

Bas Zalmstra and I started building on FireFly late 2009. This was triggered by our discovery of the inferred lighting paper. Inferred lighting was presented as the solution for the limitations of deferred shading, and this triggered us to investigate it further. While doing this, we discovered the Utrecht University offers a way to grant credits for scientific research projects by students. By opting for this, we would get a lot more time to work on FireFly, so we turned it into a research project.

Research

The goal of the research project was to compare the different dynamic lighting techniques to learn about their performance and quality in different situations. We were especially focused on the inferred lighting technique, because we were very curious about the results.

As a result we produced a tech demo, FireFly, which demonstrates the lighting techniques and can be used to gain insight in the internal workings of the techniques. We also wrote a paper to share our findings with everyone else.

Tech demo

The tech demo is not available for download. Instead, check out these awesome screenshots!

Paper

The research paper is titled “Comparison of multiple rendering techniques”. The goal of the paper is twofold. We wanted to explain the studied dynamic lighting techniques: forward rendering, deferred shading, light pre-pass rendering and inferred lighting. The second goal was to compare them in terms of performance and quality. (In retrospect, the explanation of the lighting techniques was a bit too much work for our limited time schedule, and it made the paper quite long.)

The paper can be downloaded here.

I’d like to hear from you if you think the paper was useful! You can e-mail me, leave a comment or like this post.

Note: the conclusion for light pre-pass rendering is a bit too negative. The reduced amount of render targets is convenient for the limited amount of memory on the Xbox 360, and there are some unmentioned techniques such as emissive lighting which are much easier to render with light pre-pass rendering. Furthermore, because ourĀ  shader was simpler than it would be in most applications, light pre-pass rendering was disadvantaged in situations with many vertices and few light sources.

| 4 people like this post.

4 Responses to FireFly Dynamic Lighting Rendering Engine

  1. Interesting paper! A minor correction: The first commercial game to use deferred shading (to my knowledge) was Shrek 1, an Xbox 1 launch title which shipped in Nov. ’01. I gave a presentation at GDC 2004 which talked about this in quite a bit of depth. Atman Binstock and I developed it starting around Jan. ’01.

    See my blog post reply here for some technical details:
    http://altdevblogaday.com/forward-vs-deferred-rendering-whywhen-forward#pcomment_commentunit_7152644

    The GDC presentation (which was later cited several times in other deferred rendering related articles/presentations) was at this URL until recently. Let me know if you would like a copy.
    “Deferred Lighting and Shading.” Presentation at Game Developers Conference 2004. http://www.gdconf.com/archives/2004/pritchard_matt.ppt

    • Thank you! And also for the correction, it seems I was 6 years off!

      Very impressive you were able to implement deferred shading on an Xbox. I’m really interested in a copy of the GDC presentation, thank you in advance!

  2. This master’s thesis is also worth checking out:

    “Interactive Massive Lighting for Virtual 3D City Model”
    http://myhpi.de/~oliver.klehm/massive_lighting_web_masters_thesis_oliver_klehm10.pdf

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">