PLEASE NOTE: THIS ASSET HAS BEEN DEPRECATED AND IS NO LONGER AVAILABLE.
MULTI MATERIAL MASK SHADER is an advanced and flexible shader for Unity and Unity Pro that allows developers to quickly enhance the visual fidelity of any game object. Define and control up to 5 additional physical properties, as well as sub-surface-scattering, reflectivity, and color falloff warping for each material. MMM incorporates a “plug-and-play” type drop-in material system for quick and easy customization.
Multi Material Mask Shader has two components that set it apart from typical Unity shaders. The first is the usage of
“texture masks” to add additional enhanced properties to your game objects. The first texture mask will control the
addition of sub-surface-scattering, self-illumination, self-colored specular, and detail texturing.
The second texture mask controls the addition of custom “property material” textures, which set reflectivity,
metalness, tint and specular color, sub-surface-power, and add custom fresnel falloff colors for each space on the
texture as defined by the mask texture. This allows you to quickly define separate areas on your texture for different properties… such as metal vs. skin vs. cloth for example.
Additionally, Multi Material Mask Texture also allows a detail texture to be added in 3 different blending modes, multiply blend, screen blend, and color blend (with an on-shader color attribute).
The combination of these attributes bring a new level of visual fidelity to your game objects.
Documentation:
The Multi Material Mask Shader includes extensive feature documentation. You can review this documentation to get a clearer idea of how Multi Material Mask Shader can contribute to your projects. View Documentation Here.
The main shader takes 2 draw-calls, because the Sub-Surface-Scattering is re-lit in a second “back scattering” pass. I’m also including a second shader that performs in a single drawcall, the only difference being it doesn’t render lit SSS.
And finally there’s a third shader included that has SSS and exposes all the configurable physical properties which can be adjusted in real time… (such as metallic, hot specular, etc) instead of using the plug-in textures for these settings as the above 2 shaders do. this last shader is 2 drawcalls (because of the SSS).
Overall the performance is very good, as this isn’t doing any true scattering calulations, instead it is relying on texture masks, and custom fresnels for the majority of the blending and falloff work. HOWEVER, because of all the attributes in the shader it will require Shader Model 3.0 or higher.
No updates, since last April, I’ve tested it up to Unity 4.3.4 and everything is working as expected.
I haven’t received much feedback on this shader to be honest, thus I haven’t really seen where it needs improvement or changes. Any recommendations you have are more than welcome.
hopeful - I may be the only one in this forum who hasn’t checked out UMA in depth. As far as I’m aware UMA doesn’t use special shaders (does it?), any reason why this, or any other shader wouldn’t work with it?
Hmm … I’m not the one to talk technical stuff about anything, really … but UMA does need tweaked shaders from what I understand. Right now they’re tweaking Lux.
When someone was asking about the ability to use different shaders in conjunction with UMA I mentioned MMMS, but I was told it wasn’t necessary. Probably what was meant is that UMA gives the ability to break a body up into an unlimited number of sockets, and each socket can have its own shader / material, so there’s no need for masking.