Table Of Contents
The Redshift Bump Map node supports both height maps for bump mapping and object space or tangent space normal mapping. Bump / Normal mapping is a texture-based technique used to give the impression of sub-polygon lighting detail, without having to model it.
The resolution of the these textures are important – you ideally want a one pixel per texel maximum resolution to get the best visual results. Magnifying the texture will blur the results and minifying will lessen the effect with distance.
Redshift Normal Map Format
Redshift expects normal maps in OpenGL format.
If you use a DirectX formatted normal map the Y axis of the texture will be inverted. To fix this you can use the Flip Normal Y option built into the Bump Map node instead of needing to re-export a normal map.
Mixing Multiple Bump Maps
To mix multiple bump maps and normal maps together we supply a Bump Blender shader node which has been optimized to efficiently blend resultant bump-map displacement vectors together.
|
|
|
No Bump Mapping | Bump Mapping | Normal Mapping |
Bump Map | Normal Map |
Bump maps are controlled by a height map texture which is used to perturb the surface normal. Since only normals are perturbed, not geometry, it does not affect shadows. Bump maps do not contain directional information.
Normal maps are controlled by a 'normal' texture which is used to perturb the surface normal. Since only normals are perturbed, not geometry, it does not affect shadows. Normal maps contain directional information.
It is very important that your normal maps have the correct color space and gamma settings. Gamma should be 1 and color space should be set to raw / linear. If set incorrectly, normal mapping will not work properly.
This enables the bump map effect. When this is disabled, the normal that is generated is just the surface normal.
Object-Space Normal maps contain normal information specific to the object it should be applied to. In Object-Space the up axis is directly tied to the up axis of the object itself and therefore using an Object-Space Normal map on any object other than the one it is intended for will not look right.
Tangent-Space Normal maps contain normal information that can be applied to any object and behave properly. In Tangent-Space the up axis is relative to an objects surface normal and therefore using a Tangent-Space Normal map on any object will behave correctly.
Below is a comparison of an object-space normal map and a tangent-space normal map. First the object-space and tangent-space maps are demonstrated on their intended source geometry, both look perfect. In the second example the same shader is applied to a flat plane which is where you can see how the object-space normal map perturbs the plane's normals in such a way that it does not look good. Comparatively the tangent-space normal map looks much better since it is relative to the surface normals of the plane.
|
|
|
|
Map Type: Object-Space Normals |
Object-Space Normals |
Tangent-Space Normals |
Tangent-Space Normals |
|
|
|
|
Map Type: Object-Space Normals |
Tangent-Space Normals |
Object-Space Normals |
Tangent-Space Normals |
Connect a texture node here to control the bump/normal mapping.
This scales the height value that is read from the texture. A value of 0.0 effectively disables the technique, yielding just the surface normal. Greater values increase the bump effect. Negative values invert the direction of the bumps. The default is 0.010.
Because this is a visual trick, very large values will not yield good results, so in those cases you should use displacement mapping instead.
|
|
|
Height Scale: 0.1 | 1.0 | 3.0 |
This option forces the resultant bump vector output to scale along with the objects scale. Disabling this option will essentially remove any scaling bias, yielding more predictable results when blending bump maps and normal maps.
Only applicable for Height-Field Bump Mapping.
|
|
|
|
|
Affected By Object Scale: Disabled Object Scale: 1 Height Scale: 0.01 |
Disabled 0.2 0.01 |
Enabled 1 0.01 |
Enabled 0.2 0.01 |
Affected By Object Scale: Disabled Object Scale: 1 Height Scale: 0.01 |
The range of values that are read from the displacement/bump texture.
Only applicable for Height-Field Bump Mapping.
The new range the values will be mapped to.
Only applicable for Height-Field Bump Mapping.
8-bit integer texture maps normally store values between 0.0 and 1.0, but normals have component values between -1.0 and 1.0. When this is the case, the normals will have been pre-biased to fit into the 0.0 to 1.0 range. Check this option only when you know that the texture map is unbiased, meaning the normals were floating point and stored in the -1.0 to 1.0 range.
Only applicable for Normal Mapping.
This allows you to flip the Y axis of the normal map. Redshift expects normal maps in the OpenGL format making this option useful if the normal map was generated using a flipped uv coordinate format like DirectX.
Only applicable for Normal Mapping.
In the examples below note that the lighting has not changed but where the specular highlights appear on the sphere has been inverted.
Flip Normal Y: Disabled |
Enabled |
Introduced in Redshift version 3.5.11
Only relevant when normal mapping is used.
When disabled - by default, Redshift uses an enhanced normal map rendering technique. When enabled, Redshift will use the old normal map rendering technique which matches versions of Redshift rendered with 3.5.10 and earlier.
It is also recommended to set the Shading Normal Adaptation Technique to None instead of Keller to further match earlier versions of Redshift.
Legacy Normal Technique: Disabled |
Enabled |
Legacy Normal Technique: Disabled |
Enabled |