Overview
Normality is a powerful plug-in that allows CG Artists to light 3D objects and scenes directly within the familiar Adobe After Effects environment through the use of normal passes and advanced relighting techniques.
Even during previews the lighting quality is always as good as your final render, while still being able to light single objects or even whole scenes in near real-time (depending on your system configuration).

All of this is achieved in near real-time because Normality does not rely on processor intensive 3D data to calculate the results.
Instead, Normality requires a rendered normal pass from your 3D program of choice — these are very quick to render and easy to apply to your objects or scenes. Just about any 3D program is able to output the required normal passes.
Normality’s Key Features
Normality includes a number of features and tools as you might know them from your 3D renderer.
- Diffuse Light
- Realistic light falloff
- Specular Highlights
- Rim Lights
- Reflections
- Refractions
- Bump/Normal Mapping
- Support for ambient, point, parallel and spot light-sources.
- Adjust light color, intensity, position and more directly via AE’s built in controls.
- Internal floating point precision gives you unlimited control over your look, even if your project is only 8bit
- Real-time preview (depending on your setup).
- All features are supported in 8-bit, 16-bit and 32-bit color modes.
- Various transfer modes allow you to composite the result onto the source in realistic, creative or simply ridiculous ways.
Caveats
Do note however that Normality is not a ray-tracer. This comes with advantages and disadvantages:
- Normality’s high render speed is only possible because it internally makes some assumptions about your scene and works with nothing but the scene normals (and depth, if applicable).
- The major disadvantage to this approach is that Normality is not aware of other layers in your composition — meaning it will reflect and refract those layers specified as environment and refraction maps respectively, but it will not render ray-traced reflections or refractions of any other layers.
- Nonetheless, there are various good and time-saving uses to this plug-in, as has been proven on several high-end productions in international animation studios and post-production facilities over the past few years.
Background Information and workflow
To understand how Normality works, it is important to get an idea of how normal passes are generated and what steps must be taken to work with them in Adobe After Effects. Don’t worry… I’ll try to spare you the technical details wherever possible.
Normal Passes
A normal pass is a bitmap file output from a 3D renderer which encodes information about the rendered object’s surface normals in the RGB channels of the image. Normality decodes this information and allows you to use it for various lighting effects inside Adobe After Effects.

Therefore, Normality requires a normal pass from your 3D application of choice in order to generate any shading. In most cases you will also want to render an ambient or albedo pass, which can be comped with the shading from Normality. These passes contain no shading information but instead just flat surface colors.
All modern 3D applications offer ways to export normal passes, but how to do that in your specific renderer is beyond the scope of this guide — please refer to your respective software’s manual or check for tutorials on the web.
Your 3D application may present you an option to create world-space, object-space, camera-space or tangent-space normal passes. Either of these may be used with Normality depending on the effect you are looking to achieve, but for general use it is advised to stick to camera-space normal passes for best results.
Also, Normality expects the normal pass to be anti-aliased, so make sure to enable that function in your 3D renderer.
Applying Normality in After Effects
Using Normality in After Effects is very simple:
- Import your rendered normal pass image or sequence into a project and add it to your composition.
- From the “Effects and Presets” Panel or the “Effects” menu pick Normality in the “minning.de Normality” folder and apply this filter to your normal pass.
- Finally, add a point light to your scene… voilà, your object should now appear with some basic shading!
You can then tweak the shading using various parameters offered by Normality and by adjusting the color, intensity and position of the light source — or simply add additional light sources to develop a more sophisticated look.
Parameters
As you can probably tell from the massive screenshot below, Normality is a complex plug-in and has many parameters that may in some cases not be self-explanatory. This manual only offers a quick overview of the various options and possibilities.
Therefore it is suggested that you play around with the different attributes and parameters for a while in order to get a feel for the power and versatility of this software.

Display
Display
This drop-down box allows you to choose which lighting effects Normality should render. You may choose to render all effects or enable a single effect for preview purposes and to speed-up your renders.
It is also possible to preview your normal- and depth pass as well as the normal pass as it appears to Normality after processing using the tools in the next section.
Normals
Normal Map
If you applied the Normality plug-in to your beauty pass or for some other reason you need to manually specify the normal pass to use, this is the place to do so.
Alpha Map
Specify an alpha map to use here. This can be useful if your normal pass contains no alpha information or the outlines appear unclean.
X
Choose the channel for the normal’s X-axis (Red is default).
Invert X
Invert the normals on the X-axis.
Y
Choose the channel for the normal’s Y-axis (Green is default).
Invert Y
Invert the normals on the Y-axis.
Z
Choose the channel for the normal’s Z-axis (Blue is default).
Invert Z
Invert the normals on the Z-axis.
Depth
Depth Map
This option allows you to specify a depth map which will be evaluated along with the normal map for additional data about your scene.
The depth map is not mandatory but can in many cases improve shading on planar objects, especially when reflections are enabled.
Invert
Invert the depth map.
Channel
Specify which channel contains your depth information. Usually a depth pass is a grey scale image, so the default “Luminance” should be applied in most circumstances.
Gamma
A gamma function to raise the contrast in your depth map.
Lights
Render
You may choose to render all lights or only specific lights prefixed with the word “Light”.
For example, setting this parameter to Light * means “Light 1”, “Light 6” and “Light 12” will contribute to shading in Normality, but “MyLight” and “OtherLight” will not.
Enable invisible lights
Check this if you want invisible (disabled) lights to affect shading.
Falloff
The falloff function determines by how much each light’s energy decreases after traveling a certain distance. You may choose from the options Constant (the energy does not decline), Linear, Quadratic and Cubic.

