Normality 3 User Guide

Nor­mal­ity is a pow­er­ful plug-​​in that allows CG Artists to light 3D objects and scenes directly within the famil­iar Adobe After Effects envi­ron­ment through the use of nor­mal passes and advanced relight­ing techniques.

Even dur­ing pre­views the light­ing qual­ity is always as good as your final ren­der, while still being able to light sin­gle objects or even whole scenes in near real-​​time (depend­ing on your sys­tem configuration).

normality-overview

All of this is achieved in near real-​​time because Nor­mal­ity does not rely on proces­sor inten­sive 3D data to cal­cu­late the results.
Instead, Nor­mal­ity requires a ren­dered nor­mal pass from your 3D pro­gram of choice — these are very quick to ren­der and easy to apply to your objects or scenes. Just about any 3D pro­gram is able to out­put the required nor­mal passes.

Normality’s Key Features

Nor­mal­ity includes a num­ber of fea­tures and tools as you might know them from your 3D renderer.

  • Dif­fuse Light
  • Real­is­tic light falloff
  • Spec­u­lar Highlights
  • Rim Lights
  • Reflec­tions
  • Refrac­tions
  • Bump/​Normal Mapping
  • Sup­port for ambi­ent, point, par­al­lel and spot light-​​sources.
  • Adjust light color, inten­sity, posi­tion and more directly via AE’s built in controls.
  • Inter­nal float­ing point pre­ci­sion gives you unlim­ited con­trol over your look, even if your project is only 8bit
  • Real-​​time pre­view (depend­ing on your setup).
  • All fea­tures are sup­ported in 8-​​bit, 16-​​bit and 32-​​bit color modes.
  • Var­i­ous trans­fer modes allow you to com­pos­ite the result onto the source in real­is­tic, cre­ative or sim­ply ridicu­lous ways.

Caveats

Do note how­ever that Nor­mal­ity is not a ray-​​tracer. This comes with advan­tages and disadvantages:

  • Normality’s high ren­der speed is only pos­si­ble because it inter­nally makes some assump­tions about your scene and works with noth­ing but the scene nor­mals (and depth, if applicable).
  • The major dis­ad­van­tage to this approach is that Nor­mal­ity is not aware of other lay­ers in your com­po­si­tion — mean­ing it will reflect and refract those lay­ers spec­i­fied as envi­ron­ment and refrac­tion maps respec­tively, but it will not ren­der ray-​​traced reflec­tions or refrac­tions of any other layers.
  • Nonethe­less, there are var­i­ous good and time-​​saving uses to this plug-​​in, as has been proven on sev­eral high-​​end pro­duc­tions in inter­na­tional ani­ma­tion stu­dios and post-​​production facil­i­ties over the past few years.

Compatibility

The plug-​​in is com­piled to work on the Win­dows (x86) and Mac OS X (x86) plat­forms under Adobe After Effects CS3 and up.

Frequently Asked Questions

