Bricks Plus is an advanced version of the Bricks component. In addition to the functionality of the regular Bricks component, Bricks Plus provides the ability to customize the appearance of individual bricks via slave components that expose various internal parameters of the bricks (such as random numbers unique for this bricks, or the coordinates of the bricks center and corners) to the subtree that defines brick appearance.
The output of slave components of Bricks Plus changes depending on the brick currently being rendered. This means that you can use them in the subtree of the Bricks input to vary any number of inputs in that subtree for each individual brick. For more information, see the section 'Using Slave Components' below. For general information about slave components, see Slave components.
Since individual brick customization is now possible via slave components, some inputs that are present in the regular Bricks component were removed from Bricks Plus as unnecessary. As a side effect, the removal of inputs related to HLS-based color randomization enabled the support for HDR colors on inputs and output of Bricks Plus. Here's the list of removed inputs:
Bricks Plus is a map component, it can be located in the Patterns category on the Components Bar. This is a discrete component: any filter that uses it is automatically classed as a discrete filter. This component can output HDR colors.
This input defines the brick appearance. The appearance of each individual brick can be customized via slave components connected to the subtree of this input. This input can accept HDR colors.
Bricks is the only input in the Bricks Plus component that can accept connections from the Bricks Plus slave components. Connecting them to any other inputs will have no effect. For more information, see the section 'Using Slave Components' below.
Defines the color of the spacing between the bricks. This color is not affected by the H Range, L Range and S Range parameters. To set the mortar color for various image areas separately, connect a map component to this input.
Mortar Width: Map Input
Sets the width of the spacing between the bricks. The actual spacing between a brick and its neighbors is also influenced by the Chaos parameter. Since Mortar Width is a map input, its value can be controlled separately for different image areas by connecting a map component to this input.
Bevel Width: Map Input
Defines the width of the brick slopes. The less the bevel width, the steeper and narrower the brick slopes. When Bevel Width is zero, the slopes disappear completely. When Bevel Width is 100, the slopes occupy the entire brick area, leaving no flat region in the middle. Since Bevel Width is a map input, its value can be controlled separately for different image areas by connecting a map component to this input.
Corners: Map Input
Defines how round the corners of the bricks are. With Corners set to 0, the corners of the bricks will be sharp, with no rounding. With Corners set to 100, the corners will be fully rounded. Since Corners is a map input, its value can be controlled separately for different image areas by connecting a map component to this input.
Specifies the way the bricks are laid. The following bonds are available: Running, Running 1/3, Running 2/3, Racking Left, Racking Right, Stack, Stack2, Stack3, English, and American.
Determines the brick type: Standard, Jumbo, or Roman.
Specifies how many times the brick pattern is repeated. The actual number of repetitions within the output image is also affected by the global parameter Size and the image dimensions. For example, when Repeat is 3, Size is 600 pixels and the image width is 1200 pixels, the pattern will be repeated 6 times within the image width.
This parameter controls only the repetition of the base pattern grid, and does not affect the randomizations introduced by Chaos, Fill Mode parameters – their effects remain fully random and don't repeat across the entire image.
Makes the brick pattern more realistic by introducing imperfection. Chaos disarranges the pattern by randomly shifting the brick rows, and, if Mortar Width allows, the bricks themselves. Chaos of 0 means perfect order, larger values increase the disorder. The exact placement of each brick is determined randomly.
Variation, technically known as random seed, affects the random aspects of the component which cannot be controlled directly: it randomizes the row shift and brick disorder when Chaos is non-zero; and the brick colors when Fill Mode is set to Jumble. The randomization is also affected by the global Variation value. For more information, see How Variation Works.
Bevel: Curve Input
Defines the bevel profile of each brick (the transition between the brick color and the mortar color). When Bevel Width is 0, this parameter has no effect. Three predefined bevel profiles are available: Linear, Smooth, and Contours. To customize the bevel profile, connect a curve component to this input.
For best results, the curve connected to the Bevel input should start at 0 and end at 100% – curves like Linear, Step, Gain and Stairs are perfect choices, while curves like Noise or Wave will require additional adjustments or modifications (for example, you can use the Fade component to force the start and end of any curve into desired positions).
These buttons create slave components linked to the currently selected Bricks Plus component. You can have multiple copies of each slave component.
Add Randomizer
Adds a Randomizer slave component that outputs a normalized random value (converted to color) that is unique for each brick. You can create multiple copies of Randomizer, so if you need multiple random values to build or modify the brick subtree, you can use multiple Randomizers with different Variation settings (i.e. random seeds).
Add Cell Center X
Adds a Cell Center X slave component that outputs the X coordinate of the grid cell in which the current brick is located.
Add Cell Center Y
Adds a Cell Center Y slave component that outputs the Y coordinate of the grid cell in which the current brick is located.
Add Cell Left
Adds a Cell Left slave component that outputs the X coordinate of the left border of the grid cell in which the current brick is located.
Add Cell Top
Adds a Cell Top slave component that outputs the Y coordinate of the top border of the grid cell in which the current brick is located.
Add Cell Right
Adds a Cell Right slave component that outputs the X coordinate of the right border of the grid cell in which the current brick is located.
Add Cell Bottom
Adds a Cell Bottom slave component that outputs the Y coordinate of the bottom border of the grid cell in which the current brick is located.
Add Element Center X
Adds an Element Center X slave component that outputs the X coordinate of the center of the current brick, after all transformations, offsets and chaos have been applied.
Add Element Center Y
Adds an Element Center Y slave component that outputs the Y coordinate of the center of the current brick, after all transformations, offsets and chaos have been applied.
Add Element Left
Adds an Element Left slave component that outputs the X coordinate of the left border of the current brick, after all transformations, offsets and chaos have been applied.
Add Element Top
Adds an Element Top slave component that outputs the Y coordinate of the top border of the current brick, after all transformations, offsets and chaos have been applied.
Add Element Right
Adds an Element Right slave component that outputs the X coordinate of the right border of the current brick, after all transformations, offsets and chaos have been applied.
Add Element Bottom
Adds an Element Bottom slave component that outputs the Y coordinate of the bottom border of the current brick, after all transformations, offsets and chaos have been applied.
Slave components of Bricks Plus work properly only when the following conditions are met:
First, any slave components must be connected to the subtree of their master's Bricks input, otherwise they will have no effect. The Bricks input is the only input in the Bricks Plus component that generates element data for slaves during sampling.
And second, there must be no bitmap-based components between the slave and the Bricks input. Bitmap-based components (such as Blur or Motion Blur) kill the element data sent to slaves by their master, and thus cannot be used in slave-to-master connections.
Like Loop or any other slave-supporting component, Bricks Plus is nestable: it can be nested within a subtree of another slave-supporting component, or have another slave-supporting component inside its Bricks subtree, or both at the same time.