Staggered Texture Mapping

One useful feature that a lot of other 3d apps have is something called ‘Staggered’ tiling. Instead of just tiling an image normally, it offsets every second row so that it’s not quite as obviously tiled. The left image above is regular tiling, and the right one is staggered.

So as to be a true fanboy, here’s how to acheive the same thing with nodes in Cycles (and can probably apply to BI as well)

A short explaination: Remember that UVs can be manipulated as colours? Once you’re used to that, the possibilities are endless. This node setup takes the red channel (the X axis), rounds it to whole numbers so that there are incrementing solid blocks of colour for every repeated UV space, and then adds that to the green channel (the Y axis) so that it’s offset, staggered.

If you want to stagger it the other way, it’s just a matter of swapping the R and G channels:

  • Shane

    As of 2.71 we now have separate/combine XYZ nodes to help clarify this usage.

  • kilbeeu

    Ah, just a few days ago I was photoshopping those. Thanks.

  • Pingback: How can I create a staggered, repeating procedural pattern? | DL-UAT()

  • Samuel Loy

    I have double checked and double checked, and I am certain I have the exact same node set up (I tried rgb separate/combine and then xyz separate/combine and both do the same, and I’ve also tried different scale values), and it’s not working! What am I doing wrong?

    • Samuel Loy

      If I replace the last add node with a multiply I get the expected effect where each row the scale is adjusted.

      • Samuel Loy

        SOLVED, the newer versions of blender they took out the factor of the ‘add’ math node, I added another math node multiplying the output of the ’round’ node by 0.5 and adding that value to the Y channel