Different material for array object?

I have object that has array modifier on it. Is it possible to give instances different material than the original object has, and of course without applying the array modifier?

In most cases its just looks so repetitive if all instances has the exact same material.

see if this help

happy bl

Thanks. This was new to me and good to know for future, although even with this method I can’t figure out how to get it work with textures. If it’s even possible.

You can easily use an Object Info Node to randomize your texture.
Example see picture.

You can make a switch node to random assign texture /custem colors with cycles or eevee ,
For example 10 different texture

@ Mahol
can you show more of the nodes set up
and how do you do it ?
just add an object then add array modifier

need some texture somewhere too!

thanks
happy bl

He use the same setup from the tutorial and the random output from the object info node just offset random the texture coordinate

Basic setup if you need random custem colors or random textures with the tutorial or you can use duplifaces/instance

For 10 random texture you can do it this way with duplifaces or the idea from the tutorial

No. Everything has to be contained within a single material. Using the dupli method above, you can also put all textures (not materials) into a single long strip of equal size textures and vary the texture lookup area based on the random input.

Feeding random into a noise (42.5, 0, 42.5) → contrast; you get three random variables which can drive lookup, size, and shade (as an example).

If not animated, you can also feed position into a noise for even more variables.

With some random variables, you can drive a completely random material.


Above I’m looking up the bump texture, the rest in randomly generated. But it has to be done within the same material.

Pls share the blend file. Tried replicating it. But only the last image is seen in all instances.

Show me your setup - because there are different ways to get random colors or textures it depends on what you need :grinning:


There’re 3 duplicates in this array. I want each to have different images. How can I achieve this with array modifier intact. Pls help.

If it’s that simple, two options come to mind:

  1. Geometry/Random Per Island and isolate with math/compare experimenting with what works.
  2. Offset the UV.U by one in the array setting and isolate with math/compare like 1.5 epsilon 0.5, 2.5 epsilon 0.5
    These two produces the same result in my case:
1 Like

Hey I figured out a way this can work! Very simple, as an Array modifier has an option to offset UV maps per arrayed object, I had a thought that you could make a material where different texture files are set to different UV tile offsets, and using a simple mix shader, it worked! Here’s the setup for you that I figured out, pretty simple. You can do the same thing I would imagine for offsetting the UV maps of other aspects of a shader too like normal maps and metallic maps and anything using a color/texture input. so yeah

Just set your textures t clip so they don’t repeat into other UV tiles, and have a texture coordinate to define that the UV is what the vector will be afecting, and have an add math node onto it to affect it’s UV offset before going into the mix shader. I imagine you can then run that mix shaders output into another mix shader and so on and so forth to create as many different texture offsets as you want

(an edit I found when trying to run the mix shaders into each other: Set their thing to ADD, not Mix, and set the factors to 1 and tthen it’ll be FULLY applying each of the textures.)

Here’s the adding one mix shader into another result (setting the mix shaders to ADD mode and the factors all the way up to 1.0 )