Custom Deferred Material Shading
A project to extend Unity's existing deferred renderer with multiple material BRDFs. I modified the gbuffer layout and shading system to internally use metalness instead of specular, freeing up to two color channels for extra surface data. A material type ID is written to the alpha channel of the Normal buffer, where 0 is standard, 1 is translucent, 2 is skin/flesh, and 3 is clear coat. 1 and 2 build on my previous work on faked subsurface scattering. 3 adds a new clear coat BRDF for materials such as car paint, emulating the appearance of a clear shiny coating on top of a metallic under-layer in a physically plausible manner. All of these are fully supported in a deferred context with no need for a separate forward pass for these BRDFs.
Alan Stagner (Jet Fist Games)
Freelance General Developer - Programmer