In computer graphics programming, a texture atlas is a two-dimensional (2D) image with either multiple textures or multiple images within the main image that can be extracted and used by the main application to save resources that otherwise would be used to load and maintain each individual image or texture. In three-dimensional (3D) computer graphics, a texture atlas is slightly different in that it contains the entire image intended to be textured to a given 3D object, but that image is arranged in a sometimes confusing and distorted way, with the individual faces of each polygon in the 3D model plotted out flat on the 2D image. Some programming languages, graphics libraries and even hardware have a certain amount of system overhead associated with the use of a single image. Combining multiple images into a single sheet, or texture atlas, allows a program to reduce overhead at the expense of extra computer code and, possibly, processing time to draw subsections of the atlas to the surfaces that require them.
When used in 3D computer graphics, a texture atlas is the result of a process known as UVW mapping. The letters UVW are not an acronym but are references to the coordinates of a texture and are used to avoid confusion with the more standard X, Y and Z coordinates that are used for the geometry of a scene. If a 3D model is going to use UVW mapping, then each of the polygons is first flattened to create a 2D image, with each polygon remaining connected to its neighboring polygons. The resulting texture atlas — which is all of the polygons of the 3D model laid out flat, a process sometimes called unwrapping — can then be used as a template to ensure the accurate placement of images on the various surfaces of the object.
In 2D applications, a texture atlas can save system resources and time spent loading the image, and increase rendering speed by reducing the amount of work a graphics card must perform to change images rapidly. A 2D texture atlas can be used for a graphical user interface (GUI) in which each of the images for a button is within the same image, in a grid pattern. This way, whenever the image of a button needs to be rendered to the screen, the subsection of the larger image can be drawn instead of first having to shift memory locations or load the individual texture into graphics memory.
One complication with the use a texture atlas is the amount of precision required if the atlas is created by hand. For an application that uses 32-pixel-wide tiles, the atlas needs to have each tile aligned exactly at 32-pixel increments, which can be very time consuming and tedious. Many times, programmers will use some type of utility software to take a batch of individual images and construct the atlas procedurally, removing the need to count pixels in a paint program.