Car Paint with flakes and coating.

Produces a bumped normal that simulates a flake-like perturbation. Connecting this to a the Bump Normal parameter of PxrLMMetal can create metallic fleck paint.

Input Parameters

Input Normal

Connect your bump pattern here if you wish to add flakes on top of it. Ignored if not connected.

RIB: normal inputNormal
Default: 0.0 0.0 0.0

Flake Randomness

This increases the distribution of flake normals, or their deviation from the base normal.

0.0 0.1 0.2 0.4 0.8
images/PxrFlakes/randomness_0.0.png images/PxrFlakes/randomness_0.1.png images/PxrFlakes/randomness_0.2.png images/PxrFlakes/randomness_0.4.png images/PxrFlakes/randomness_0.8.png
RIB: float flakeAmount
Default: 0.5

Flake Frequency

Changes the global size of the metal flake features.

10 20 40 80
images/PxrFlakes/freq_10.png images/PxrFlakes/freq_20.png images/PxrFlakes/freq_40.png images/PxrFlakes/freq_80.png
RIB: float flakeFreq
Default: 57.3

Flake Density

Changes the number of metal flakes for a given area. Valid between 0 (no flakes) and 1 (all flakes).

1.0 0.5 0.25 0.125
images/PxrFlakes/density_1.0.png images/PxrFlakes/density_0.5.png images/PxrFlakes/density_0.25.png images/PxrFlakes/density_0.125.png
RIB: float density
Default: 1.0

Flake Size

Changes the size of metal flakes. Pushing the value above one will create something akin to galvanized metal.

0.25 0.5 1.0 2.0
images/PxrFlakes/size_0.25.png images/PxrFlakes/size_0.5.png images/PxrFlakes/size_1.0.png images/PxrFlakes/size_2.0.png
RIB: float size
Default: 1.0


Number of octaves of noise to calculate flakes. Most of the time, 1 is enough.

1 2 3
images/PxrFlakes/octave_1.png images/PxrFlakes/octave_2.png images/PxrFlakes/octave_3.png
RIB: int octaves
Default: 1


Jitters the flake's position. 0.0 gives a grid-like organisation and 1.0 looks very random.

RIB: float jitter
Default: 0.75

Validate Normals

Make sure flakes normals are always in the same hemisphere as the original normal.

RIB: int validateNormals
Default: 0


The manifold over which to apply the flakes.

The default (when there is no connected manifold) is P in object-space. This will work fine if your object is not deforming.

If your object is deforming :

  1. Add a __Pref primvar to your geometry in its un-deformed state.
  2. Create a PxrManifold3D node and connect it to the PxrFlakes node.
  3. In the manifold's Pref field enter: __Pref
  4. In the manifold's Coordinate System field enter: object
RIB: struct manifold

Output Parameters


The bumped normal.


The flakes' mask. This is a black and white mask that may allow you to tint flakes or change their roughness, for example.