Texturing
covering 3D surfaces with 2D images

What's a texture / material?

A texture is a 2D image that wraps around a 3D object, like an animal skin or wallpaper. For levels, we usually apply environment textures to cover floors and walls in the game world.
Early 3D games used one texture per object. The color painted in Photoshop was often the same color seen in the game, it was very direct and straightforward. But today we often use multiple textures together, instead of just one.
A material is a group of texture maps + settings for a surface. Each texture map represents a different aspect or quality, rather than the actual color to render on screen. While there are many ways to pack textures and materials, most materials in most 3D game engines use these four main texture types:
  • Diffuse or albedo (pronounced /AL-bee-doe/) is the base color of the surface
    • For transparent materials, also pack a transparency mask into the albedo's alpha channel
  • Normal map or bump map encodes the micro-details, scratches, indentations in the surface
  • Specular map, glossiness, roughness, smoothness, metallic affect shininess / reflectivity
  • Ambient occlusion ("AO") darkens seams, cracks, and crevices that block (occlude) light
(materials diagram)

Texture types

World textures

World textures are reusable tiling images that cover the underlying foundation of level geometry. These are the main ground and wall textures used for the level.
Good world texturing usually:
  • Reads well at multiple viewing distances
    • its substance is clear from short, medium, or long distances
    • interesting to look at, but not too interesting to be distracting
  • Aids wayfinding (or obstructs wayfinding, if that's your design goal)
  • Tiles well, without implausible seams or jarring repetition
    • e.g. repeated wood plank edge outlines are OK, but a clearly copy-and-pasted wood grain or dirt pattern may feel artificial and strange
  • Matches the massing of the underlying level geometry
    • e.g. don't use a brick texture for a 2 cm thick wall
  • Coheres with the overall worldbuilding and fiction of the level / game
a "gradient" of different terrain textures by Marie Lazar (from 80 Level)

Rock textures

Rock textures require special planning and design. Tectonic forces form cliffs and mountains into distinctive shapes and layers; in order for a cliff texture to seem like a plausible cliff, the texture's structure should reflect this unique geology and accentuate the cliff geometry's shape.
For low polygon cliff geometry, a rock texture with strong structure / crack layout will visually break up the rock shape and make it seem much more complicated than it really is. Divide the rock texture into layers / chunks, which is, you know, how rocks exist in real-life.
photobashing a rock texture by offset-healing seams (left) and accentuating the crack structure (right) by Philip Klevestav (from http://www.philipk.net/tutorials/modular_rocks/modular_rocks.html)
resulting albedo, normal, and specular maps for a rock material, by Philip Klevestav (from http://www.philipk.net/tutorials/modular_rocks/modular_rocks.html)

Wall textures

Thinking modularly

Many wall textures are designed to tile horizontally, but not necessarily vertically. Edge detail at the top and bottom helps emphasize where the wall meets the ceiling and the floor, simulating ambient occlusion / the realistic accumulation of dirt.
To take the segmentation further, keep the middle of the wall texture fairly plain. For short or tall walls, you can either add or remove subdivisions based on this repeatable middle section. A segmented / modular texture is more flexible to use.
For low polygon art styles, it is very useful to paint details and structure directly into the wall texture; that way you won't have to model or bake these details manually.
example wall texture divided into thirds with repeatable mid section, by Ben Mathis (from http://www.poopinmymouth.com/tutorials/thirding-textures-tip.html)

Panels

When modeling modular buildings made of panels, combine all the panel segments into one texture. Painting individual edge details (dirt, grime, shadow) can help accentuate each panel and make them feel unique / less repetitive. The panel layout should accommodate various sizes and shapes, to give more flexibility.
all the different panels for this medieval house share a single texture, by 'gutekfiutek' for Mount and Blade (http://wiki.polycount.com/wiki/ModularMountAndBlade)from

Trim sheets

Trim sheet... Sunset Overdrive "ultimate bevel" talk?
Multiple related subtextures grouped together, designed to be used together
But a trim sheet is not magic, in fact it makes the texture even more difficult to use. Really, anything can function as a
making a detailed rug using a trimsheet texture by Lea Kronenberger, from https://www.beyondextent.com/articles/balancing-modularity-and-uniqueness-in-environment-art

Hotspot UVs

A new recent trend in
Half-Life Alyx hotspot UVs (DreamUV)

How to make textures

Texture art for games is obviously a big topic that deserves its own book. We can't really teach you how to become a texture artist, this is a skill that people spend years learning and practicing.
Here, we will only talk about the general workflow for creating textures for levels.
For links to free textures, or recommended game art books and websites, see Resources.

Handpainting

Photosourcing

Baking a sculpt

Procedural texture synthesis

Today, Substance Designer is overwhelmingly the primary environmental texturing tool across the industry. By connecting various samplers and operations together into a node graph, artists can visually program a texture synthesis pipeline to procedurally generate many texture maps and variations at a time. If you're coming to Substance from a Photoshop background, imagine Photoshop Actions and filters on steroids.
There are two main advantages to this workflow over the traditional handpainting method: (1) you can easily resample textures at higher resolutions at any time, (2) the modular workflow means you can reuse graphs.
For example: if you handpaint a stone wall texture in Photoshop at 512x512, there's no easy way to sample higher resolution textures or make similar variations on that stone wall. But if you build a Substance graph to generate that stone wall, then you can set the exporter to 2048x2048 or input a different heightmap to make countless variations very quickly.
Substance graphs and brick generator iterations (left) with different heightmap inputs (right) for Graven, by Ben "Makkon" Hale (https://3drealms.com/devblog/graven-dev-blog-4-making-procedural-pixel-textures/)

How to apply textures

Gather a palette

Triplanar projection

Texture alignment

It's not really a big deal

Further reading

Trims and trim sheets

  • GDC 2015: "The Ultimate Trim: Texturing Techniques of Sunset Overdrive" by Morten Olsen (Insomniac Games) is a talk on how a relatively small environment art team created a wide variety of looks for a large open world game. Great introduction to trim sheet construction and texture variants, but today you'd probably want to model the bevels instead of normal mapping the bevel.
  • Trim Sheet Detailed Breakdown by Shubham Kumar covers the full process. Kumar starts by gathering material reference, then measures the trim sheet metrics / grid, then synthesizes the materials in Substance and applies the trim sheet to a model.