3
$\begingroup$

So I'm trying to use Blender's brick texture to create other patterns than the basic 1/2 offset every 2 rows pattern (the default) as shown here:

Basic Default Brick Texture

I would like to be able to have each row offset 1/3 from the previous row, for example. I would expect, looking at the controls available, that the "offset" and "frequency" values provide exactly that. But instead it seems that "frequency" only sets how many rows are affected by the offset (i.e. 1 every N rows) and offset determines how much those affected rows are offset from the other, non-affected rows. So setting frequency to 3 or above leads to "stacked" rows that are all identical. I've never seen a brick wall built like that so I can't imagine that's very useful, or at least it shouldn't be the primary use case.

enter image description here

How do I create a brick texture that allows offsets of 1/N for each row? For example, to create a pattern of 1/3 offset for every row, repeating every 3rd row, I would expect to set the offset to 0.333 and the frequency to 3 (although really, I think only one of those two inputs is needed but whatever).

For example, see the layout in the image below in the middle row on the right (with the smiley that says 33% offset). How can I achieve that?

enter image description here

$\endgroup$
3
$\begingroup$

The trick to achieving different brick offsets with the standard Brick texture is to additionally offset each individual row - instead of allowing the brick texture to provide the offset. This can be achieved as follows :

Nodes for brick offset

Note that the Brick Texture is set with an Offset set to zero - this results in no offset for each subsequent layer of bricks. Additionally, the Scale and Brick Width and Row Height are being set by Value nodes - so we can use those values in our calculations (allowing the texture to still be adjusted without breaking our row offsets).

The key to the calculation is to use the Y coordinate to determine the 'row' of bricks. This is achieved using the Snap node (this will increment by 1 for each full row of bricks). The offset is then essentially calculated based on the row number (from the Snap) multiplied by 1/'Offset Fraction' - but with some additional maths to take account of the Brick Width and Scale.

With Offset Fraction set to '3' we get a repeating pattern every 3 rows - so offset by 1/3rd of a brick :

result

| improve this answer | |
$\endgroup$
  • 1
    $\begingroup$ Thank you. I was afraid it was this complicated, but once I implemented some nicely named node groups, it is somewhat elegant. $\endgroup$ – rothloup Jul 13 at 4:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.