New answers are added all the time.

  1. How do I use Nor­mal­ity?
    Please refer to the Nor­mal­ity 3 User Guide or check out the tuto­r­ial videos on Youtube: Nor­mal­ity 3 Video Tuto­r­ial and Part 2.
  2. How do I install the plug-​​in?
    Sim­ply copy the plug-​​in file (normality.aex on Win­dows and normality.plugin on Mac OS X) to your Adobe After Effects plug-​​ins folder.
  3. I’ve applied Nor­mal­ity to my nor­mal pass layer but noth­ing hap­pens — every­thing is black!!
    You prob­a­bly for­got to add a light to your After Effects scene.
  4. How do I export a nor­mal pass from 3ds max /​ Maya /​ Cin­ema 4D /​ Sof­t­im­age /​ Blender…?!
    Sorry, I’m not famil­iar with the work­flow of each and every 3D pro­gram. Please refer to your 3D renderer’s doc­u­men­ta­tion or con­sult a pro­fes­sional graph­ics board such as CGTalk or Cre­ative­Cow for assistance.
  5. My 3D ren­derer wants me to choose between world-​​, object-​​, cam­era– and tangent-​​space nor­mal passes!
    While Nor­mal­ity will hap­pily accept any nor­mals you offer it, in every­day pro­duc­tion sit­u­a­tions camera-​​space nor­mal passes have proven to be the most use­ful option.
  6. I still can’t fig­ure this out, can you help me with Nor­mal­ity?
    Gen­er­ally speak­ing, no. I sim­ply don’t have the time for indi­vid­ual user sup­port of my free software.
  7. The shaded objects show some alias­ing arti­facts.
    Nor­mal­ity expects the nor­mal passes you feed it to be prop­erly anti-​​aliased, so make sure to set your 3D ren­derer to fil­ter them. Sim­pler fil­ters such as “Box” and “Gauss­ian” should be pre­ferred over more harsh fil­ters like “Mitchell” or “Lanc­zos” in order to mit­i­gate alias­ing effects between over­lap­ping objects.
    Unfor­tu­nately, in some cases alias­ing arti­facts are unavoid­able as any 2D relight­ing solu­tion obvi­ously relies on the nor­mal passes’ pixel val­ues. If the 3D ren­derer blended the pix­els between over­lap­ping objects it will con­fuse Nor­mal­ity and cause unsightly effects such as aliasing.
  8. Is it pos­si­ble to ani­mate the shad­ing and light­ing effects?
    Absolutely. You may set keys for all shad­ing para­me­ters and ani­mate the lights using After Effects’ built-​​in controls.
  9. Does Nor­mal­ity work in Com­bus­tion or Dig­i­tal Fusion?
    No. Nor­mal­ity uses a newer ver­sion of the After Effects API that other ven­dors have so far not implemented.
  10. I get a run-​​time error when­ever I apply Nor­mal­ity on Win­dows!
    You must install the Microsoft Visual C++ 2008 SP1 run-​​time library.
  11. Nor­mal­ity just says “After Effects error: Couldn’t find main entry point for normality.plugin (48::72)?“
    Your Mac is based on the old Pow­erPC archi­tec­ture, whereas Nor­mal­ity requires a mod­ern Intel proces­sor. See the entry in my jour­nal.
  12. Nor­mal­ity crashes on me a lot.
    Sorry ’bout that ;)

    I’ve found that the occa­sional crash hap­pens only in OpenGL pre­view mode — switch­ing to “Adap­tive Res­o­lu­tion” makes the plug-​​in run rock-​​solid over here.

  13. Will you add *insert ran­dom fea­ture* for me?
    If I find it par­tic­u­larly use­ful, I might, maybe.

Background Information and workflow

To under­stand how Nor­mal­ity works, it is impor­tant to get an idea of how nor­mal passes are gen­er­ated and what steps must be taken to work with them in Adobe After Effects. Don’t worry… I’ll try to spare you the tech­ni­cal details wher­ever possible.

Normal Passes

A nor­mal pass is a bitmap file out­put from a 3D ren­derer which encodes infor­ma­tion about the ren­dered object’s sur­face nor­mals in the RGB chan­nels of the image. Nor­mal­ity decodes this infor­ma­tion and allows you to use it for var­i­ous light­ing effects inside Adobe After Effects.

normality-camera

There­fore, Nor­mal­ity requires a nor­mal pass from your 3D appli­ca­tion of choice in order to gen­er­ate any shad­ing. In most cases you will also want to ren­der an ambi­ent or albedo pass, which can be comped with the shad­ing from Nor­mal­ity. These passes con­tain no shad­ing infor­ma­tion but instead just flat sur­face colors.

All mod­ern 3D appli­ca­tions offer ways to export nor­mal passes, but how to do that in your spe­cific ren­derer is beyond the scope of this guide — please refer to your respec­tive software’s man­ual or check for tuto­ri­als on the web.

Your 3D appli­ca­tion may present you an option to cre­ate world-​​space, object-​​space, camera-​​space or tangent-​​space nor­mal passes. Either of these may be used with Nor­mal­ity depend­ing on the effect you are look­ing to achieve, but for gen­eral use it is advised to stick to camera-​​space nor­mal passes for best results.

