Cogito, ergo sum
Legacy:Unreal Engine 3 Materials
This page is about the Material/Shaders used in Unreal Engine 3 games. It explains the channels and properties and to which effect they are used.
The Diffuse channel handles the base color of the of the material. Basically when light hits the materials surface it gets reflected and the diffuse channel has the information which color of the incomming light will be reflected, resulting in the material appearing to have this color. Accordingly for this channel to have any visible effect on the material there has to be light illuminating the material.
The Emissive channel simulates the material emitting light. This means that whatever color or texture you put in here will appear to be illuminated or even glowing. For this channel the material can be unlit and still have an effect. The channel also supports input of color values greater than between 0 and 1. Every input value greater than 1 will result in a more intensive glow of the material.
The Specular channel simulates highlights on the material as a result of reflected light, thus handling the shinyness of the material. Obviously to have highlights the material needs to be lit.
The SpecularPower channel controls the appearance of the highlights on the materials surface. It accepts only 1 channel as input. Lower values lead to softer highlights, higher values lead to concentrated highlights.
The opacity channel handles the transparency of the material. It only accepts one channel as input, where white represents fully opaque, grey values semi-transparent and black fully transparent areas on the material. For the opacity channel to be used the BlendMode of the material needs to be set to BLEND_Translucent (/BLEND_Modulated?/BLEND_ADDITIVE?).
Note: In translucent blend mode all lighting on the material will be discarded. Since there is no light on the material in this mode the diffuse channel will always result in complete black and specularity channel is useless in this mode. The color of the material thus goes into the Emissive channel. Specularity effects can still be faked with approriate material setups via Emissive and Opacity channel. In addition consider setting the materials LightingModel to MLM_Unlit, as this is processed faster and results in the same in this case.
The OpacityMask channel accepts a mask as input. This means it will accept values of either complete black or complete white. Otherwise it works just as the Opacity channel and can be used to setup transparency wherever no semi-transparent areas are needed on the material. For this channel to be used the material's BlendMode needs to be set to BLEND_Masked.
Note: In BLEND_Masked BlendMode the lighting information on the material is kept, so try to use this rather than BLEND_Translucent wherever possible.
The Distortion channel simulates refraction of light by the material. It accepts either a normal map (3 channels/RGB) or an alpha/bump map (1 channel/Greyscale) as input.
The TransmissionMask simulates an effect known as Subsurfacescattering (SSS). It controls where light can seep through the material, pick up a color and leave the material on the other side. Good examples of this in the real world would be shining a bright light through your hand or a piece of paper. This channel accepts 1 channel where in white areas this effect gets applied, in grey areas it gets partly applied and in black areas does not get applied.
During the process of light seeping through a material as described for TransmissionMask channel it picks up the color of the material it seeps through. This channel controls of which color the light will be when it leaves the material.
The Normal channel simulates the surface structure of the material and can be used to give the material more depth and detail. It accepts either a normal map (3 channel/RGB) or an alpha/bump map (1 channel/Greyscale) as input.
The CustomLighting channel can be used to setup an individual lighting model for the material when something different than Phong shading is needed. For this to be used the material's LightingModel needs to be set to MLM_Custom.