Make shader editor work better with GN's material assignment

Hi, I am wondering if there are any current plan/task to make Shader editor work better with Geometry nodes, when GN is in charge of assigning materials.

One annoyance we run into: Shader editor view is tided to object material slots, so UI wise there isn’t a good way to edit a material used by GN, even if we expose it in group input.

2 common workarounds are both imperfect:

  1. Change the active material in Shader editor: but this re-assigns the material to the active slot, and create a undo history, which isn’t great;
  2. Assign every material you use on object data: but you no longer have 1 single source of truth, if you change the materials in GN, you need to re-assign manually in material properties again;

I am not sure how this can be solved though. I saw calls for a Get Material At Slot Index node. But knowing current problems with material slot index (⚓ T87335 Geometry nodes material index attribute not working correctly on generated/instanced geometry), it might be a lot of troubles for few gains.

What are your thoughts?

6 Likes

I agree, there should be a way to edit material without assigning it.
My example is out of GN, but…
I have character head as collection instance in the scene. And character have glowing eyes.
So to start to edit material I need to assign it on plane, or go to library-scene and select eyes, edit material there, then go back to main scene.

Same problem here. For the time being, I create a dummy mesh and assign materials on it to be used in GN.

Yes, it is a big problem. I also do the same as you and add them to a dummy object. I also tend to tag all my materials as local assets in the asset browser. The best solution imo, would be to be able to select a material via the asset browser for editing in the shader editor.

Quick tip, if you enable the “Material Utility” addon that comes with blender, you could press shift+Q to get a object selected by searching a existing material.

1 Like

Yes, it’s pretty stupid. I’ve made a proposal to address Blender’s data management woes, and it includes solution for this as well. So if you agree with it, maybe give it a like:

It’s in the paragraph #4