Monday, November 25, 2013

Material Layering in UE3

It's been a while. I've been super busy working on thesis, none of which I'm able to show yet. So I'll share something I made a while back in September.
It's a material that tries to emulate the material layering system that is present in next generation engines.

You are able to control how rough a material is, which is controlled through gloss that is linked to blurring of a cubemap. So if you were to want something like chrome, the reflection would not be blurry and the specular highlight would be smaller. If you were going for something like iron, the reflection would get blurrier and the highlight would be wider.

Next, I had it so that you are able to plug in a RGB texture mask to determine the individual material definition parameters of each material at a per-pixel level. Alternatively I had a procedural mask system for simpler assets (as well as save on a texture look-up) where you could simply place your UVs to one of 4 sides a square to determine their material.

It's all tied together by plugging in your normal and AO maps straight out of Xnormal. Further material detention can be controlled through tillable normal maps and gloss maps for a bit more wear and tear.

It's a pretty huge material network even with nodes nested in material expressions. End result was a pretty good prototype for cutting texturing our of the pipeline and saving lots of time.