Poor Material Management

Hello, so basically i was using Max for most of the time and after using blender i’ve noticed that the material management is a bit pain in the ass except the Node graph which is kinda epic and the best i’ve seen so far.

Here’s some flaws:

  1. I was working on some asset lookdev which has a bunch of materials, so first issue was very small window for material selection which also requires scrolling and there would be pretty much no chances to tell what is where without proper naming/organization.

  2. Not sure if it’s a feature or a bug, but many times i’ve started reworking lets say “B” material on a “B” object after finishing “A” material on an “A” object and when i came back to “A” i’ve noticed that for some reason the “A” object/material is using a material from “B”, later i’ve figured out that i have to add empty new material on the “A” model to kinda fix it in place which was pretty annoying.

  3. As far as i’ve seen there’s no multi material graphs where you can see all your scene materials and which are always there not disappearing so i can simply edit multiple object materials in single window without switching them in that tiny material selection window ( but also an option to edit it individually ).

  4. This one is probably useful in some cases, but basically when importing fully diffuse textures with alpha channel in it i need to manually go to the texture settings and set it to “Channel Packed” in order for it to be properly visible and if not it’s being rendered pure black.

  5. Not an flaw but more like feature request: Pick material from selection which basically opens material graph and centers out the object’s material ( by using selection tool like a color picker or simply selecting an object normally ), select object(s) by material selection & apply material to selection ( probs this one is there not sure yet, not used blender for years :smiley: ). Basically these features combined gives pretty quick and nice way of replacing materials, applying them and doing other various stuff epsecially in a larger scenes.

1 Like

You are right.

Currently, it is planned to create a new editor : an asset browser to manage properly all types of assets (models/meshes, armatures, materials, textures, rigs, scripts, node groups, Collections).

This is expected by users since 2.5x series.
But eventually, according to roadmap, that should become a reality for 2.92.

By default when you duplicate an object, its data is shared with copy.
That means that they are using same material. You should see a number next to material name in Material Properties tab 2 or 3.
If you click on that number, you will make data used by a single user and create a new material.
You don’t have to create an empty material slot to create a new material.

Currently, work done about asset project was mainly done in Outliner.
There is a Blend File view giving a list of materials present in file.
In other Outliner’s view, you can change remap material used by objects by using right click menu > ID Data > Remap Users.
You can select objects using same material by using right click menu → ID Data > Select Linked.
But we will have to wait for asset browser for more.

There is the main task showing the advancement.

Currently, to ease management of materials, 2 addons are bundled with an official release.

  • Material Utilities is menu that allows to manage materials in Viewport.
  • Material Library is providing templates and presets and helps you to store/reload your own materials.
3 Likes

In addition to what @zeauro said about duplicating objects and the little number next to the name:
This is a Blender wide concept and not confined to only shaders. The same is true for textures, meshes, animations and all kinds of other things. If there is a little number next to the name it is shared by other “users”. A “users” is not the person sitting in front of the computer but the “thing” that uses the datablock.

An object can be the “user” of a shader, of a mesh or an animation for example.
A shader can be the “user” of a texture.

For example if you create a cube and sphere you can select the cube and go to
properties panel - > data properties.
Now select the sphere mesh from the drop down menu and the cube will now “use” the same mesh as the sphere. If you modify the mesh both objects will look different. In Max this is called instance. In Blender you can “instance” all kinds of stuff besides meshes.

1 Like

I highly recommend this addon: https://github.com/gregzaal/Matalogue

It adds list of all materials directly to node editor sidebar:

7 Likes

The mat lib is gonna be nice especially if it lets save maps and any nodes + it’s groups rather than complete materials only like in many other software material libraries.

Anyway by #3 i had in mind something like this:


In the graph it already works, but i can’t just take lets say the “Monkey Head” mat and drag&drop it on any model i want. It’s just many materials in a single pre-applied material graph.
And in case if the material is super complex there would be still an option to select that specific material and edit it the current way if needed basically nothing would change for someone who likes blender editor the way it is, only there would be additional node graph where u can put all/any scene materials and edit them “simultaneously” without the need of switching between materials + imo reading “Frame” is bit easier than reading simply the names would be also dope if you could put a background pic in the frame or corner of the frame e.g. picture/thumbnail of the 3d object. Would be super sick for sharing medium-large projects so ppl could insantly see which material is for what.

You can just open several shader editors and then pin the ones you want to have visible to one shader editor each.

That would still be a waste of time ( imagine opening 147 shader editors ) + still no pick/drag material feature.

Basically the point is not just being able to see/edit few materials simultaneously, it’s totally different ( faster ) workflow.

Here’s an step example with a current system: let’s say you added a new model “Monkey” and you want to make a new material for it and later tweak the previous model’s material:

