Heartfelt is a
4k intro released at
Assembly 2013. A big part of its beauty of 4096 bytes is invisible to an unsuspecting eye. This is my attempt to break its content into visible and meaningful parts.
Let the slideshow begin.
|
In the beginning there was shape. This is just an animated shape, a point light (not
drawn), and basic specular lighting. |
|
Adding ambient to the direct light is a crude approximation of
indirect light, but in absence of a fast and small rendering method it
has to suffice. |
|
I added a directional light to the bottom since I needed that effect
in quite a few scenes. Its glory is hard to see here, but we will get
to the point really soon. |
|
As the surface was really shiny and plastic, I added some procedural noise to it. |
|
Let's apply the fog. At first, it's a non-scattering fog that only absorbs light. Like black smoke. |
|
But the fog should scatter the bottom light. |
|
As well as the main light. |
|
But aren't point lights boring? Let's make it star shaped. |
|
Shouldn't the fog scatter ambient light too? |
|
Tuning contrast may be important. |
|
Some variation in the fog. Oh yeah. |
Well, obviously that's not everything, so let's see a few more cases.
Ambient Occlusion
Ambient occlusion is a poor man's shading trick in the absence of real global illumination. And obviously there's no way to calculate real ambient occlusion in real-time for a scene like this. So let's approximate the approximation. Here's the result.
|
Without any ambient occlusion. |
|
With ambient occlusion. Well, not really, but quite similar. Not normalized or anything. |
Sub-Surface Scattering
Unlike ambient occlusion, sub-surface scattering is a real physical effect which improves the appearance of translucency. Simulating it tends to be really heavy and also takes a lot of space. But just like ambient occlusion, it can be approximated using signed distance fields. And here we go.
|
Without Sub-Surface Scattering. |
|
With fake Sub-Surface Scattering. The effect is best seen in the full sized image. |
Now go see the intro at
pouet.net or
YouTube and come back!