I'm trying to model some house siding. I'm using a single board with an array modifier. The problem is that when I go to texture them I can only texture the first one, and they all have the same texture. How can I offset the texture so that each new board on the array modifier has a different texture?

Here's a picture:

All the boards are an array from a single board, and I'd like to be able to offset the texture for each new board, but have no idea how. Here's the texture I'm using (Image 2). http://tinyurl.com/poyjn4u (CGTextures)

I'd also (preferably) not have to apply the array modifier before offsetting the textures, but if that's not possible, that's fine.

Edit: The duplicated question does in no way answer my question, and is quite different. The only detailed answer is referring to generated textures, I'm using an image texture. Please explain how my question is answered in the other question marked as duplicate. The previous person who asked a similar question to mine commented on the first answer that he could work with generated textures, I cannot use generated textures in this situation.

  • $\begingroup$ do you want to project that texture exactly on this mesh ? $\endgroup$
    – Chebhou
    May 27, 2015 at 18:57
  • $\begingroup$ Well preferably I'd like to offset each concurrent board to the next board on the texture, but that might not be extremely easy. $\endgroup$
    – meed96
    May 27, 2015 at 20:16

3 Answers 3


It needs a little tuning and tweaking with the y-location and y-scaling in the mapping node, but I think this would work:

  • Unwrap one board and make that board cover the complete image texture in the UV-image editor
  • Make an array with offset along the y-axis
  • Add a material to the mesh, with diffuse, image texture, mapping and texture coordinates (generated) as the image and tune and tweak the y-location and y-scaling in the mapping node.

enter image description here

  • $\begingroup$ Wow. Worked flawlessly. Thank you very much. $\endgroup$
    – meed96
    May 29, 2015 at 13:15
  • $\begingroup$ @Faceb Faceb, I've tried to do this with 2.79, but the image texture has a new option "repeat", and I don't manage to get just one texture spreaded thru the entire Array Modifier. Could you take a look at my file?blend-exchange.giantcowfilms.com/b/3952 $\endgroup$
    – sebseb
    Oct 8, 2017 at 13:05

If you can't use UV coordinates, you can use Box-Mapping to give each piece of wood some variety.(yellow indicator)

The attached image shows the node setup for the model of a wood plank which is repeated using an array modifier and that is offset along the z-axis and running lengthwise along the x-axis.

The top-left node set(green indicator) has coordinates that display the texture mostly as it would look if the model had been UV-mapped.

The bottom-left node set(red indicator) is a procedural texture that is added in with the small mix factor of 0.01. This adds a bit of distortion to give additional variety for each component of the model. It helps to hide the repetition of the texture.

One small difficulty with this setup is that the long edges show the wood grain drawn along the wrong axis. This can be corrected by adding a second material to those faces and rotating the texture coordinates for that 2nd material by 90 along the appropriate axis.(blue indicator) This part will depend on the rotation of your model.

Also, pieces along the right and left sides of the model house may require slightly different coordinate adjustments from pieces running along the front and back sides of the house.

enter image description here

The dimensions of the model will also have an impact on the coordinates that you use so a bit of trial and error may be needed to achieve the result you would like.

  • $\begingroup$ Didn't really work well for me. Played around with it for a while but the wall kept looking messed up and completely crazy. Box mapping broke the UV unwrapping I had done. $\endgroup$
    – meed96
    May 29, 2015 at 13:09

As of Blender 2.8, there's a UV offset parameter in the Array modifier that should do the trick. Not exactly random, but it might give you good enough results.


You must log in to answer this question.

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