I designed a parametric wall with windows in geometry nodes. I can change the width, height, window count etc. Now, I am trying to assign differnet parts of a material node tree to certain parts of the geometry node tree. (For example I would like to define the borders, shown in the image below, sepeterately for the different parts of the wall so they all have the same distance from the edges.)

enter image description here

I could maybe somehow do it by recreating all the calculations from the geometry node tree in the shader nodes. But that seems rather laborious. I tried doing it by assigning attributes in geometry nodes and referencing them in the shader as suggested in this post:

How to assign a different material color to each geometry nodes instance

But by using the realize instance node, I loose the texture object coordinates per instance, which I rely upon for defining the borders. Is there any way of transferring attributes without the realize instance node? Or alternatively to keep the per instance texture object coordinates?

Thanks in advance, Ollie


1 Answer 1


You cannot assign different materials to the instances after the instantiation, because all instances are of one and the same object.

But you can set a switch before the instantiation, and achieve a different assignment of the materials with something like shown here.

enter image description here

If the above example does not help you, then you should use Blender 3.2. In this version your UVMaps will be preserved even after applying the node Realize Instances.

  • $\begingroup$ Thank you for your answer. I need to assign different parts (of the node tree) of just one material. $\endgroup$
    – Oliver
    Mar 26, 2022 at 21:32
  • $\begingroup$ As far as I know, this is currently not possible. Once instantiated, objects can only be assigned to one material, and also the transfer of attributes to individual instances does not currently work in Blender as one would wish. $\endgroup$
    – quellenform
    Mar 26, 2022 at 21:38
  • $\begingroup$ blender.stackexchange.com/questions/253723/… $\endgroup$
    – quellenform
    Mar 26, 2022 at 21:39

You must log in to answer this question.

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