Also, Nor­mal­ity expects the nor­mal pass to be anti-​​aliased, so make sure to enable that func­tion in your 3D renderer.

Applying Normality in After Effects

Using Nor­mal­ity in After Effects is very simple:

  1. Import your ren­dered nor­mal pass image or sequence into a project and add it to your composition.
  2. From the “Effects and Pre­sets” Panel or the “Effects” menu pick Nor­mal­ity in the “minning.de Nor­mal­ity” folder and apply this fil­ter to your nor­mal pass.
  3. Finally, add a point light to your scene… voilà, your object should now appear with some basic shading!

You can then tweak the shad­ing using var­i­ous para­me­ters offered by Nor­mal­ity and by adjust­ing the color, inten­sity and posi­tion of the light source — or sim­ply add addi­tional light sources to develop a more sophis­ti­cated look.


Parameters

As you can prob­a­bly tell from the mas­sive screen­shot below, Nor­mal­ity is a com­plex plug-​​in and has many para­me­ters that may in some cases not be self-​​explanatory. This man­ual only offers a quick overview of the var­i­ous options and possibilities.

There­fore it is sug­gested that you play around with the dif­fer­ent attrib­utes and para­me­ters for a while in order to get a feel for the power and ver­sa­til­ity of this software.

normality-controls

Display

Dis­play

This drop-​​down box allows you to choose which light­ing effects Nor­mal­ity should ren­der. You may choose to ren­der all effects or enable a sin­gle effect for pre­view pur­poses and to speed-​​up your ren­ders.
It is also pos­si­ble to pre­view your nor­mal– and depth pass as well as the nor­mal pass as it appears to Nor­mal­ity after pro­cess­ing using the tools in the next section.


Normals

Nor­mal Map

If you applied the Nor­mal­ity plug-​​in to your beauty pass or for some other rea­son you need to man­u­ally spec­ify the nor­mal pass to use, this is the place to do so.

Alpha Map

Spec­ify an alpha map to use here. This can be use­ful if your nor­mal pass con­tains no alpha infor­ma­tion or the out­lines appear unclean.

X

Choose the chan­nel for the normal’s X-​​axis (Red is default).

Invert X

Invert the nor­mals on the X-​​axis.

Y

Choose the chan­nel for the normal’s Y-​​axis (Green is default).

Invert Y

Invert the nor­mals on the Y-​​axis.

Z

Choose the chan­nel for the normal’s Z-​​axis (Blue is default).

Invert Z

Invert the nor­mals on the Z-​​axis.


Depth

Depth Map

This option allows you to spec­ify a depth map which will be eval­u­ated along with the nor­mal map for addi­tional data about your scene.

The depth map is not manda­tory but can in many cases improve shad­ing on pla­nar objects, espe­cially when reflec­tions are enabled.

Invert

Invert the depth map.

Chan­nel

Spec­ify which chan­nel con­tains your depth infor­ma­tion. Usu­ally a depth pass is a grey scale image, so the default “Lumi­nance” should be applied in most circumstances.

Gamma

A gamma func­tion to raise the con­trast in your depth map.


Lights

Ren­der

You may choose to ren­der all lights or only spe­cific lights pre­fixed with the word “Light”.

For exam­ple, set­ting this para­me­ter to Light * means “Light 1”, “Light 6” and “Light 12” will con­tribute to shad­ing in Nor­mal­ity, but “MyLight” and “Oth­erLight” will not.

Enable invis­i­ble lights

Check this if you want invis­i­ble (dis­abled) lights to affect shading.

Falloff

The falloff func­tion deter­mines by how much each light’s energy decreases after trav­el­ing a cer­tain dis­tance. You may choose from the options Con­stant (the energy does not decline), Lin­ear, Qua­dratic and Cubic.

light-falloff

Hint: Qua­dratic is the most real­is­tic falloff mode but it may require you to raise your lights’ inten­si­ties significantly.

Atten­u­a­tion

Use the Atten­u­a­tion slider to influ­ence the light’s Falloff distances.

Expo­sure

A mul­ti­plier for the over­all shad­ing inten­sity in the scene.

