The Normal Editor Layer System provides a way to organize (from top to bottom) order, adjust blending and intensity, preview displacement, lock/unlock, and adjust profiles for each layer.
The Layer Panel also provides methods for creating, deleting, duplicating, and merging layers. In this section we will talk about each part of the Layer Panel.
- There are seven blend modes available for each layer. The blend mode defines how a layer's normals are blended with the normals below it. The opacity value acts
as a weight to the normal vector being blended. The normal is rotated towards Up as the opacity value decreases. So an opacity value of 0 would leave all layer normals facing Up prior to
A description of some of the blend modes can be found in the article
Blending in Detail by Colin Barré-Brisebois and Stephen Hill
A brief description of each blend mode follows:
This is a simple averaging of the normals. The formula is as follows:
normalize( vec3( v3_0.xy + v3_1.xy, ( v3_0.z + v3_1.z ) / 2 ) );
This is a formuala found on the Unreal Developer Network in their article Material Basics: Detail Normal Map. It takes the form:
normalize( vec3( n1.xy + n2.xy, n1.z ) );
Reoriented Normal Mapping is the method presented in Blending in Detail by Colin Barré-Brisebois and Stephen Hill. It takes the form:
v3_0 = tex2d(base_layer, uv).xyz * vec3( 2, 2, 2) + vec3( -1, -1, 0);
v3_1 = tex2d(top_layer, uv).xyz * vec3( -2, -2, 2) + vec3( 1, 1, -1);
v3_0 * dot( v3_0, v3_1 ) / v3_0.z - v3_1;
This method is from the Unity tech demo and was recently presented at GDC by Renaldas Zioma. It takes the form:
mat3 nBasis = mat3(
vec3( v3_0.z, v3_0.y, -v3_0.x ),
vec3( v3_0.x, v3_0.z, -v3_0.y ),
vec3( v3_0.x, v3_0.y, v3_0.z ) );
normalize( v3_1.x * nBasis + v3_1.y * nBasis + v3_1.z * nBasis );
Partial Derivative Blending of normals is covered by Jörn Loviscach in his articel Care and Feeding of Normal Vectors. It takes the form:
normalize( vec3( v3_0.xy * v3_1.z + v3_1.xy * v3_0.z, v3_0.z * v3_1.z ) ) * 0.5 + 0.5;
This method chooses between the two blended normal vectors. It selectes whichever vector has the greater angle away from the "Up" vector.
- A layer can be unlocked, pixel locked, and position locked. If unlocked the layer can be modified in every way. When pixel locked no changes
to the layer's content can be modified. When position locked the layer cannot be moved. A layer can be both pixel and position locked at the same time.
- The intensity value determines the strength of the normal. In displacement and shape layers this determines the strength of the normals
generated from the embedded displacement pixels of the layer. In rasterized normal layers this value modifies the current baked vectors.
- On layers with embedded displacement (displacement and shape layers) the user can enable displacement preview by selecting the
layer and checking the View Disp checkbox. The displacement will be rendered on the canvas rather than the normals for that layer.
- Layer's can be organized up and down in the layer control. Simply click drag the selected layers to a new position in the layer control.
Changing the layer order changes the order they are drawn to the canvas.
- Double clicking a layer's name allows the user to change the name of the layer.
- Double click on a layer (but not on its name) and this will bring up the dialog for the layer profile. You can also bring the dialog up
by selecting a layer and clicking the 'P' button located at the bottom of the Layer Panel.
- By right clicking on any layer you will be provided with options for deleting, merging, clearing/copy/pasting profiles, etc. Take some time
to familiarize yourself with each layer type's context menu.
- New layers can be added to the project by clicking one of the plus buttons located at the bottom of the Layer Panel. The first is for
creating Normal layers, the second for creating Displacement layers, and the third is for importing an image as a layer from file. When importing a layer it can be a normal map or
a displacement map.
- There are three ways to delete a layer. The first is to select layers using the Transform Tool and pressing the Del key. The second is
to select layers in the Layer Control and press the - button located on the bottom of the Layer Panel. The last way to delete layers is to select Delete from a layer's context menu.