sunnuntai 23. maaliskuuta 2014

Heartfelt (4k intro)


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!