Gamma

This func­tion can help to achieve a more real­is­tic look by allow­ing the light­ing cal­cu­la­tions to be run in a color space more appro­pri­ate for the final out­put medium.

Hint: Set­ting Falloff to Qua­dratic and Gamma to 2.2 results in a more nat­ural look­ing light.


Shading

The fol­low­ing func­tions deal with the actual shad­ing of your objects. By default, only dif­fuse shad­ing is enabled.
Indi­vid­ual shad­ing func­tions may be tog­gled on/​off sep­a­rately to ensure quick and respon­sive inter­ac­tion with the soft­ware. No cal­cu­la­tions are per­formed for dis­abled shad­ing func­tions, so be sure to enable only the fea­tures you really need!

Hint: The more shad­ing fea­tures you enable, the brighter your scene will become — it may be nec­es­sary to tone down some of the inten­si­ties to avoid blow­ing out your lighting.

normality-diff
Enable

Tog­gle whether dif­fuse shad­ing is cal­cu­lated or not.

Dif­fuse

The inten­sity of the dif­fuse (Lam­bert­ian) shad­ing function.

Color

Pick the color of your objects.

Ambi­ent

The ambi­ent fac­tor is a mul­ti­plier for the dif­fuse shad­ing. This can be used to add a col­ored tint to your shading.

By default it is set to medium gray; brighter val­ues will brighten your shad­ing and vice-​​versa.

Incan­des­cence

The color set as incan­des­cent will be added to the result of the dif­fuse shad­ing. Use this to cre­ate self-​​illuminated objects.


Specular

A spec­u­lar high­light is the bright spot of light that appears on shiny objects when illu­mi­nated. These are par­tic­u­larly impor­tant in CG because they give strong visual cues about a material’s qual­i­ties and sur­face texture.

normality-spec
Enable

Tog­gle whether spec­u­lar high­lights are cal­cu­lated or not.

Spec­u­lar

Con­trols the inten­sity of the spec­u­lar high­lights. Note that you may have to set this para­me­ter to > 1.0 to achieve pleas­ing effects.

Spread

The over­all size of the high­lights. Higher val­ues result in larger highlights.

Spec­u­lar Color

You may want to set a sep­a­rate color for spec­u­lar high­lights to sim­u­late dif­fer­ent mate­ri­als. For exam­ple, plas­tic mate­ri­als tend to have white high­lights, whereas metal­lic material’s are gen­er­ally close to their dif­fuse color.

Spec­u­lar Map

The lumi­nance in the spec­u­lar map con­trols the inten­sity of spec­u­lar high­lights 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 spec­u­lar map.

Off­set

You may con­trol the posi­tion of the spec­u­lar map in screen-​​space by using the Off­set para­me­ters.

Scale

You may con­trol the rel­a­tive scale of the spec­u­lar map in screen-​​space by using the Scale para­me­ter.

Blend

Select the blend mode which is used to blend the spec­u­lar high­lights with the dif­fuse shad­ing. By default (and in most cases) this is set to “Add”.


Incidence

This gives you the option to shade your object based on the view­ing angle, also called angle of inci­dence. The effect can be used to sim­u­late a strong light shin­ing from behind the object or to accen­tu­ate an object’s edges.

Enable

Tog­gle whether the inci­dence shader is called.

Inci­dence

Set the inten­sity of the inci­dence shading.

Falloff

Con­trol the range of angles affected by the shader.

Color

Set the inci­dence shad­ing color.

Blend

Select the blend mode which is used to blend the inci­dence shader.


Rim Light

A rim light is a light shin­ing from behind an object and is used in film and pho­tog­ra­phy to accen­tu­ate an object’s edges and sil­hou­ette. Note that Normality’s rim light works inde­pen­dent of the scene’s actual light sources in order to pro­vide more con­trol to the artist.

normality-rim
Enable

Tog­gle whether a rim light is cal­cu­lated or not.

Rim Light

Set the inten­sity of the rim light.

Size

Set how far you want the effect of the rim light to reach into the for­ward fac­ing areas of your object.

