Understanding Texture Basics and Workflows

Hi everyone,
I’m new to 3D and am trying to understand exactly how all the procedures and workflows work.
Even watching various video tutorials on YouTube, there are many things I don’t quite understand.
I see that some artists bake the model textures in a single map, with all the materials at once.
Others, however, use the technique of baking each material in its own separate map.

What is the difference between these techniques, and why do people choose one over the other?

Using a single map reduces the empty space between the islands, so there’s less wasted space.

With different maps for each material, or for each section of the model, we will have a UV map, but inevitably there will be more empty space in each map.
Also, some sections will occupy a larger area and others a much smaller one. For example,
if I have a car, let’s say I create three maps:
one for the body, one for the windows, and one for the wheels. If I use 4096x4096 maps, the wheel map will have a lot of empty space compared to the body map, because it will occupy a much larger area than the wheels in their own map, to maintain the same pixel density in each map (or not?). Even worse is if I use two separate maps for the wheels, one for the rubber tires and one for the metal rims.

Also, is it better to divide the model sections based on materials or some other parameter?
In a robot model, for example, I divide the various maps into: head, body, arms, and legs. But if I have different materials in the head, or even in other parts of the body, do I still put them in the map together?

I have many doubts and uncertainties, I would really appreciate it if someone could help me understand things and better navigate this jungle, please!

Less images is ALWAYS better. Your goal is to get away with the smallest images and smallest number of images possible. Three 4K PBR textures, to use your example, is 12 4K images. That’s going to overwhelm the VRAM of even relatively new GPUs.

Thank you joseph,
so, is it better to put all the materials in a single texture map?
So why do many people use different textures for each part of the object? What’s the point?

Basically, either procedurals or image textures, they serve only one purpose: to define specific characteristics (parameters) to the shader closures.
There are parameters that are colors, others are vectors and most are simple values.
Whenever the parameters change over the surface, you need to map each point on the surface to a function that outputs the value for that point. This function can be a mathematical function or something that reads data from a file (normally an image).
These functions have both pros ans cons. For example some procedural functions are really fast, and some are really slow. Functions that read images are normally slow, thought they mostly use the output value directly.
Sometimes, a procedural function can be even slower than reading an image, and baking is in such cases a better option.
Another factor to ponder are the constraints you’ll face, which can be memory related, shared resources, portability, engine capabilities, etc.

Thanks for the explanation Secrop.
So in what areas is it best to have a single texture for all materials, and when is it better to divide the object’s parts and create textures for each section or material?
My doubts are always the same :slightly_smiling_face:

It depends… Can you describe the whole surface with just one image (which can only carry 4 floating point values per pixel)?
Are there repetitions that you can tile or reuse from different parts if your surface?
The list of questions goes on.
Normally, just one image can carry a color value (3 components) and an alpha value. That might be insuficient to describe, say roughness, specularity, normals, or any other parameters that some shader might need.
Sure that are tricks to minimize the amount of textures used in a particular object, but that requires much more than ‘beginners logic’, and I don’t advise that path for now.

But maybe I expressed myself poorly. I meant one image for each texture type: one for the base color, one for the normal, one for the roughness, and so on.
By a single texture, I meant all the components of a model, but then obviously, a model requires baking one texture for each type (color, roughness, metallic, etc.).
Forgive me, but it might be that I still don’t understand the basics when it comes to 3D art. :neutral_face:

Well, I think at first you shouldn’t bother too much with those questions…
In fact it really depends on the context, and the end result you’re after.

Because textures is part of what uses the most ressources / memory, probably if you only have a single object to texture you can do whatever you want.

Now if you plan to do a massive scene, you might want to limit textures ( and texture size) in some less important areas, so everything can fit in memory and therefore renders.

Also people doing realtime (video games) or pre-calculated ( animation, VFX …) don’t have exactly the same workflow, and it’s ok to use more ressources in pre-calculated projects…

If you’re learning, I’d say for now focus on doing good looking stuff and learn the techniques , then if you starts to feel dragged down by performances try to look into it. I think it’s simpler to learn by example there rather than stay on a theorical level.

One thing that makes professional projects more difficult is that they have much more constraints , so to get a similar result to what you can simply do at home you might need to do things in a much more complex way… But that’s not something that is fun to do so if you can avoid that it’s fine !

Lastly this shows different techiques of texturing in games based on context, that might gives you ideas :

Starts around 6mn…

Hi sozap,
I appreciate your help, thank you!
First of all (I think I should have mentioned this before…) I’d like to learn how to create 3D models so I can (perhaps) one day sell them on portals like Turbosquid, CGtrader, etc.
I don’t want to make complex models. I see many sellers making relatively simple, let’s say medium-quality models, so I think I could get there too one day.

People are adopting different organizations according to what they produce, in what context.
If you create a material asset, you create a texture that will be embedded in the material, with the idea that texture mapping will be adjusted to object using material.
If you create a character asset, you may create one texture for the whole character to export it in game engines or multiples textures with variable resolutions to create high resolution renders of close-ups of character.
If you create an environment, you can have several props using same texture, simply because they are supposed to be made of same material. Or they can have same texture because the idea is to have a coherent whole, fast to render, with baked shadows. But the environment can simply be an assembly of props thought, separately.

So, that is, most of the time, a trade-off, between time spent to organize and use quickly resources, and time to gain by optimizing in-game performance or rendertime performance.
It is not rare to use both on same project. Initial textures for assets thought individually and a derivative texture thought to match requirements of projects.

The same way, you can have meshes thought for kitbashing, used for prototyping, that are ending up remeshed, modified.

Thank you zeauro,
So when it comes down to it, it’s a big mess and there’s no general rule. :smile:

Well yeah the truth is that if we didn’t care about performance or memory because we had such insanely fast computing power then you would do whatever you want and it would be purely a matter of preference. The reason people do things in so many different ways is because we are limited by technology but nowhere as much as we used to be. As others have mentioned it depends on what you are trying to do and how you intend on using the final product. Right now I am working on a furniture pack that has 27 pieces of oak furniture for a game and they are all sharing one set of 4K textures. I have the PBR textures for metalness, roughness, AO and a mask all packed into one texture. For the metal parts like hinges, handles and plates etc, I have sub meshed them deliberately to keep the wood texture tileable as it is a trim sheet.

If you sub mesh objects like that or use UDIMs you can assign each part different texture sizes so they don’t all have to be 4K and texel density depends on the size of a surface area in 3D space so the body of a car will need a bigger texture compared to a wheel at the same texel density because it has a bigger surface area.

Thank you KarlS for tour help!
I think I’ll try using the technique of dividing the object by material or function, or something else, and then baking a set of textures (color, roughness, normal, etc.) for each section.

Then I can play around with the text density, slightly varying it between each texture set, but not enough to be noticeable.

And if necessary (in case there’s too much empty space), I’ll use texture sets of different sizes to minimize waste.