Texturing refers to the act of producing 2d images for use with 3d models. Commonly referred to as "maps" or "skins".
Textures work in conjunction with Shaders and Materials to produce the final rendering. The game model needs Texture Coordinates to wrap the texture onto the model. Multiple Texture Types are often used to control different parts of the shader, such as Normal map or Specular color map.
A variety of techniques and Tools are used to make textures: painting by hand in a traditional 2d package, photo-manipulation, 3d scanning with a photogrammetry tool, painting in 3d directly on models, creating procedurally in a node-based material editor, baking image data from one model to another, etc.
Artists need to make choices about the formatting of their textures, usually during the planning stage before creating the model/texture.
Texture types lists the different types of maps used for different effects, which depend on the game engine and visual style.
Images are made up of Pixels and are split up into Red, Green and Blue components, also known as channels, and may additionally have an Alpha channel which can be used to store opacity or another type of map or mask. Masks are images or layers used to control "How much of What", such as Specular color maps or Specular gloss maps, and are typically (but not always) greyscale (pixels only utilizing one channel).
Vertex color is optionally used to control additional effects, such as blending between two images in the same model.
For the average prop, arrangements of map types might use Diffuse/Specular/Normal for a current-gen game. Physical Based Rendering setup might be Albedo/Microsurface/Reflectivity/Normal for a next-gen shader.
Other surfaces need more specialized shaders and textures, such as Skin or water.
The dimensions of the image, how the model is unwrapped, the scale of the model and scene scale all equate to the resolution of the textured model when seen in-game. It is important that all objects in the scene have similar texture scaling to keep the overall look consistent; a low-resolution image looks jarring when placed next to a high-resolution one. Texture size is the first place to start for this decision, determining texel, the ratio between UV space/Texture resolution/Scene and object scale when uv unwrapping the model is the second.
Images store pixels in two dimensions, and can be square or rectangular. Most engines require dimensions to be in powers of two: 2,4,8,16,3164,128,256,512,1024,2048,4096. Other engines may not require it, but an off-sized image can potentially harm performance.
- How often are 4096 textures used in next-gen gaming on the Polycount Forum
Channels are the color components in the image. Red, Green and Blue (RGB) are each stored as data in separate indices and some software can display each as a greyscale image. An additional channel named Alpha can also be present, but not always rendered into the composite.
Some formats store other channel types, such as HSL (Hue, Saturation, Luminance), CYMK (Cyan, Yellow, Magenta, Chroma/Black), or simply luminance or alpha.
ChannelPacking can be used to store different grayscale images in each of a texture's channels, which can save texture Memory but probably increases draw calls.
Bit depth is how much data is allotted to each pixel either in memory or in the file. More bits per pixel (bpp) increases the number of colors available for each channel. The 1 bit type has two colors, black and white (or off and on), and is often used for transparent alpha testing - a simple sorting for whether or not a pixel is visible. 8 bits gives 256 colors per channel (16.7 million RGB colors), and is often the default mode for most applications. However, higher bpp means increased file size and memory use. It's not uncommon for a format to store colors unequally: 5 bits red, 6 bits green, 5 bits blue, for an example of a total 16 bit storage. Compression is another method to decrease the file size.
Textures often need to be compressed to use in a game. Compression has three main benefits: reduce the file size in storage (on the hard drive), make for smaller downloads (important for mobile and web games), and improve texture memory (always a limited resource in games).
- Texture formats lists compressed and uncompressed game texture formats.
- DXT is a commonly-used compression format for games.
Textures can be repeated across a model, by Tiling the TextureCoordinates.
Rectangular textures packed inside a Texture atlas can also be tiled.
- ShoeBox: Mask Image - by Hendrik-Jan "renderhjs" Schoenmaker
- Taking Better Photos for Textures - by Jordan Walker
- Better Sharpening in Photoshop - by Ben "poopinmymouth" Mathis
- Texture Photography & Processing Tutorials
- Texture atlas