Texture atlases: fewer materials, faster scenes

Packing many surfaces into one texture is how a scene full of props draws in a handful of calls.

An atlas is a single texture holding the surfaces of many objects, so those objects can share one material.

Why it matters

Renderers change state between materials, and every state change is a draw call. Fifty props with fifty materials is fifty draw calls; fifty props sharing one atlas can be a handful. On mobile and VR, where draw call budgets are tight, this is often the difference between shipping and not.

The costs

  • Resolution is shared. Every object on the atlas divides the same pixels. A hero prop deserves its own texture.
  • Tiling is lost. An atlased surface cannot repeat, because repeating would sample its neighbours. Anything that needs to tile — a long wall, a floor — needs a separate tiling material.
  • Editing is coupled. Changing one object's texture means republishing the atlas.
  • Mip bleeding. At small mip levels, neighbouring islands blur into each other. Padding between islands is not optional.

What to atlas

Small props, clutter, kit pieces that share a visual family, anything instanced heavily. Not: hero assets, characters, anything tiling, anything needing independent iteration.

Practical rules

  • Pad generously. Enough that the smallest mip level still separates islands.
  • Keep texel density even. An atlas mixing a crisp object and a blurry one looks worse than two separate textures.
  • Group by material family. Metal with metal, fabric with fabric — atlases tend to share roughness behaviour.

With generated assets

Generated models each arrive with their own texture, which is the opposite of an atlas. Consolidating a set into one is a deliberate step: re-unwrap the group into a shared layout, then bake each source texture into its allotted region.