Width

Con­trols the soft­ness of the rim light.

Color

Set the rim light’s color.

Angle

Con­trol 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 shad­ing is a spe­cial case where pho­to­re­al­is­tic rules go straight out the win­dow. Nor­mal­ity is capa­ble of ren­der­ing accu­rate car­toon shad­ing effects that make it sim­ple to inte­grate 2D and 3D ani­ma­tion within After Effects.

This fea­ture is designed specif­i­cally to work in com­bi­na­tion with my other plug-​​in Celu­light but it is still pos­si­ble to achieve good results with Nor­mal­ity alone.

normality-toon
Enable

Tog­gle whether toon shad­ing is cal­cu­lated or not.

Toon

Con­trol the inten­sity of the toon shad­ing effect.

Smooth­ing

Con­trol the shad­ing smooth­ness between shadow, color and highlights.

Shadow

Choose a color for your shadows.

Strength

Con­trols the inten­sity of shadows.

Width

How far into the sur­face should shad­ows reach.

Color

Set the toon shader’s main color.

Width

Con­trol where the nor­mal shad­ing ends and high­lights begin.

Spec

Choose a color for highlights.

Strength

Con­trols the inten­sity of highlights.

Blend

Select the blend mode which is used to blend the toon shad­ing. By default this is set to “Normal”.


Gradient

The gra­di­ent func­tion gath­ers the lumi­nance from the nor­mal pass. This can be used to atten­u­ate shad­ing on your objects for artis­tic effect but has no equiv­a­lent in reality.

You might be able to use this as a sort of poor-​​mans ambi­ent occlu­sion in lieu of a proper occlu­sion pass.

normality-gradient
Enable

Tog­gle whether a gra­di­ent is cal­cu­lated or not.

Gra­di­ent

Con­trol the strength with which the gra­di­ent func­tion is applied to the shading.

Tint

Tint the gra­di­ent any color you like.

Blend

Select the blend mode which is used to blend the gra­di­ent. “Over­lay” and “Mix” have shown to pro­vide nice results.


Reflection

Nor­mal­ity can be used to cre­ate fake reflec­tions off of an envi­ron­ment map. Note that other lay­ers in your scene will not be reflected.

normality-reflection
Enable

Tog­gle whether reflec­tions are cal­cu­lated or not.

Envi­ron­ment Map

Choose a layer which should act as an envi­ron­ment map. Note that the map does not have to be high in res­o­lu­tion. In fact, the smaller the envi­ron­ment map, the quicker it will ren­der, espe­cially when apply­ing blurred reflections.

Reflec­tion

Con­trol the over­all strength of the reflection.

Mode

Tog­gle between Panorama and Spher­i­cal reflec­tion modes. Which mode you choose here will depend on the type of envi­ron­ment map you are using.

Gamma

Use this to add more con­trast to your reflections.

Tile Mode

Con­trol what to do when a reflec­tion sam­ple misses the envi­ron­ment map. “None” sets the sam­ple to black, “Edge” picks the near­est edge color, “Repeat” tiles the envi­ron­ment map and “Mir­ror” tiles and mir­rors the map.

Blur

Allows you to blur the reflec­tions. Note that high blur val­ues will dra­mat­i­cally increase your ren­der time.

Tint

Tint the envi­ron­ment map.

Incli­na­tion

Con­trol the angle between the imag­i­nary ground plane and the environment.

Azimut

Rotate the envi­ron­ment around its Y-​​Axis.

Seam

Con­trol the rel­a­tive size of the environment.

Index of refraction

The index of refrac­tion works in com­bi­na­tion with Panorama mode and con­trols the angle at which light is reflected from the surface.

Fres­nel

The fres­nel para­me­ter can be used to influ­ence the inten­sity of reflec­tions depen­dent on the view­ing angle upon the sur­face. In real­ity, reflec­tions tend to be stronger at glanc­ing angles than when look­ing straight on.

Fres­nel Depth

The fres­nel depth con­trols the falloff of the fres­nel func­tion depen­dent on the angle of incidence.

Blend

