Texture Baking is still a UX nightmare

First of all: Blender 2.83 seems to be performing much better (**) at actually rendering game relevant textures from pretty dense high-res meshes. That’s awesome as it means I nearly (*)don’t have to leave blender to bake stuff. :smiley:

On the way to the baking process there still are some terrible, terrible design decissions that made me question my sanity until I realized how it actually works, though

  1. To bake to a texture you have to have created an empty texture in blender, added it to the node tree of the relevant material somewhere and have it also active (clicked) in order to mark it as the texture that is being rendered to. Even finding out how this is supposed to work is paaaain.
  2. This whole process also makes it unfortunately easy to overwrite an existing map, as all you have to do is forget to click another one in the node editor (or switch the node). Intuitively you’d think that having the texture open in the image editor could dictate where to render to.
  3. Multi Property editing! I know it’s on the list of things to do, but please, please, please nudge it higher on the priority list, if possible. If you’re using a bake cage a good way to do it is to use a shape key. Which means that for an exploded mesh you have to click. every. single. piece. of. the. model. and. add. as. well. as. enable. your. cage. individually.
  4. (**) unless I was just lucky and by chance hit the sweet spot for my textures!
    See this very interesting post: Why is texture baking so mind meltingly slow?
  5. (*) Blender still doesn’t render all the relevant maps. Some of them only from multires (which is not always an option). In particular there are a few vital maps missing:
  • Curvature map (can be derived vrom normals but should be bakeable, really)
  • Position Map
  • Color/ID Map (based upon
  • Displacement (only possible from Multires)

So yes. In theory it’s all there but in reality there are so many things you simply have to know in order to get good performance or even be able to bake at all.
There used to be a plugin from renderhjs called “TexTools” which got ported to Blender 2.8 by SavMartin but all in all this functionality should be in Blender natively. And even if it’s not realized in the same way - Points 1, 4 and 5 are super critical and should be attended. I think they could not even be considered Papercuts any more as they are super obscure if you don’t know what to do.

3 Likes

I tried creating a mockup for the features I think this should ideally have at some point and what I found is that multi-property editing actually makes the UI a little more difficult as the options are mixed in multi- and single object properties.
image

I think that the process of texture baking needs a few core components, though:

  1. Blender needs different types of offsets
  2. and a separate way of distinguishing what objects to include in the bake

The kinds of offsets or baking cages commonly used from my experience are:

  • Multiresoultion
  • even offset (float value)
  • Baking Cage - which might be separated into:
    • Cage object (as it is)
    • shape key (distinguished by a string - the shape key name)

Irregardless of the fact that you should always explode your mesh when baking, either way there should be a way of distinguishing from which objects to bake from:

  • collection (dropdown/picker): All the objects in that collection
  • suffixes: searching for matching name suffixes. Standard is _high and _low but that could be a user input as well.
  • all selected (current way) - this has the downside that only one mesh at a time can be baked to.

Often times when you are in the process of baking it’s more desireable to have sub-objects still separated and bake to a single map or material, though. So the current option would always require at least deuplicating and merging all objects that need to be baked. In that case exploding would also be mandatory because diffentiation by suffixes doesn’t work any more if there is one object to bake to but multiple to bake from.

The other side of the medal is the easier to understand output:
image

IT would be great if there was a way to at least let the user know that they have to have an image open in the node graph.
It would be much more conveinient, though, if there siply was a way to create a new texture with deicated width/height directly on creation of the map. Maybe there could be an “overwrite existing” dropdown to select an already existing map if the user dowsn’t want to always create a new map.

So yeah. That’s my experience with baking in Blender, currently. :smiley:
Since Blender is getting professional movie/animation input lately I was hoping to maybe get the ball rolling a little for more game features as well.

1 Like