I made a basic brick wall using

Texture Coordinates (Object) ⇒ Mapping ⇒ Brick Texture ⇒ Material Output

Now I want to refine that by adding surface bumps and better PBR texture rather than just "color". But when I plug the Principled BSDF node into “Color1”, rather than having it just use white, I get nothing but a magenta result.

my node setup

In the above node map, change it to plug Principled BSDF into Color1 and it does not work at all.

  • 1
    $\begingroup$ No, no, no. It's the other way around. Principled BSDF is the last node you want to use. Connect colors accordingly green > green, yellow > yellow etc. As a matter of fact you will need to learn a basic basics about materials in Cycles. Take a look here: blender.stackexchange.com/questions/15355/resources-for-blender or any other place with tutorials. $\endgroup$
    – cgslav
    Mar 22, 2019 at 22:44
  • $\begingroup$ So you can choose between three colors to send to the single material, but not completely different materials for the bricks? Hmm... In POV, IIRC, there are different functions for each of those two. Two colors (plus mortar) was first, but what everyone really wanted was bricks with different materials, so that was added under a different name. $\endgroup$
    – JDługosz
    Mar 22, 2019 at 22:50

1 Answer 1


Don't connect sockets like that. Yellow outputs go to yellow inputs. Green to green and so on. Green is for shaders. The material output node is expecting a shader (green), not a texture in RGB (yellow).


What is the meaning of the color of the node sockets in the node editor?


Cycles - (Shader) Nodes - inputs outputs - What are the exact data types?

To have three different Shaders controlled by the brick texture the you can do the following: Use pure black (0) and white (1) for colors 1 and 2 in the brick node and either black or white for mortar.

First let's look at the output of the brick texture: black and white bricks (and some mixture depending on the value set in "Bias")

enter image description here

We want could use that value information as the fac to mix two different shaders Yellow Bricks and Red Bricks:

enter image description here

What were white bricks are now Red ones, and the black ones Yellow.

Now let's examine the contents of the Fac output from the Brick Texture:

enter image description here

That is the information of the "Mortar"

You can use that information to control yet another mix shader.

This way you can have a completely different shader for the mortar as well.

enter image description here

Additionally you can also use the Mortar as displacement.

enter image description here

If you need more separation between the color 1 and color 2 (so that there are less bricks that are a mix of the two colors) you can add a color ramp in between the color output of the texture and the first mix shader. That way you can control the contrast of the image for the mix.

enter image description here

From there on you can do whatever other adjustmets you want.

In case you are wondering... why are we connecting yellow outputs on gray input sockets? Doesn't that contradict the very first sentence on this answer? Yes there are cases where you can break the rules a little.

Yellow sockets are Red, Green, and Blue color information (RGB)

Gray ones are a single channel (greyscale) info.

By turning the color 1 and 2 to black or white we are creating grayscale information, so that can be used in a gray socket.

Likewise if you plug a gray output socket to a yellow (color) input, all you will get is monochromatic information.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .