Kevin Andersen

Technical Lighting Artist. Or maybe VFX and Material Artist. Also Optimization and some other stuff. Changes from project to project, really.


Westworld Awakening


Windows PC


Lead Technical Artist



Westworld Awakening was the most graphically ambitious project Survios had ever done. HBO wanted ultra realistic visuals, with the highest possible fidelity in character art and animation, and a deep, narrative-driven exploration of the Delos facility. I was in charge of lighting and GPU optimization, along with some effects and material support.

One of the good things about being the lighting artist for the entire game is that the marketing shots HBO provided are also useful for my own portfolio. I have to say, as much as I agonized over matching the mood and palette of the show, the real final touch turned out to be that HBO logo in the corner. Really sells it.

All shots are in Unreal Engine 4, as they appear in the game.

Lightwrap SSS Shader

When we began the project, HBO expressed concerns that character fidelity would be an issue since there were (and are, as of this writing) no SSS shaders in Unreal that work with the forward renderer. I was working on Creed: RTG when Westworld Awakening was in pre-production, and convinced the producers that engineering time spent making a lightwrap skin shader would benefit both projects. Here, the lightwrap SSS shader that I helped develop on C:RTG has been tuned and re-used to meet HBO’s character fidelity standards.

Just as I did with the toon shader on Sprint vector, I used Unreal’s material editor to prototype the lighting logic. I then showed my work to our rendering engineer to make it into a working shading model that could be added to the engine.

Comparison is to Unreal’s default shader. (See the Creed: RTG project page for comparison to UE4's SSS shaders.)

Specular Occlusion Proxies

The specular occlusion tech I developed for that one gym in Creed: RTG was further refined and used to greater effect here. There are no planar reflections in the game. What looks like the dark reflections of the pillars and servers in the shiny floor is actually cheap additional geometry masking out the specular response by writing into the custom depth buffer. The same blurring technique was used here as was used in Creed: RTG, with the addition of a noise texture and height-based fade out in the vertex color of the proxy mesh.

Eyeball Material

The eye shader that comes with Unreal is a bit of a convoluted mess, expensive, and requires you to use their own provided eye mesh. So that’s just never going to work for us. This is a single piece of geometry with one material, no translucency. The lighting model here is the lightwrap SSS shader from above, while the refraction and pupil dilation is done in the material logic with UV offsets. If we had time, I would have asked our rendering engineer for an additional option to separate the specular normal calculation so I could have proper diffuse shading on the iris via a normal map while keeping the specular highlight correct. Oh well, I guess it will just have to be ruined forever.

Animated AO In Mouth For Talking Characters

A majority of the game is statically lit, with the characters relying on capsule shadows, AO maps, and bent normal maps for accurate self-shadowing most of the time. One of the last hurdles for character fidelity was the issue of the mouth being an animated cavity. With a static AO map, the teeth and tongue would always be either too dark or too bright. I had the rigging artist set up a rig that outputs the distance between the top and bottom lip as an animation curve that would then get exported with the animation.

A recent Unreal update gave materials the ability to read from animation curves. This means the curve exported by that special rig function allowed me to automatically animate the AO inside the mouth as the characters talked. All I needed was a bit of material logic and a decent AO gradient texture baked onto the mouth geo. The AO texture I also made myself, with this very advanced and sophisticated setup.

Bending Vertex Normals In The Material

Sometimes purchased assets don’t come in looking right. That is where tech artists have to step in and make hay.

Bent Normal Maps

Because we are so dependent on static (baked) lighting to save performance, most of every character’s lighting has to come from Unreal’s volumetric lightmaps. They look better than light probes, but are still basically just low-resolution cube-map look-ups that do not self shadow. On this project I became an evangelist for bent normal maps on characters. They do a fantastic job of minimizing light leaking under the nose, around the eyes, and in the mouth and ears.

Many more shots of the levels. I worked hard on this lighting and damnit you're gonna look at it.

As always, all shots are in Unreal Engine 4, as they appear in the game.