Can I ask developers about material_slot of blender?

Hi I have question about current blender “material and material_slots”, which I often feel it is somehow strange and not so flexible… I think it may be involved to improve future blender 2.8 asset manager.

Why I can not set name or labell about “material_slots” of object, which decoupled from material name?

“set material slot for object face parts”, and “set each material for each material_slot of object” are clear different thing.
" material_slot is contena of material", and it will be assgined to object poligon parts which user defined as same as vertex group . And there should be clear reason, why we separate faces by each material_slot.
(eg , roof_slot , door_slot, window_slot, wall_slots)

Why blender use same name for material and material slots? and is there way to set name or labell
for each material-slot which clear show, each materal slot purpose which user decided?

And If blender offer way ,to set material_slot name of each object as option, is there problem which will break current user work flow?

why I hope to ask developer, I want to know clear reason, why blender not offer way to set name for material_slots (I think it is material_group or shader domain of other aprciation),

If we can set name for material_slots, we can easy recognize each material_slot are made for what purpose… If developers think, we can use material name for the purpose, it seems different manner
which blender document suggested.

because 2.79 documents recommend user, like that.

Tip
Naming materials

Try to make your names descriptive of the material, not its function (e.g. “Yellow Painted” rather than “Kitchen Table Color”).

But most of case,when we separate and assgin each “material slot” for object faces, it should not be decided by descriptive material. we may change material as we like. but once we change material, eg red to blue etc, and blender not offer way to set name for material_slots, we may easy forget, what purpose the material_slot. if we can keep labell for material_slots, even though I remove all material to exchange them,
we still clear know, each material_slots is desigend what for.

1 Like

There is no way to assign a name to material slots currently. I’ve never seen this requested before, I’m not sure if many other 3D apps support it, so it probably just has not been considered.

The main reason against it may be that it adds extra complexity to the system, more space in the UI and potential for users to be confused whether they are seeing/editing the material or slot name.

If it’s confusing to know which material is applied on which part of the mesh, perhaps it would be better solved in some more visual way than through naming. Drag & drop of materials on part of the mesh, selecting material slots by clicking on the mesh in the 3D viewport, etc.

At first thanks Brecht to take time reply my question.

. I tried if I can achive it, by python as plug in, ( add new custom property for each materialslot ,and show it in tool tab, with current assgined material name)

but I can not add custom property about material-slot . is it right? And there seems already , materialslot.name , it but it seems get same value as material.name.

about confusing things, I do not think , set different name for material-slot and material cause confusing
at least for beginner user. because to be frankly said, current manner already cause confusing when we start larning about blender. I think.


these questions (you must find if you serch google with materialslot etc for blender )
often asked by user who need to assgin many material group(aka material slots) for their mesh.

User try to keep set logical name for individual part of mesh. leg, hair, nail, torso skin, pupil, eyelash etc etc. it is not same as vertex group. it need to be grouped with considering appearance of obj.

so we clear see, what materiall we hope to assgined. by nodes with textures.

The Unique thing (what I feel) about blender material, when we need to save all materials for one objects
and hope to make many material-sets for same object but keep material-slot structure,
blender not offer good way to manage them.

Eg there is figure model, which have 12 material-slots correspond to human body.
basically the figure never change those material-slots. it is desigend so. and most of case,
we need not change material-slots.

then many desginer may hope to offer “full material-sets” for the figure as options.but using same
material slots strucutre of the mesh.

Usually, show labell or name only about “material” cause more complex issue. when user exchange materials only.
And there seems no way, we select multi material-slots, and exchange material only about
selected material-slots.

So I think, it seems matter about assets manager.

there are already asset manager which can easy append or exchange material.
I can do samething even though I get no add-on. from blend file which keep many material as fake user.

but when I hope to manage material as full material-sets for one object which have many-slots, then exchange them by one-click only about setected mesh part form preset,

eg I select (eye material slot, and nail material slot), then apply preset file, which save all material of the same figure, it exchange material only about nail, and eye, and it keep material-slot with reasonable name. only exchange material)

I feel difficulity how manage them. without saving same mesh with full material-set, again and again

+1 for this to be implemented at some point.

It’s not so much about confusion but think of it like this:

You have a model of stairs and it uses 3 materials
Wood, Concrete, Steel

Now this is useful but you have no idea what each is assigned to unless you dig into the model.

So if slot 1 is named steps, slot 2 is named structure and slot 3 is named railing you know right away and can use this in other software like Unreal because even though you changed the material it checks the slot name upon reimport so it doesn’t get confused (sometimes material IDs change when users confuse software).

In some blender application templates this could be the way you specify parts of an object that can have alternative materials according to the user.

There could be a simple toggle that switches between material names / slot names so it doesn’t clutter UI for people who find this useless. However it needs to be thought out how the linking works here of Object / Data. The material slot name would always be bound to Data it is my assumption.

Not saying it needs to be same or anything just for inspiration:

3ds Max

Unreal Engine

3 Likes

Very thanks, because I could not offer good mockup. and could not present well for blender community, long time. But I believe, there should be quite a few user who have hoped it without request.


So I seems miss present, and just offer bad impression for other blender user,

I know aprciation which use material-slot name as shading domain, and separate from material.
but I hesitated to mention about other aprcation.

And use many material-slots may not recommended for game assets, I hered so.
Then some major game-engine not support to change slot name too.

(so I can find same question here or there about those game-engine)

And at same time,set material-slot name relate with UDIM too.
Usually “material -slot” assgiend faces can be grouped as each UDIM tile groups when UDIM is used.

So ideally, if there is way to set material-slot name, and it it can be grouped of each UDIM tile,
with assgined material name. it is really effective to clear see, structure of mesh about material.

