Brick
The Brick Procedural generates an infinite brick pattern with custom control over the random distribution of the bricks, their offset and their texture, that can be used as a color texture or in grey scale as a bump, displacement, weight map or mask texture.
The Brick Procedural can apply up to three different brick elements, with different colors or textures, that will be randomly distributed according to their relative weights.
For each individual brick, the procedural picks a fraction of the given texture and can even apply a random rotation to the texture (in increments of 90 degrees) so it avoids getting unnatural regular patterns and texture repetitions.
Examples of the Brick procedural in use, applied both as color texture, bump texture and as a displacement map to reproduce bricks (left), concrete tiles (middle) and pool tiles (right)
Brick Procedural parameters
Preset: Several Brick presets to choose from. Useful as an starting point to customize your own brick textures.
Blending Factor: Blends a percentage of the current procedural with the result of the procedurals below in the stack.
Brick Width: Width of the brick in UV coordinates (coverage percentage ranging from 0 to 1).
Brick Height: Height of the brick in UV coordinates (coverage percentage ranging from 0 to 1).
Brick Offset: Defines the lateral offset between two consecutive rows of bricks (in percentage of the brick width). A value of 0 would apply no offset between two rows, producing a tiled look, while a value of 50 offsets each row 50% the width of a brick, producing a standard brick look.
Brick Offset 0 (left) and 50% (right)
Random Offset: Randomizes the rows offset by a percentage of the Brick Offset parameter.
Brick Offset 50%. Random Offset 0 (left) and 100% (right)
Double Brick: Enabling this option produces a double brick pattern, inserting an small brick after each regular brick. The width of the small brick is defined by the Small Brick Width parameter.
Double Brick disabled (left) and enabled (right)
Round Corners: This option smooths the brick corners by applying bilinear interpolation on the edges sampling.
Round Corners disabled (left) and enabled (right)
Transition Sharpness U and V: Blurs the brick-mortar transition in U and V directions. A value of 1 produce a perfectly sharp transition while a value of 0 produces a completely blurred transition. This blur is vectorial, so it is independent from the resolution.
Boundary Noise Detail: Amount of noise generated in the brick-mortar transition. This noise is vectorial, so it is independent from the resolution.
Boundary Noise Region U and V: Thickness of the noise applied to the brick-mortar transition in U and V direction, in percentage of the brick's horizontal/vertical dimension. A value of 1 expands the noise region all the brick dimension long.
Seed: Initial value used for the generation of random numbers computed by the brick procedural.
Random Rotation: To avoid getting texture repetitions, this checkbox allows you to automatically apply a random rotation (in increments of 90 degrees) to the brick texture before applying it.
90º Random Rotation disabled (left) and enabled (right)
Brightness Variation: Applies a random brightness adjustment to the brick color or texture before applying it, getting a more random result. This value represents the percentage of that brightness adjustment.
Brightness Variation 0 (left) and 45% (right)
Brick Color 1, 2 and 3: Sets the colors for the three brick elements that will be randomly distributed.
Brick Texture 1, 2 and 3: Sets the textures for the three brick elements that will be randomly distributed.
Sample Size 1, 2 and 3: Size of the random patches of texture used on the brick, in percentage. A value of 10 will pick a random patch of 10% the size of the input image randomly inside the input image for each brick, while a value of 100 will put the whole texture image on each brick.
Weight 1, 2 and 3: Relative weight for the 1, 2 and 3 brick elements to control the presence of the bricks 1, 2 and 3 on the final pattern.
Weight 1, 2 and 3 set to 100, 100 and 100 (left) provides the same presence to the three bricks, while weights set to 100, 60 and 15 gives Brick 3 less presence (right)
Mortar Thickness: Defines the width of the mortar between bricks.
Mortar Color: Sets the color for the mortar.
Mortar Texture: Sets the texture to be used for the mortar.
The Brick procedural parameters panel
Getting seamless bricks
In order to remove the seem, the trick is the following:
Imagine the whole UV space is 1 and you want 8 bricks per row plus a small gap for the mortar, you should make the size of the brick of 1/8 (you can actually type 1/8 in the Brick Width box), so it will be 0.125. That alone will make the brick seamless if the mortar size is 0, but if you want to add some space for the mortar you will have to take it away from the brick size.
For example, if you want to make the mortar 0.001, the brick size would be 0.124 (0.125 - 0.001) or if you want to make the mortar width 0.01, then the brick would be 0.115 (0.125 - 0.01)