So this Graph Shader is using UV0 channel:

enter image description here

As far as I know, UV layout in a 3d model file (e.g. fbx) is stored inside the model itself, is that right?

But the picture above implies that a model can contain multiple UV channels inside of itself. Is that true?


1 Answer 1


UV channels in Unity work more or less the same way they do in other software. A cursory search turns up...

There's nothing particularly special happening here. A mesh can contain more than one set of texture coordinates, just like it can contain more than one set of vertex colours, normals, or tangent vectors. They're just arrays of data, and we can choose what we want to put in them or how we want to use them.

This is commonly used if you want one texture/effect to map over the object in one way (say, the object's own albedo colour map), and then want to layer a second set of texture data or effects over it, without being bound to the albedo texture's unwrap.

For example, you might use mirroring or shared UV layouts on the first texture to take advantage of repeated detail on the object & save space in its albedo texture, but you don't want those seams & repeats to show up in an overlaid mud splat texture that's re-used between multiple models.

Lightmapping is one common case. In Unity, when you bake a lightmap, it will use the second UV channel to store each vertex's texture coordinates in the baked lightmap texture. That way you can get unique lighting information on each face of every mesh, at consistent/controllable scale, even if the primary UVs of your objects share texture areas between faces or have some faces much larger/smaller than their proportional share of the UV space.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .