Scratches

Overview


2026

The Scratches shader is great for procedurally adding realistic surface wear to materials without the need for external textures. It's great for making metals, paints, plastics, glass, and any material with a coat layer look more authentic by adding random scratch marks on the surface. It offers lots of flexible looks and variation for scratch length and width, curvature, masking, and the ability to bias scratches along a particular direction - making it great for brushed metals. Normally, setting up a complex effect up like this can be time consuming, requiring many textures and parameter tweaks throughout a shader graph. The Scratches shader makes this plug and play and puts all the controls in one place.

Examples

In this section two materials are created and used together, a brushed metal is used for metallic door hardware that is scratched away to reveal a silver material beneath the surface. Each section touches on different aspects of setting up and using the Scratches shader.

Connecting a Scratches shader

To start with we need to get our scratches hooked up to a material. A simple setup usually requires the connection of 4 ports.

outBump should be plugged directly into the Material's Bump Map port, no need for a Bump Map node.


Output Input - OpenPBR Input - Standard Material
outRoughness Specular - Roughness Reflection - Roughness
outAnisotropy Specular - Anisotropy Reflection - Anisotropy
outAnisotropyRotation N/A Reflection - Rotation
outAnisotropyTangent Specular - Anisotropy Tangent N/A
outBump Geometry - Bump Map Geometry - Bump Map



What about Base material textures?

Since the scratches shader connects to several important ports on a material you may be wondering what to do with your roughness textures. These can be layered like usual with things like a color layer or mix node, but the Scratches shader also offers texturable inputs for the Base Specular Roughness, Base Specular Anisotropy, and Base Specular Rotation. These will pass the base specular data through the Scratch shaders relevant output ports along with the added information for the scratches themselves.

To layer a base material's bump map texture with the scratch output, use a Bump Blender. Just remember, the scratch shader does not need a bump map node itself. Scratches - outBump can be connected directly to a Bump Blender's input.

Scratch direction

Next we'll create the brushed metal base material, this is a critical part to get right because it relies on the scratches laying in a particular direction in order to achieve the right look. This is managed by adjusting the Scratch Direction and carefully orienting the UV unwrap of the model so that the scratches go the right way.

By default the Scratch Direction is set to 0 steps, resulting in scratches headed in completely random directions, making it great for quickly adding scratch wear and tear to most objects. However for brushed metal we need the scratches to go in very specific uniform directions, increasing the Steps to 1 gives us just that.


Steps: 0
Coord. Space: Object
1
Object


This doesn't look quite right for brushed metal though, the scratches should be going around the door knob but right now it crisscrosses across the surface. This is because we are using Object for the Coordinate Space which uses a tri-planar projection to generate the scratches along the surface. Great for many objects but for this model we're going to need to spend some more time and attention on the unwrap of our model because we should be using the UV Coordinate Space instead.

When using the UV mode, the orientation of the UV islands has a direct impact on the orientation and size of the scratches. The model has been unwrapped and the UV islands are carefully aligned to produce the correct scratch direction. In the second set of examples, you can see that when the UV islands are rotated 45 degrees the scratches rotate as well.


Aligned UVs
Coord. Space: UV
Steps: 1
Aligned UVs Rotated UVs Rotated UVs

Scratch sizing

Now that the scratches are all oriented in the correct direction we should make sure they have the right size so they can look their best, for brushed metal very thin scratches are needed for the right look. You can change the scratch length and width by adjusting the Scratch Canvas Size, this parameter uses scene units to control the size of the scratches.

When the Scratch Length and Width = 100 then the scratches will be as long and as wide as the Scratch Canvas Size. When using the same value for both this results in a circular scratch that's as wide as it is long, but generally you will want to keep the width value much lower - like a value of 1 which is equivalent to 1% of the Scratch Canvas Size.

When using the UV Coord. Space there's an extra parameter that you need to pay attention to. UV Canvas Size tells Redshift how wide, in scene units, the 0-1 space of your model's UV set is supposed to be. UV Canvas Size needs to be set correctly in order for the Scratch Canvas Size to be accurate and for best results your unwrap should use the same texel density for all UVs.

To set the UV Canvas Size properly you have to figure out how the scale of your UVs relate to the width of the 0-1 UV space and compare that to the actual size of the object in the scene. For this example we're going to find a visual landmark in the UV unwrap, the lock cylinder circled in red, and reference that in the 3D viewport. It turns out the lock cylinder is just about 2cm in diameter and since it takes up 2/10ths of the UV width we can determine that an accurate UV Canvas Size for this model and unwrap is 10cm.


Finding a UV landmark to reference in the scene


In the example below, the grey box is 2cm x 2cm in size and it fits right over the lock cylinder. When the UV Canvas Size is set properly (10cm) then the Scratch Canvas Size (2cm) is able to accurately portray scratches 2cm in length (example on the left). When it's not set properly the scratch size will not be accurate, in the second example they are twice as small since the UV Canvas Size is twice as big (20cm) as it should be.


UV Canvas Size: 10cm
Scratch Canvas Size: 2cm
Accurate sizing
UV Canvas Size: 20cm
Scratch Canvas Size: 2cm
Inaccurate sizing


Now that we have the size figured out, the Scratch Canvas Size can be set to 10cm and the Scratch Length to 100 for some long 10cm scratches. Conversely, a very low Scratch Width of 0.5 is used for extremely thin scratches that are less than a millimeter thick (0.5% of 10cm).

In the examples below, the only thing that has changed is the Scratch Canvas Size, everything else is identical - scale is very important with scratches. Random Length and Width are also used for variation and this results in a nice looking brushed metal.


Scratch Canvas Size: 100cm Scratch Canvas Size: 10cm

Scratch masking

Now that the brushed metal has been established we can add some wear and tear. Create a new silver metallic material and connect a new scratches shader to it. For this material we don't need to worry about scratch orientation, the random direction of the scratches is perfect for the everyday wear and tear that an object might face.


Silver metal with no scratches Silver metal with random scratches


This time we don't want the scratches to cover the entire surface so the Mask input is used. A Curvature shader is great for this, it can restrict the scratches to the convex parts of the model, making scratches appear only on the edges of the object. The outScratchMask provides an output for separating areas with scratches (white) to the base layer with no scratches (black), this can be used for layering the silver scratches over the brushed metal layer.


outScratchMask - Mask driven by curvature Layered with outScratchMask


For added variation in the layer mask, you could instead use the multicolored outScratchColor and remap it to a black and white gradient ramp giving you a mask with more visual interest.


outScratchColor Improved mask variation