I noticed that every time I work with Blender in the area of texture painting and UV mapping, I feel like an anxious pyrotechnician defusing an armed bomb. This is because UV mapping and texture painting are few of the areas where Blender, in a typical Blender manner, punishes the users for their mistakes instead of helping them out.
This philosophy of amplifying user mistakes and often destroying the user generated data instead of preventing the mistakes is quite unique to Blender.
Here are a few examples:
1:
Blender allows you to edit UVs of multiple objects at once. Letâs say you have two objects, both of which have two UV channels. One for unique, non overlapping UVs and other for overlapped mapping of decal trim sheets:
The active UV channel on the Cube is UVMap, while the active UV channel on the Cylinder is DecalMap. If you are not careful, and do not do the easy to forget chore of going through every single object first, and selecting the same UV channel (because the damn Alt click to edit multiple objects at once doesnât work here), and then enter UV editor, you are met with this:
You are met with the UV editor straight up lying to you. It says you are in the UVMap channel, but the cylinder, which is part of the selected objects is actually still set to DecalMap UV channel. You then proceed to make a few modifications to the UVs until you run out of undo stack steps. Then you save your file. Only afterwards, you realize that you have completely destroyed all your work spent on the DecalMap UV channel. The user data is lost.
SOLUTION: When editing multiple objects, the UV editor needs to communicate to the user that multiple UV channels of different names are being edited at once.
2:
You are texture painting. You are always certain that you want to use your primary, non overlapping UVMap channel for the texture painting, as painting on an overlapping UV channel would not make any sense. You set this up in the Texture Paint mode:
You then do some painting, exit the Texture Paint mode, and want do map some decals. So you switch the active UV channel to DecalMap, do the modifications, exit it, and want to continue the painting.
You enter the texture paint mode, you draw the brush stroke, and nothing happens. The cold sweat pours over your forehead, because you know this is Blender. The brush stroke did not fail, it has just done something somewhere else. You just were in the wrong constellation of various interdependent modes, tools, and settings, which means you probably wrecked your data somewhere else. You undo, hoping that the undo undoes just the brush stroke, and not also something else, because of the various undo bugs in the painting and sculpting modes. After investigation, you realize that the UV channel in the texture painting mode was set to last active channel in the object mode:
There as absolutely nothing communicating to the user that this UI element is tied to the mesh datablock UV channel selector. And worse yet, even if it was explained, it would not make sense. I highly doubt that use cases where the user wants to switch UV channels frequently when painting one specific texture map are anything but super rare. This, once again, can lead to the user unintentionally damaging/destroying their texture paint data.
SOLUTION:
In texture painting mode, the UV map setting for given image texture should always remain locked, regardless of the UV channel selection in object mode. The UV map selection UI element should have a unique value, not be an instance of the mesh datablock active UV channel.
In general, Blender needs to move away from the tools and modes relying on the active UV channel. This also causes issues with texture baking. Whenever any tool or mode relies on UV channel selection, this selection should happen directly in that tool or mode, and should never ever by affected by the changes in UV channel selection in the mesh datablock in object mode.