Hint: Quadratic is the most realistic falloff mode but it may require you to raise your lights’ intensities significantly.
Attenuation
Use the Attenuation slider to influence the light’s Falloff distances.
Exposure
A multiplier for the overall shading intensity in the scene.
Gamma
This function can help to achieve a more realistic look by allowing the lighting calculations to be run in a color space more appropriate for the final output medium.
Hint: Setting Falloff to Quadratic and Gamma to 2.2 results in a more natural looking light.
Shading
The following functions deal with the actual shading of your objects. By default, only diffuse shading is enabled.
Individual shading functions may be toggled on/off separately to ensure quick and responsive interaction with the software. No calculations are performed for disabled shading functions, so be sure to enable only the features you really need!
Hint: The more shading features you enable, the brighter your scene will become — it may be necessary to tone down some of the intensities to avoid blowing out your lighting.

Enable
Toggle whether diffuse shading is calculated or not.
Diffuse
The intensity of the diffuse (Lambertian) shading function.
Color
Pick the color of your objects.
Ambient
The ambient factor is a multiplier for the diffuse shading. This can be used to add a colored tint to your shading.
By default it is set to medium gray; brighter values will brighten your shading and vice-versa.
Incandescence
The color set as incandescent will be added to the result of the diffuse shading. Use this to create self-illuminated objects.
Specular
A specular highlight is the bright spot of light that appears on shiny objects when illuminated. These are particularly important in CG because they give strong visual cues about a material’s qualities and surface texture.

Enable
Toggle whether specular highlights are calculated or not.
Specular
Controls the intensity of the specular highlights. Note that you may have to set this parameter to > 1.0 to achieve pleasing effects.
Spread
The overall size of the highlights. Higher values result in larger highlights.
Specular Color
You may want to set a separate color for specular highlights to simulate different materials. For example, plastic materials tend to have white highlights, whereas metallic material’s are generally close to their diffuse color.
Specular Map
The luminance in the specular map controls the intensity of specular highlights across your object.
Hint: Use this to break up your specs for a more rugged appearance.
Blur
Choose how much you want to blur the specular map.
Offset
You may control the position of the specular map in screen-space by using the Offset parameters.
Scale
You may control the relative scale of the specular map in screen-space by using the Scale parameter.
Blend
Select the blend mode which is used to blend the specular highlights with the diffuse shading. By default (and in most cases) this is set to “Add”.
Incidence
This gives you the option to shade your object based on the viewing angle, also called angle of incidence. The effect can be used to simulate a strong light shining from behind the object or to accentuate an object’s edges.
Enable
Toggle whether the incidence shader is called.
Incidence
Set the intensity of the incidence shading.
Falloff
Control the range of angles affected by the shader.
Color
Set the incidence shading color.
Blend
Select the blend mode which is used to blend the incidence shader.
Rim Light
A rim light is a light shining from behind an object and is used in film and photography to accentuate an object’s edges and silhouette. Note that Normality’s rim light works independent of the scene’s actual light sources in order to provide more control to the artist.

Enable
Toggle whether a rim light is calculated or not.
Rim Light
Set the intensity of the rim light.
Size
Set how far you want the effect of the rim light to reach into the forward facing areas of your object.
Width
Controls the softness of the rim light.
Color
Set the rim light’s color.
Angle
Control the angle at which you want to apply rim lighting.
Blend
Select the blend mode which is used to blend the rim light. By default (and for most uses) this is set to “Add”.
Toon
Toon or cel shading is a special case where photorealistic rules go straight out the window. Normality is capable of rendering accurate cartoon shading effects that make it simple to integrate 2D and 3D animation within After Effects.
This feature is designed specifically to work in combination with my other plug-in Celulight but it is still possible to achieve good results with Normality alone.

Enable
Toggle whether toon shading is calculated or not.
Toon
Control the intensity of the toon shading effect.
Smoothing
Control the shading smoothness between shadow, color and highlights.
Shadow
Choose a color for your shadows.
Strength
Controls the intensity of shadows.
Width
How far into the surface should shadows reach.
Color
Set the toon shader’s main color.
Width
Control where the normal shading ends and highlights begin.
Spec
Choose a color for highlights.
Strength
Controls the intensity of highlights.
Blend
Select the blend mode which is used to blend the toon shading. By default this is set to “Normal”.
Gradient
The gradient function gathers the luminance from the normal pass. This can be used to attenuate shading on your objects for artistic effect but has no equivalent in reality.
You might be able to use this as a sort of poor-mans ambient occlusion in lieu of a proper occlusion pass.

