Texture formats

From polycount
Jump to: navigation, search

In game development, artists may have several sets of texture files:

  1. Source files, native to an image editor such as Photoshop's PSD, stores all editing information such as layers, and high BitDepths.
  2. Preview files, for previewing on 3D models or importing into a level editor, does not store layers, usually only 8 bit.
  3. Runtime files, flattened and compressed files used directly by a game engine, often lossy so not good for editing.

Source Formats

Source texture formats are used be artists because these make it easier to edit the textures. These formats do not lose any quality when saved multiple times (lossless compression or none at all), they save all the layers and channels (makes editing easier), and they support higher bit depths (more colors means higher quality and easier editing).

Preview Formats

Preview textures are only needed because most 3d tools do not properly support "source" texture formats. Preview files are usually not edited directly, they are always saved from source files. We have several Photoshop tools for exporting preview files quickly. Some of these are Lossy formats, meaning they add noise or other artifacts when saved.

Runtime Formats

Runtime texture formats are used directly by the game engine.

Most of these are compressed to conserve memory and bandwidth, which means they lose some image quality. It is rarely recommended to edit runtime textures; source files should be used instead.

  • 3Dc
  • DDS Direct Draw Surface format, which can contain uncompressed, paletted, and compressed variants.
  • DXT DirectX Texture format.
  • PVR
  • S3TC
  • TPL
  • VTF Valve Texture Format, used in Source Engine games.

Certain specific compression formats are supported in hardware, which means they stay compressed as they are sent to the video card, which speeds up memory bandwidth and can save a significant amount of space in memory.

Runtime formats also commonly have pre-created mip levels stored in them, so the game engine doesn't have to create the mips on load, which helps to reduce the time it takes to load the game level.

Personal tools