Multiple instances of object with procedural textures

This is probably incredibly easy but I’m just having trouble wrapping my brain around it this morning.

If I have an object with a procedural material applied to it (for instance peeling paint or rust spots) all instances of that object have the same generation of the various textures that make up the material. So each one will have the exact same rust spots which is of course unrealistic.

I’d like to use the same material on all objects but randomize the textures for each one. I’m also using geometry data such as pointiness within the material node group, which should NOT be randomized.

If the objects are fixed, you can simply use the position coordinate. Since this vector is global, it can also be used to propagate the same texture over different objects, though sometimes this is not the desired effect.

For moving objects it’s better to use the ‘random’ from the object info node. this will output a random number for each object instance. you can use this number for setting new coordinate origins, scales, colors, etc.

Other possibilities are to use Object location, or even getting Object coordinates from other objects.

Assuming you’re using cycles, use an Object Info node at an appropriate place in your material: it will give you the random number you’re looking for.

Edit: heh, 10 minutes too late! Golly, Secrop, go to bed already! :wink:

Oh, that is super easy, thanks a lot! I ended up driving an x-y offset of the input vector with the random.

Attachments