So now blender 2.8 recent betas offer a little window for “Shader editor”

Then I really hope Developers think about current “Material slot” more user friendly.
There is “Concept” problem. I think.

The new editor window can Swap material slot, which user defined ,but we need to use “material name” as visual infomation, to change slot.

But “material” can exchange so if I have 10 material as fake user, I can change material.
Use “material name” to change current working “material slot” cause confusion.

Of course if user set material name for the purpose (set material name as slot name)
it work… But we can exchange material as we need, about same slot.

Why do not offer “Slot name” as user decide, and clear divide material as visual infomation?
then We can exchange current working Slot more easy.

Material slot is not to store material. Because even though there is only one slot ,
we can use Fake user and can store multi materials as we like. Or we can apply many materials from other blend files.

I think, material slot is “face groups” to assgin material. If we do not assgin slot for mesh faces,
there is no meaning to keep material slots.

Then set name for face group is naturall and reasonable. It should be. why it cause problem?
I think there is no demerit. It show more clear, how to use material-slots. and the purpose.

Current way, call “material slot” as “slot1” “slot2”, and we can not set name for slots, but use material name cause miissunderstanding easy.

So it should be changed like this pic.

Made an account just to +1 this.

It’s surprising to me that this hasn’t been requested. I was floored when I saw the material slot name is coupled to the material name. I think @TakeshiFunahashi has sound logic here, I’d like to expand on it.

I have a dragon object, and painstaking am transferring selections from its toenails, head spikes, teeth, scales etc. into different material slots on the object so I can build shaders for each. Imagine my confusion when I want to try out the “teeth” material on all these areas, and all of a sudden they’re all named “teeth”.

Material slots and materials are entirely different concepts, and the naming should reflect this. If I want to use “DistressedBone1” material across 10 different areas on my dragon, I shouldn’t see 10 material slots (each invisibly associated with a body part) called DistressedBone1. A two column view in the Properties panel, showing the name of the slot and the material assigned to it, would be the best solution in my opinion.

Thanks, I still hope if blender 2.90 will offer “shader domain” or “shader group” which can set name logically. (if blender developer not hope to touch
current material slot, make new group to assign material)

then user may choose, which way is better.

I prefer to assgin “material” saved in another blend.file, for each named group(poligons) by pick up from list. (with content manager)

There seems no merit , use "slot0, slot1 , " without assgin labell name which human can read.

popular topic about this issue in right click select

If developer and user think material slot is box which contain material (one box contain only one material then use same name for box and material), It seems better offer material assignment group then set name, (so user can destinguish assignment group and Material nodes (then material slot is just a box which set each material)

At current, as real meaning “material slot” is not represent the material assignment group. I feel It is mixing (as material property editor UI and function)

Please developer take up this subject for discussion as blender 3.0 release

There is no way to assign a name to material slots currently. I’ve never seen this requested before, I’m not sure if many other 3D apps support it, so it probably just has not been considered.

The main reason against it may be that it adds extra complexity to the system, more space in the UI and potential for users to be confused whether they are seeing/editing the material or slot name.

If it’s confusing to know which material is applied on which part of the mesh, perhaps it would be better solved in some more visual way than through naming. Drag & drop of materials on part of the mesh, selecting material slots by clicking on the mesh in the 3D viewport, etc.

So, this is still an issue.

One thing that is forgotten is that, when you’re loading bought meshes or meshes from other applications, they are often a big mess of repeated material slots with different names.

This level of repetition is sometimes necessary, because they come from applications that allow some variation in application of materials, such as DAZ Studio, and this variation is done by applying different materials in different slots, because they cannot share any node data, such as the same texture or the same base color, etc.

I can load an asset from DAZ Studio and it has 30 material slots, of which 2/3 of them are identical, because I made them so during export. I’ve seen objects that have more than 50 slots.

But, DAZ never merges material slots, if they are identical in contents. And they are also named, which is information that Blender merges into the material rather than the slot. This is very inconvenient to deal with in Blender.

Similar problems exist with apps like 3DSMax, if I want to export a bought environment (those are popular) from 3DSMax to Blender. There you can either have 100 objects with each one material slot, or 1 object with 100 slots. It’s a total mess and waste of time to clean up in Blender without having any tools specifically for that.

You cannot assume that imported meshes have optimized material slots. Frankly, I find the opposite to be more the case. This isn’t necessarily because of the artist, but because material optimization in one application isn’t the same as in another.

  1. Blender should really start with naming each material slot, instead of using the material name for the slot. I don’t want to call a material “Chair Legs” and I don’t want to go the other way and call the actual chair legs “Brushed Metal #26”. It doesn’t make sense.

  2. Material slots should be individually possible to merge, if you know they need to be merged. Pick 6 random slots and hit ‘Merge’. Done.

  3. Material slot order should be unimportant. Keep an internal index associated with the name instead, and use a separate method to display them.

  4. Allow users to mass query material slot content, such as if they contain a specific node type. Find all 25 emissive material slots in your object in 2 seconds and make them part of your light control group. Right now, you have to hunt them down one by one, if the artist wasn’t nice enough to name them “emissive”.

  5. Drag’n’drop and Viewport material picker will be helpful, but still unnecessarily laborious if you have 50 material slots to deal with.

  6. Material optimization in Blender is really only possible with Cycles, because you can re-use groups in different material slots. If you’re using Renderman, groups are not supported. If you’re using Luxcore, it has its own node system with no groups either. This means, when using other render engines, your optimization become about creating materials and then assigning them to the slots, and you will lose your slot naming scheme that way.