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.

State of the art in real-time realistic skin rendering

Jorge Jimenez posted yesterday the last results of his research on skin rendering: Separable Subsurface Scattering. He provides a very impressive real-time demo, which, some point out, does runs on actual current hardware (it ran, slowly, on my low-end laptop). So even though he provides the following video of it, you should definitely try the actual binary. Oh, and the source code is available too. :-)

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.

Variance Shadow Maps

Shadow mapping is a popular way of getting dynamic shadows, but suffers from aliasing artifacts that cannot be addressed by usual texture filtering. The reason boils down to the fact that the average of depth test results (which is what we want) is not the same as the result of a test on the average of depths (which is what hardware does).

The trivial way to do it anyway is the Percentage Closer Filtering (PCF) technique, and usually stands in papers as the expensive upper bound.

Variance Shadow Maps are a simple technique allowing filtering, including some Gaussian blur for example, thus giving soft shadows (the blur does not depends on the distance from the occluder though). The main drawback of the algorithm is the light bleeding artifact that occurs as soon as the scene complexity is too important. I also found it to be fairly expensive in terms of texture memory since it requires twice as much as regular shadow maps, and another times two for blurring.

One could argue VSM are some pretty old stuff already, but because of the elegance of the trick they rely upon and the ease of implementation, I really like them.

Epsilon, a 64k intro by Mercury

Last weekend the demogroup Mercury released at Tokyo Demo Fest the final version of their invitation to the upcoming Revision party: a 64kB demo called Epsilon. While the complexity of the scenes is very limited, the rendering, seemingly a raymarching shader, features a couple of very noteworthy real-time effects including ambient occlusion, reflexion (up to two iterations it seems) and refraction, caustics, and an hexagonal bokeh depth of field.

Draft on depth of field resources

What is mostly in my thoughts recently when it comes to rendering is real time depth of field effect. I intend to read state of the art material on the matter and hopefully post a well formed summary, just like I did for physically based rendering, but until then I thought I would list a few resources already.

That’s all for now. ;-)

Update: after further documentation, both Kawase’s  and DICE’s techniques indeed rely on the idea of creating an hexagon shaped bokeh by decomposing it into three skewed boxes, but while Kawase’s approach uses seven passes, DICE’s one takes it down to two passes thanks to some clever use of multirender targets.

Also, I forgot to mention a second article of Matt Pettineo, where he suggests a combination of techniques to achieve a better result.

Show your difference

An example of actual bokeh in a photo of mine

 

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.