Re-Implementing “The Inner Workings of Fortnite’s Shader Based Procedural Animations”

After attending GDC Europe last year, I was able to rummage through the treasure that is the GDC Vault for a while ;-) I came across a presentation by Jonathan Lindquist, technical artist at Epic games, who talked about how they did stylized animation for Fortnite in the Unreal Engine. If (like me, I have to admit) you haven’t heard about Fortnite, have a look on the website I linked to :-)

I’ve been interested in deepening my understanding of shaders in the last time, so the idea of implementing the shaders that were presented in Unity started to form. This turned out to be a good exercise in writing vertex shaders in Unity along with a small aside of writing scripts for Blender to boot!
Lindquist talks about three shaders, they are:

Stylized culling: Instead of fading out objects when they are about to be culled to reduce “popping”, they decided to go for a more cartoonish version which involves a “bouncy” scale animation.

Bounce effect: An effect that is played on objects when they are hit by something (in the game, characters can walk around destroying objects like walls to collect the resources contained therein).

Self-building structures: Definitely the coolest looking effect, it is used to visualize walls which appear to build themselves.

The source code of the shaders is available on github.

I will write about the shaders and show my implementation in the order from easy to hard. The simplest shader is definitely the stylized culling, so the first post in the series will be about this one.

You can find the slides for free on the GDC Vault.