Select the blend mode which is used to blend the reflec­tions. “Add” is the most real­is­tic option.


Refraction

Nor­mal­ity can be used to cre­ate fake refrac­tions or trans­parency from another layer in order to cre­ate effects such as glass or crys­tal objects.

Note that Nor­mal­ity does not take into account com­po­si­tion lay­ers other than the one selected as a refrac­tion map. If you need to see more than one layer through your object, you must pre-​​compose the respec­tive lay­ers first.

normality-refraction
Enable

Tog­gle whether refrac­tions are cal­cu­lated or not.

Refrac­tion Map

Choose the layer in your com­po­si­tion which should act as a refrac­tion map.

Refrac­tion

Con­trol the strength of the refrac­tion function.

Gamma

Use this to add con­trast to your refractions.

Tile Mode

Con­trol what to do when a sam­ple misses the refrac­tion map. “None” sets the sam­ple to black, “Edge” picks the near­est edge color, “Repeat” tiles the refrac­tion map and “Mir­ror” tiles and mir­rors the map.

Blur

Allows you to blur the refrac­tions. Note that high blur val­ues will dra­mat­i­cally increase your ren­der time.

Off­set

You may con­trol the posi­tion of the refrac­tion map in screen-​​space by using the Off­set para­me­ters.

Scale

You may con­trol the rel­a­tive scale of the refrac­tion map in screen-​​space by using the Scale para­me­ter.

Tint

Tint the refrac­tion map.

Index of refraction

The index of refrac­tion con­trols the angle at which light is refracted when pass­ing through a surface.

Fres­nel

The fres­nel para­me­ter can be used to influ­ence the inten­sity of refrac­tion depen­dent on the view­ing angle upon the sur­face. In real­ity, refrac­tions tend to be weaker at glanc­ing angles than when look­ing straight on.

Fres­nel Depth

The fres­nel depth con­trols the falloff of the fres­nel func­tion depen­dent on the angle of incidence.

Blend

Select the blend mode which is used to blend the refrac­tions. “Add” is usu­ally the pre­ferred option.


Bump

An addi­tional bump– or nor­mal map may be used to add more sur­face detail to your scene. This may be use­ful if your ren­dered nor­mal pass lacks detail or you sim­ply want to add more fea­tures from another layer.

normality-bump
Enable

Tog­gle whether bump map­ping is cal­cu­lated or not.

Bump/​Normal Map

Select a layer which should act as your bump/​normal map.

Depth

Con­trol the Inten­sity of the addi­tional bump mapping.

Tile Mode

Con­trol what to do when the bump sam­ple func­tion misses the bump map. “None” sets the sam­ple to black, “Edge” picks the near­est edge color, “Repeat” tiles the bump map and “Mir­ror” tiles and mir­rors the map.

Fil­ter

To avoid harsh edges you may want to fil­ter the bump map using the “Low”, “Medium” or “High” fil­ter settings.

Off­set

You may con­trol the posi­tion of the bump map in screen-​​space by using the Off­set para­me­ters.

Scale

You may con­trol the rel­a­tive scale of the bump map in screen-​​space by using the Scale para­me­ter.


Blending

Depend­ing on how you applied Nor­mal­ity you may want to blend it with the source layer for exam­ple using the Add, Over­lay or Soft Light modes.
If Nor­mal­ity is applied directly to the nor­mal pass it makes more sense to use After Effects’s native layer blend modes.

Trans­fer Mode

Choose from any of After Effects’ built-​​in blend modes that deter­mines how the result of Normality’s shad­ing oper­a­tion is applied to the source layer.

Blend

The inten­sity of the source layer in the blend­ing operation.

Source

Dial-​​in some color from the source layer inde­pen­dent of the trans­fer mode chosen.

Final Words

I hope this guide helped make the numer­ous func­tions and capa­bil­i­ties of Nor­mal­ity a bit more acces­si­ble.
Please note that by using Nor­mal­ity in pro­duc­tion you agree to dis­play my name in the cred­its as part of the license agree­ment. Also please con­sider donat­ing; devel­op­ing and updat­ing soft­ware 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.