Current blender:

  1. Select the Monkey
  2. Hit new material
  3. Create the material
  4. Open the Material browser window ( 4b: Find the material of previous model ).
  5. Edit it

How it could be:

  1. Create new material
  2. Drag n drop the new material on the Monkey
  3. Finish the material
  4. Tweak the previous model material ( both materials are in same node graph and if not you could add the material from selection in total of 2 clicks ).

It might not seem like a lot, but alot less mouse aiming and imo bit smoother workflow which is super fast especially for initial base material setup. It only can become bit difficult when the scene gets super large so you not going to want to see all mats in one graph, that’s where the material picker or current blender’s material selection/editor would come to play.

I believe the asset browser will take care of a number of issues with managing large scenes with many materials. Much of the underlying code work needed to make it possible is done now, but the UI team is now placing a focus on doing fewer projects at once (for the purpose of being able to finish them before moving to brand new features).

1 Like
  1. Select new monkey
  2. Select old model
  3. ctrl + L → M ( = copy from active to selected)
  4. open shader editor
  5. edit it.

I am not saying that your suggestion is bad. In fact i am very much looking forward to the asset browser that is in development. But your current workflow is slow because you have to search through the drop down list of materials. You can eliminate that as mentioned above. I think simply copying the material from one object to another with hotkeys is faster than anything Max has.

Personally I never like dragging and dropping materials into viewport in 3ds Max because - esspecially in large scenes - it would way too often land on the wrong object. I allways selected the object and hit that litte arrow button at the top of the slate editor.

The slate editor has other advantages like being able to easily connect nodes from one shader to nodes of another shader. This is something that is rather clunky in Blender.

1 Like

besides what everyone has said…have you tried not copying and pasting your default diffuse shader and instead setting up each material manually? I dont’ see why you are trying to skip steps if you use a completely different material map for every shader.
Also also, have you tried pressing this button? (the blender render and also lighting viewport button?)


if your textures are not showing up and they are linked to files that dont exist they will appear pink. How are you having a problem again? I feel like this topic needs more explanation

Hmm… Not sure what you had in mind, but if you’re talking about my suggestion you simply pick the material from the object in that case w/ 2 clicks. My method of the “Current” is slow which i assume you had in mind about.

Yeah shortcuts it’s nice, but sometimes you just want to nearly lay down or chill on a chair and do stuff with mice only especially during the R&D lookdev or some fluid sim process :smiley:

Actually, the same here. Anyway it’s similar in terms of speed.

Yeah that’s why i’ve wrote the 3rd suggestion/flaw. Anyway 3ds Max Slate editor has some disadvantages too such as no frame, no grouping which kinds sucks, well atleast i can save literally any node(s)/setup there as use it as a “preset” for later.

is your problem solved or not? explain please I’m not trying to insult you.
and if its not please do your best to explain where you are and why you are stuck.

Usually i need the same base material ( e.g. with tweaked gloss/metallic/albedo and other settings ) while some other materials has exact same “branching” and i copy whole material so i can just replace textures and done rather than dropping all the nodes and connecting everything.

Some .tga ( Targa ) diffuse textures had Alpha Channel in them so they rendered pure black and i had to manually switch to “Channel Packed”. While all other 3D softwares read these textures normally.

One of them is this:
tm_leet_v2_head_variantb_color.tga (4.0 MB)

There are no “problem” and i’m not stuck, it’s just a feedback & my experience with blender.
Usually people write this kind of stuff so developers can read it and make the software better and easier to use for everyone :smiley:

I meant the one you discribed in your post und “Current blender”. The thing responsible for being slow is searching though a long list of materials.
You other steps are not slower than the things you have listed under “How it could be”.

Although I am not an expert if you’re receiving black textures I believe you have either not setup your file path correctly and have recently changed the location of your texture.

Do not try to play the community as dumb (no offense)
If this is actuallyl an issue please continue as this is very very technical, however you’re going to have to be very specific on how your problems started.

example: are you viewing your model in just “basic shading” mode or are you viewing your model in “shadig + lighting mode” like I circled in the button I pointed out.

I believe I do not have the knowledge to completely fix your problem but if it’s actually a problem I’m hoping someone actually understands what you mean

Have you tried node groups? If you create one you can drop them into any other shader via the create nodes menu.

Node groups works flawlessly.

It would probably be better for you to use them instead of copying the whole node tree. They are linked (i.e. instances) so they should perform faster than a bunch of copys.

1 Like

The targa seems to work without modifcations:

Actually that’s exactly the problem.
That’s the correctly rendering one:


Photoshop default:

While viewing In Photoshop there’s Alpha channel:

and blender kinda does the job reading it but not exactly in a practical way ( i probs would prefer the opposite - manually selecting if i want to use the alpha or even having an preference option for that ).