Introduction to light shading for real-time rendering

I am finally back in Tokyo after two intense weeks in Europe, during which I did things as various as being a perfect tourist in four capitals (stolen bag experience included) or attending the world biggest demoparty, getting nominated with the rest of my group for some awards, ranking 2nd in a competition and getting slashdotted for that. :)

As previously advertised, I presented at Revision a talk on light shading. A video was recorded for the streaming and has been made available online pretty much immediately, thanks to the work of the Revision team:

Unfortunately, the last minutes are missing. I was basically comparing the Fresnel version with the manually tweaked version, and explaining that while the former might not look perfect yet, it was an out of the box result, while the latter required me to introduce some fudge factor I had to tweak. Regarding references, I couldn’t list them all so I just mentioned the most significant ones (the first part of this talk is strongly inspired by Naty Hoffmann’s course introduction) and referred to here for the rest. At last I mentioned an evaluation sheet for whoever cared to give some feedback.

Performance wise, when seeing the video I feel embarrassed. The flow is far from what I was aiming, some explanations are not crystal clear as I wanted them to be, and you can notice I was confused a couple of times by the surrounding noise (hey, did I mention it’s a party?). But on the other hand various people told me it was a good seminar so even though there is much room for improvement, it’s not that bad of a start I guess.

Anyway, you can download a quick export of the party version of the slides. When I have some time I will try to get a better looking export (without text and images cropped out), and fix a couple of slides.

Talking about light at Revision

Over the last months I have been reading various resources on light shading, and shared the most relevant ones on this blog. Along the way I became more and more thrilled by how light interacts with materials and how we can model it to get more convincing rendering.

I found some insights to be really enlightening and very worth sharing. Therefore as a way of challenging my own understanding of this matter and as an opportunity to practice talk, I decided to speak about real-time lighting during a seminar at Revision.

Revision is a big demoparty that will be held during four days over the Easter weekend in Saarbrücken, Germany. If you are coming (which I recommend) and want to hear about shading, specular and Fresnel, come and see me!

Update: the talk is scheduled for Saturday April 7th, 14h – 15h.

“Introduction to light shading for real-time rendering”


Update: see this post for the material.

Capturing and rendering tiny details

Not so long ago I discovered this article presenting the CLEAN mapping technique used in Civilization V to manage how detail gets filtered with distance. I found the side effect of emerging anisotropic surfaces very seducing.

This week Angelo Pesce wrote some thoughts on how the problem of how to represent and render detail in general, how normal maps are not so well suited and what can be done instead.

Readings on physically based rendering

Physically based rendering (PBR) seems to be the hot thing recently in game as well as film industries. Last year at SIGGRAPH Naty Hoffman led a course on physically based shading. The first talk in particular gives some excellent insights on the physics behind lighting.

This year, at SIGGRAPH again, the physically based lighting used in Call of Duty: Black Ops was one of the topics of the course Advances in Real-Time Rendering in 3D Graphics and Games. Keith Judge wrote an article to sum up the ideas presented in this talk in shading language. Sébastien Largarde also has some insights on the shift to physically based shading from a production point of view.

On a narrower topic Rory Driscoll briefly explained the problem of energy conservation, a first but important step toward PBR, in a convincing and straight to the point manner. In articles mentioning normalization factors the origin is not always clear, especially when authors take shortcuts to avoid digressing from their topic. Fortunately Fabian Giesen wrote a demonstration of the normalization factor for the Phong and Blinn-Phong models and Chris­t­ian Schüler gathered various of the normalization terms we can see in publications, with proper references.

There are many other sources to read, but I will stop there for now. Just follow the links and you have plenty of reading already. ;)


Addendum: Sébastien pointed out this article on energy conservation for wrapped diffuse lighting and this one on physically plausible microfacet BRDF, which includes a WebGL demo to play with.


Update: Tri-Ace has made a couple of presentations on the matter over the last years, which you can find on their research page.


Update: this article, Basic Theory of Physically-Based Rendering, presents the ideas of PBR in a very easy to read manner and works well as an introduction.