Real-time amphibious skin shader, featuring self-occluding translucency, self-shadowing, subsurface parallaxing and normal mapping. The above image was captured from nVidia FX Composer 1.6, using an ASUS N7600GS.
This project started when I was trying to determine a good method for modelling forward scatter in a skin shader. I tried multiple methods, most of which took several render passes, before finally making the decision that whichever method I chose had to be cheap enough to run on an Xbox 360 in a full game engine.
Ultimately I uesd a technique for pre-processing a mesh using Maxscript and rendering the results into two textures. The results are not extraordinarliy accurate, but they are fast -- and they allow for a translucent object to roughly self-occlude.
I assembled a scene in FX Composer 1.6 to demonstrate the technique on an animated character.
I concepted and built the amphibious character using 3ds Max 9 with PolyBoost and Zbrush 3.1. My husband, Joel Mongeon, rigged and animated the character and modelled the environment using 3ds Max 9. I did all of the texturing using Zbrush 3.1 and PhotoShop CS3 (except for the cube map on the eye -- it's ATI's snow-covered mountain).
The shaders are all DXSAS fx-file encapsulated HLSL. The scene shaders (depth of field, shadows) I adapted from existing nVidia shaders which came with FX Composer. The depth of field was originally a bloom -- I added an extra z pass, adapted the filter kernel, and changed the blend mode. The shadow output was originally opaque black -- I added colour and opacity. All surface shaders I wrote myself.
The links below the image show
- Movie: The final project captured from FX Composer 2.0
- Close-up: A close-up of the amphibian shader, captured from 3ds Max 9 (using a DirectX viewport shader)
- Layers: A turnaround and composite of the different effects combined in the amphibian shader, captured from 3ds Max 9 (using multiple DirectX viewport shaders)