Enable
Toggle whether a gradient is calculated or not.
Gradient
Control the strength with which the gradient function is applied to the shading.
Tint
Tint the gradient any color you like.
Blend
Select the blend mode which is used to blend the gradient. “Overlay” and “Mix” have shown to provide nice results.
Reflection
Normality can be used to create fake reflections off of an environment map. Note that other layers in your scene will not be reflected.

Enable
Toggle whether reflections are calculated or not.
Environment Map
Choose a layer which should act as an environment map. Note that the map does not have to be high in resolution. In fact, the smaller the environment map, the quicker it will render, especially when applying blurred reflections.
Reflection
Control the overall strength of the reflection.
Mode
Toggle between Panorama and Spherical reflection modes. Which mode you choose here will depend on the type of environment map you are using.
Gamma
Use this to add more contrast to your reflections.
Tile Mode
Control what to do when a reflection sample misses the environment map. “None” sets the sample to black, “Edge” picks the nearest edge color, “Repeat” tiles the environment map and “Mirror” tiles and mirrors the map.
Blur
Allows you to blur the reflections. Note that high blur values will dramatically increase your render time.
Tint
Tint the environment map.
Inclination
Control the angle between the imaginary ground plane and the environment.
Azimut
Rotate the environment around its Y-Axis.
Seam
Control the relative size of the environment.
Index of refraction
The index of refraction works in combination with Panorama mode and controls the angle at which light is reflected from the surface.
Fresnel
The fresnel parameter can be used to influence the intensity of reflections dependent on the viewing angle upon the surface. In reality, reflections tend to be stronger at glancing angles than when looking straight on.
Fresnel Depth
The fresnel depth controls the falloff of the fresnel function dependent on the angle of incidence.
Blend
Select the blend mode which is used to blend the reflections. “Add” is the most realistic option.
Refraction
Normality can be used to create fake refractions or transparency from another layer in order to create effects such as glass or crystal objects.
Note that Normality does not take into account composition layers other than the one selected as a refraction map. If you need to see more than one layer through your object, you must pre-compose the respective layers first.

Enable
Toggle whether refractions are calculated or not.
Refraction Map
Choose the layer in your composition which should act as a refraction map.
Refraction
Control the strength of the refraction function.
Gamma
Use this to add contrast to your refractions.
Tile Mode
Control what to do when a sample misses the refraction map. “None” sets the sample to black, “Edge” picks the nearest edge color, “Repeat” tiles the refraction map and “Mirror” tiles and mirrors the map.
Blur
Allows you to blur the refractions. Note that high blur values will dramatically increase your render time.
Offset
You may control the position of the refraction map in screen-space by using the Offset parameters.
Scale
You may control the relative scale of the refraction map in screen-space by using the Scale parameter.
Tint
Tint the refraction map.
Index of refraction
The index of refraction controls the angle at which light is refracted when passing through a surface.
Fresnel
The fresnel parameter can be used to influence the intensity of refraction dependent on the viewing angle upon the surface. In reality, refractions tend to be weaker at glancing angles than when looking straight on.
Fresnel Depth
The fresnel depth controls the falloff of the fresnel function dependent on the angle of incidence.
Blend
Select the blend mode which is used to blend the refractions. “Add” is usually the preferred option.
Bump
An additional bump- or normal map may be used to add more surface detail to your scene. This may be useful if your rendered normal pass lacks detail or you simply want to add more features from another layer.

Enable
Toggle whether bump mapping is calculated or not.
Bump/Normal Map
Select a layer which should act as your bump/normal map.
Depth
Control the Intensity of the additional bump mapping.
Tile Mode
Control what to do when the bump sample function misses the bump map. “None” sets the sample to black, “Edge” picks the nearest edge color, “Repeat” tiles the bump map and “Mirror” tiles and mirrors the map.
Filter
To avoid harsh edges you may want to filter the bump map using the “Low”, “Medium” or “High” filter settings.
Offset
You may control the position of the bump map in screen-space by using the Offset parameters.
Scale
You may control the relative scale of the bump map in screen-space by using the Scale parameter.
Blending
Depending on how you applied Normality you may want to blend it with the source layer for example using the Add, Overlay or Soft Light modes.
If Normality is applied directly to the normal pass it makes more sense to use After Effects’s native layer blend modes.
Transfer Mode
Choose from any of After Effects’ built-in blend modes that determines how the result of Normality’s shading operation is applied to the source layer.
Blend
The intensity of the source layer in the blending operation.
Source
Dial-in some color from the source layer independent of the transfer mode chosen.
Final Words
I hope this guide helped make the numerous functions and capabilities of Normality a bit more accessible.
Please note that by using Normality in production you agree to display my name in the credits as part of the license agreement. Also please consider donating; developing and updating software takes a lot of time and I will be more likely to release cool stuff in the future if I see that my work is appreciated.