Why do AO and LightMap need a second set of UVs?

To summarize this a bit and explain why it applies to AO/lightmaps specifically —

  1. three.js does not (yet) provide a proper API for changing which UV set is used by a particular texture. Various proposals and workarounds have been made, but it’s still essentially a missing feature.
  2. UVs are designed by artists in order to maximize the amount of texture detail in specific areas of the mesh. For most textures, bigger areas need more detail. For AO and lightmaps that’s often not the case — you need more detail only where there are detailed shadow/light changes. Hence, AO and lightmaps are the two textures where you’re most likely to want separate UVs.
  3. because of the limitations of (1) and the need for (2), it was determined that having AO/lightmap rely on a second UV set was a reasonable workaround for artist workflows. It can be slightly confusing, but (for now) it works well enough.

EDIT: Related links from Unreal and Unity.

7 Likes