Envrionment Special Effects Shaders


Sponge Shader (Unity 5)
Sponge shader and an accompanying Substance. Substance settings allow for almost any type of sponge/foam material. Shader has various tessellation and wetness settings. Top image is lit geometry with the four output textures from the substance. Middle image is the applied Substance and shader with the shader's Wetness setting at nil. Bottom image shows the Wetness setting at full. If I were to work on this more I'd implement occluded reflections and wetness maps. The shader was designed in Shader Forge, and the Substance was designed in Substance Designer. The geometry is standard Unity primitives. The shader and Substance are my work.
Artic Shader (Unity 5, DirectX 11)
Artic water shader that relies on tessellation (and normal reconstruction). It uses voronoi noise blended with perlin noise to create the wave height-map. It also uses a 4 step fade-in-out (same principle of flow-map shaders) to simulate the choppiness of near-frozen, calm ocean-water. The drawback of the tessellation in this instance is that stepped-artifacts are created on the creases of the waves, but I minimized it by running a blur across the voronoi noise to soften the waves' creases. It requires tessellation-enabled hardware (not mobile), but it's fairly cheap overall. Tessellation complexity and falloff can be changed, as can the wave height, speed, and color. Credit for the sky goes to Unity Technologies (from their free Viking Village asset). Everything else in the scene is my work. The shader was designed in Shader Forge.

Glass Shader (Unity 5)
Just a simple glass shader. It takes advantage of the new reflection probes featured in Unity 5 to provide mostly-accurate reflections without much hit to performance. It also has Fresnel light collection near the edges, but it's minimal. It does not refract light, but that's a limitation of real-time rendering. The shader was created entirely in Shader Forge. Environment is from Unity Technologies' Viking Village.

Spherical Portal Shader & Effects (Unity 5)
Portal system that requires a depth-pass, a custom shader, and an image-effect/post-process. The effect was created as part of a gameplay prototype. Custom scripting and scene setup made it possible. It was a huge effect to create, but it was lots of fun and I learned a lot. The shader was designed in Shader Forge and optimized by hand. Environment is from various artists active with Unity. The portal effect, which includes 3 scripts and 2 shaders, is my work.

Wormhole Shader (Unity 5)
Wormhole shader that uses image-refraction and calculates everything on the GPU (no textures). Number of spikes, twist amount, refraction amount, and inner color can be tweaked. It's fast but has much room for optimizations and improvement. Created entirely in Shader Forge. Environment is by Michael Orkisz (Manufactura K4). Shader is mine.

Comic-book Shader

Comic-book Shader (Unity 4, Unity 5, Substance, no image-effect/post-process)
Comic book shader based on a mix of actual comic-books and children's story books. Utilizes a Substance to simplify textures, but the same simplification is included in one version of the shader. It has a mobile-hardware variant as well. Options for customization include outline color/width/noise, hatching color/multiplier/noise, simplification level, and main color adjustments. Built almost entirely in Shader Forge, but edited by hand for optimizations. Top image uses Unity Technologies' free assets. Bottom images use the models and textures from Cobus Saunderson's (3DForge) Village Interiors pack. All shots utilize Camera Perspective Editor by Richard Lawrence Harrington (leader of Art Leaping). The shader, shader lookup textures, Substance, and effect workflow were created by me.

Character Shaders

Hair Shader (Unity 5)
Progress shots of a physically based hair shader. It includes anisotropic lighting and cutout-shadow-casting. It uses detail, normal, metallic, roughness, and anisotropic-direction maps. Drafted in Shader Forge, finished by hand. The right-most image was my first attempt, with each following attempt in order. The final version was production ready. Everything in the screenshots is my own work. The photos that the hair and background textures came from were captured by me.

Cartoony Skin Shader (Unity 5)
Cartoon skin shader with sub-surface-scattering approximation (using a depth-occlusion map). Uses base-color, normal, metallic, roughness, ambient-occlusion, and depth-occlusion maps. Drafted in Shader Forge and finished by hand. The shader, meshes and textures are my work. Mesh is cut from a full character I designed.

Eye Shader (Unity 5)
Eye shader with a ton of real-time shape/color options. Physically-shaded and parallax-mapped. Designed entirely in Shader Forge. The shader and all textures are my work. The mesh is just a standard sphere.

3D Modelling & Design

Ava Character (Blender, Substance, Unity 5)
Fully-rigged, cartoony, game character. Designed, modeled, textured, and rigged entirely by me. Went through dozens of iterations based on feedback. Sculpted, retopologized, and rigged in Blender. Textured in Substance Painter and Substance Designer. Includes morph bones to customize shape and structure. First picture is a basic body shot. Second is an early lighting test in Unity 5. Last is a design shot of the face loops used for animating. The larger project was scrapped, but this character is still one of my favorite designs.


Modular Camera Prototype (Blender, Substance, Unity 5)
Modular camera design prototype for a photography simulator. I was disappointed in the clunky look, but it's still fairly high-quality. Modeled in Blender, textured in Substance Painter and Substance Designer, and implemented in Unity 5.

Force Field & Terrain Shaders

Force Field Shader (Unity 5)
Noise-based force-field effect with scene interaction and scaling. Made as part of a gameplay prototype. All shaders, meshes, and effect textures were done by me. The shader was created in Shader Forge. Meshes were created in Blender.

Height Blending of Splat Maps (Unity 5)
Parallax-mapped terrain shader with height-based blending. Overcomes the bland, faded look of traditionally-splatted terrains. Mesh and shader done by me in Blender and Shader Forge. Textures from Shader Forge and Artifical Creations' ATL library. The top picture shows pretty details. Bottom picture shows how the splat-map incorporates height to transition between texture sets.

Glitchy Shaders


3D-Glitchy Cartoony Skin Shader (Unity 5)
High-end, noise-based vertex-distortion with sub-surface-scattering approximation (using depth & inner-occlusion maps). The shader was drafted in Shader Forge and finished by hand. Background character uses the Unity 5 PBR Standard shader for comparison. Character and all maps created by me in Blender, Substance Painter, Substance Designer, PaintShopPro, and Inkscape. A custom shader was also written for Substance Painter to paint sub-surface-scatter maps.

2D-Glitchy Shader (Unity 5, image-effect/post-process)
Fairly straightforward image-effect that can be applied to a camera or mesh. The shader was completely created in Shader Forge. Credit to GearBox Software (Borderlands) for the scene.

Mobile & Low-end Hardware

Comic-book Shader (Unity 5, not an image-effect/post-process)
Mobile version of my comic-book shader. It runs fast (*one draw call*) with decent detail. The scene in this screenshot uses lightmaps, but the shader is also designed to handle real-time lighting if necessary. Textures were put through a one-step Substance to give them a drawn look. All meshes are static and combined to reduce GPU batches. Performance on Motorola Xoom (minimum requirement) stayed above 52 FPS. The camera's frustum is modified by script.  Credit to Cobus Saunderson (3DForge) for meshes, original texturing, and level layout. I created the shader, lookup textures, substance, and scripts

Dynamic-Character Runtime Optimization (Unity 5)
 
Mobile solution for combining dynamically-generated meshes and textures into the fewest number of rendering-batches as possible. Here, there are 64 fully-rigged characters with facial & morph bones. There are 2 atlased-textures shared across all of them. Performance on Motorola Xoom (minimum requirement) stayed above 41 FPS even with animation. Credit to UMA Steering Group for their UMA character generator and to Ian Deane for Mesh Baker, some of the source of which was used to retain bones during mesh combining. My contribution to this project was primarily in creating a management script for achieving (and tweaking) high mobile performance for a crowd of runtime-generated characters.

Skeleton Character (Unity 4, Blender)
Low-poly, rigged, skeleton character. Hand-painted diffuse map and normal map. Process involved sculpting, retopology, baked geometry/lighting maps, and texture painting. All but texturing done in Blender3D.