Table Of Contents
Introduction
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 Mapping
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 Mapping
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.
When using normal maps it is imperative that the settings for your normal maps have a gamma of 1 and your color space is set to linear / raw. If set incorrectly, normal mapping will not work properly.
General
Enabled
This enables the bump map effect. When this is disabled, the normal that is generated is just the surface normal.
Input Map Type
- Height-Field: This sets the Bump Map node up to use greyscale height based texture maps for bump mapping.
- Object-Space Normal: This sets the Bump Map node up to use object-space normal maps for normal mapping.
- Tangent-Space Normal: This sets the Bump Map node up to use tangent-space normal maps for normal mapping.
Object-Space vs Tangent-Space Normals
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 Close-Up |
Tangent-Space Normals |
Tangent-Space Normals Close-Up |
|
|
|
|
|
|
|
|
Map Type: Object-Space Normals Result: Good |
Tangent-Space Normals Good |
Object-Space Normals Bad |
Tangent-Space Normals Good |
Input
Connect a texture sampling shader node here to set the map input.
Height Scale
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 |
Affected By Object Scale
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 |
Change Range / Remap
Old Range Min / Max
The range of values that are read from the displacement/bump texture.
Only applicable for Height-Field Bump Mapping.
New Range Min / Max
The new range the values will be mapped to.
Only applicable for Height-Field Bump Mapping.
Unbiased Normals
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.
Flip Normal Y
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 inversed.
|
|
Flip Normal Y: Disabled |
Enabled |