Bad Texture Management

I would like to stress once again that the management of textures in blender is extremely confusing and inadequate.

+1 for all your post.

I just yesterday was trying to explain to someone unfamiliar with blender how, if he forgot to make sure the little ‘F’ was clicked for a material, the program would silently delete that material when he next opened the file.

The bit that seemed the most unreasonable at the time was the fact that this wasn’t an accidental quirk but clearly a conscious design choice.

So yeah, I agree with you. Whole thing needs a rethink.

Totally agree… the whole system stinks. First someone needs a way to do something like after effects does and make a purge option, to get rid of unused materials… every project, I’m left with a bunch of unused materials that I must have tested at some point and changed my mind on. It would be so nice to have an option to delete all unused materials (any material that is not applied to an object) and have them completely in everyway disappear from the file.

blender is very bad :frowning:

Yes abc123,
Though, you’re a bit out of topic.
Texture management is very bad, some other parts are also very bad, not the whole blender.

Edit:
Sorry about it, I forgot to mention, abc123, you are an idiot.

abc123, if you only could be constructive for once…

And than guys, what can we do?

paolo

I would like to explain better what made me open this thread.

I wanted to make some variations to a certain material without loose the original, so I made a copy of it, but I forgot to duplicate every texture of it.
After a while I realized that I was editing the original textures and they were changing also in the former material (this should be avoided from the start by design).
So I duplicated the modified textures and then, to recover the old ones, I appended the old material from the previous .blend1.
The appended material had all material slots with wrong assignements because the textured appended with it were renamed.
Now I have three copies of those texture, all with changed names and I’m not able to distinguish between them anymore because changes were subtile.

Another bad thing is that in the dropdown menu where you chose textures from, the names are truncated, and you loose .001, .002 etc, so you have to try and error for each of them.

paolo

yes, i had the same issue often, i always thought i am just too numb to understand how it should work correctly, , i lost a lot of textures/work this way, but so far i thought its my fault alone …

While I do agree that data blocks should not be lost by default (“F” button issue), I don’t really see a solution to your problem.

I wanted to make some variations to a certain material without loose the original, so I made a copy of it, but I forgot to duplicate every texture of it.
After a while I realized that I was editing the original textures and they were changing also in the former material (this should be avoided from the start by design).

I don’t think so. It happened to bother you in this instance, but you really need to learn about aliasing and what it means to copy versus to reference. This is just something that cannot be simplified. We really need both. Now, if you believe copying should be the default, that’s another issue that’s up for debate.

So I duplicated the modified textures and then, to recover the old ones, I appended the old material from the previous .blend1.
The appended material had all material slots with wrong assignements because the textured appended with it were renamed.
Now I have three copies of those texture, all with changed names and I’m not able to distinguish between them anymore because changes were subtile.

You say it needs to be “redesigned”, but you don’t seem to have a better idea? How should you reference data in another file except by name? You’d actually want this, a lot of the time.
Really this whole concept is not much different from that of a file system. People just need to learn how to deal with it, I don’t see a simpler (and equally powerful) solution.

I guess nobody has yet understood how it should work correctly…

If we could figure it out we could propose something clever I hope.

paolo

Having said the above, I think there should at least be quick way to perform a deep copy (whether it should be the default is debatable) of the materials (maybe by CTRL+clicking the “+” button).
I agree it is confusing to people who do not understand this. In Cycles it’s less of an issue, because textures are not datablocks of their own.

Yes too much stuff is done “in the background” by Blender, without informing the user.
IMHO this happen because Blender never does a simple thing other software uses a lot: prompt messages

For example when appending an object with the same exact shader in our scene (lets say “my_wood”, instead of duplicating with .001 etc convention), it should prompt:

“my_wood” found, do you want to - duplicate / merge …

If another material from the same appended object is found, a consecutive prompt would ask again:
“copper” found, do you want to - duplicate / merge …

…and a flag with “apply to all” on a corner.

Same with duplicating materials, a prompt might ask if you want to duplicate textures (auto renamed) or go along with the same ones.

And lastly about Fake user, should be on by default maybe (or at least Blender should inform us when quitting that we’re loosing stuff), and as said by harleynut97 a purge option, to get rid of unused materials.

@Zalamander,
it’s not only a case of confusing people who don’t understand, it can happen to everybody to distract… and consequences can be very annoying, and it’s even very boring to have to relink textures every time you import a material 'cause textures changed their name.
The ‘deep copy’ thing could be an idea.

@marcoG_Ita,
what you suggest can be useful but it doesn’t change the weird management of textures anyway, and having Fake on by default would let a lot of unused things to remain in the file.

paolo

haha, noobs will destroy blender developing, this is sure

No abc123, don’t destroy anything please!

paolo

Zalamander, sorry but I jumped over your first reply and I missed it, I don’t know how.
I state that I don’t clearly understand all of what you say but I’m doing my best.

really I don’t grasp this

For instance, when I append a material which has some textures linked, if blender changes their names it should be so kind to change them also in the slots of the material.

EDIT: I’m not here for suggesting anything, I have no solutions.
I just try to point out some issues, and I’m not alone in the need of better management, am I?

paolo

I guess nobody has yet understood how it should work correctly…

So true.
Even goes for abc123.
I can manage this monster anyway (not abc, I mean the blender textures)
However it is a mostly ridiculous system. If we can call it a system anyway. Pity. Blender is a bad app. As abc123 use to say in any occasion.

Yeah, actually I’m not able to say how this system should modified, but to a simple user as I am it looks very silly and annoying.

paolo

You don’t understand the difference between linking to data and copying data? Well, that’s a problem then.

For instance, when I append a material which has some textures linked, if blender changes their names it should be so kind to change them also in the slots of the material.

Blender does that, however it can’t really do that across file boundaries. It’s really is like a file system, imagine you link a file on a USB disk to your desktop, then rename that file on another computer, then plug in that USB disk again. Of course, the link doesn’t work anymore. You’d need to track all renames in the file system, or link through some other property (such as unique file IDs or hashes).
However, what if you needed that behaviour? What if you wanted to replace the file with another one by renaming, therefore changing the linked data without changing the link?
This is a fundamental behavior you need to understand.

I just try to point out some issues, and I’m not alone in the need of better management, am I?

I’d say you’re not alone in a lack of understanding. Even if you had better tools to manage this, you’d still need to understand this.

Nope, I do not understand what it has to do with the question.

I think we don’t understand each other, my fault, sure.

If in a certain material I have some textures linked, when I append it wherever I need, simply I expect those links were not broken.
if it has to rename some of those textures it must be clever enough to know the new name it gave them, and write their path in the slots, period.

paolo