Brutal Legend VFX

Curl Noise

An example of particles being influenced by curl noise. See the Brutal Legend VFX Presentation from GDC 2010, or the paper we got the idea from, for more details.

Time Lapse Climate

This is a video showcasing the climate system for Brutal Legend. I collaborated with the engineering department (primarily our lead programmer Nathan Martz) to create a system that would seamlessly blend between different regional climates, different times of day, and different weather patterns (rain, snow, thunder, meteors, fog, etc...). For the skies in this sequence, I authored the effects, vortex shader and mesh, lighting, and sky box.

UV Displacement

UV Displacement, aka UV Distortion, aka Pixel Offset, etc..., is a fantastically useful real time vfx technique where the particle texture lookup is perturbed by another texture. Usually that distortion texture resembles a normal map, and is scrolling, scaling, or otherwise given additional motion. We found that by driving this displacement texture with a intensity curve, you could get very interesting visuals resembling fluids that break apart, or in this case, an approximation of the quickly moving gases that form a flame. See the Brutal Legend VFX Presentation from GDC 2010 for more details.

Ink Rendering

This video shows the ink rendering technology I developed for Brutal Legend with our graphics and animation teams. Ink was quite a challenge for us as Ophelia's character is in a constant state of flux between fluid ink and her solid form. The final technique involved rendering the ink to a low-res buffer and performing some thresholding operations on it to extract the most interesting details (seen in the debug mode at the end of the video). Although it is taken in a graybox room, this is the same effect used in the shipping title. See the Brutal Legend VFX Presentation from GDC 2010 for more details.

Detailed View of Ink

An isolated look at Brutal Legend's ink rendering tech. First regular particles are shown, then those same particles drawn into a blurred buffer, and finally that blurred buffer thresholded, and composited back onto the screen. Internally, we refer to this buffer as the Ink Potential. See the Brutal Legend VFX Presentation from GDC 2010 for more details.

Climate Variation

Showcases the climate variation in Brutal Legend. The first half of the video is time lapse, the second have shows different environments in real time. I authored all the scenes seen here using our climate system, which controls particle effects, fogging, lighting, weather variation, and post processing. See the Brutal Legend VFX Presentation from GDC 2010 for more details.

3ds Max HLSL Shaders (2005-2006)

Curved Relief Mapping

This implementation of Fabio Policarpo's Curved Relief Mapping uses a modified version of the CG shader he developed. Like standard relief mapping, but uses a per vertex quadric curvature approximation to "wrap" the height map along the object's profile. This per vertex curvature approximation is calculated via maxscript in a preprocessing step.

Relief Map Blending

Normal map and Relief Maps are blended in this shader.  Depth, Diffuse, Specular and Normal maps are modulated based on a vertex data channel values which allows interactive viewport experimentation. Note the convincing irregularities that occur when the vertex channel has partial opactiy.

Concentric Grass Shells

HLSL implementation of hair/grass using the "concentric spheres" technique. This version uses vertex data channels to control hair length, hair direction and hair color interactively. Procedurally added ambient occlusion on each successive layer is critical to the effect.

Shader Based Physical Fur

HLSL implementation of hair/grass using the "concentric spheres" technique. This version expects a per vertex force component to be passed into the shader via vertex data channels. In a separate max script, I calculate per vertex velocity, acceleration, and a compression factor which each have their own contribution weighting. The results of the calculation are baked into the vertex data channels per frame. Alternate Video.