How to add multiple random textures variations for Roof Shingles model?

I have tried different items, Random object color etc. but couldn’t find a solution for multiple random textures variations for Roof Shingles model. Does anybody know how to achieve this?

If the tiles are seperate objects, then you can use Random output of Object Info node:

Thanks for reply, Let me check this and get back to you.

Sorry, Objects are individual but joint together so have one single object. below is a screenshot: -

If your goal is to make a texture look like the example @filibis made, but with a single mesh you mighy have to use UVs instead. I am thinking that you could have a simple texture consisting of the desired shades and put them into each colour of the UV texture.

If you want to speed things up, grab some sort of black and white noise, unwrap the mesh, and select each face and scale them down to 0 so that each face is completely one colour. Since the unwrap spreads everything over the whole texture, the randomness is sort-of already there, and you can keep it that way by using individual origins when scaling.

1 Like

Create them as particles and use particle info node to spread randomness.

Or create them as sepearate objects in a different file and link them to you scene. That way you can use object info randomness and still have “single” object.

I think a texture/shader base solution would be better rather than going into particles system. I am trying to do as @unyxium suggested, will send the update shortly.

Guys, How should I combine these 2?

Guys, I got this far but still the Gradient transition looks weird. Can you please suggest something else?

This is the second attempt, it more close to what I need, suggestions?

Or you could use archpack addon (even free version has that). It has roof builder that creates roof of off one mesh but also creates random IDs for parts of mesh in material tab. Then you add same material for all these random materials and tweak with gamma/brightness etc. and you got what you want.

In case you don’t have/want archipack and need to use that specific mesh you got, then you can just create those randomise IDs of mesh part of your own.

That is really cool! will check it out but what if we already have the roof modeled? should I re-model all the roof again?

In that case you can do it on your own (with whatever mesh you got). Create few random materials the way you like and then by random selection assign them. Here is example but you can tweak as much as you like.

I had this in mind, but this will again increase the work of selecting random objects each time for each roof slope and assign materials. I am trying to do it with a procedural shader.

Third attempt…


Hey shader solution is cool, but I am still more into ID randomizing. I was trying to dig into problem more and apparently you have to use script to do it. Luckily I found a guy who proposed interesting script to do it and it works just find (atleast for me it does exactly what i wanted). So if you want you might give this a try. Of course It would be more elegant to get it into some simple addon…


saved script : test_script_random_ID.ini (1.4 KB)

Thank you so much for this, will check this out and post the update here.

And more happy news inc. If you want to do it shader way then there has just been introduced new attribute outputs to geometry. It will randomize by loose parts so it should be just what you need (if you want the shader way).


Will this come in 2.81?

It is in 2.82 and this screen is from current build.