The 3D Handbook
Part 11 — Practice ProjectsPage 240 of 248 on the reading route
Exercise

Exercise: a trim sheet

A full project brief for one 2048 px trim sheet at 512 px/m, planned from a kit, built, tested at low mips and used to texture several pieces, with checkpoints and a breakdown.

exercisetexturingtrim-sheetsmodularportfolio

A trim sheet is one texture made of horizontal strips that tile left to right, used to texture the edges, bands and panels of many meshes at once. This brief asks you to plan one sheet from a real kit, build it, prove it survives mipmapping, and texture several pieces with nothing else.

Tim Simpson of Polygon Academy writes that over half of junior environment applicants have "ZERO examples of tiling texture use or trim sheet knowledge in their portfolio", and that he would trust an applicant more with "a strong use of trim textures in at least one portfolio piece" (Polycount: TUTORIAL: Trim Textures for environment art…). Read trim sheets first; this page is the practical project.

#The brief

Goal. One 2048 × 2048 px trim sheet for one material family (painted metal, plaster and stone, or wood) at 512 px/m, used to texture at least three kit pieces and one prop with no unique textures.

Start from a kit. Use the pieces from exercise: a modular room, or block out three simple pieces now: a wall section with a skirting board, a door frame, a pillar. Tim Simpson's advice on Polycount is that "the less winging it the better usually", working backwards from designers' proxy models (Polycount: Creating Trim Sheets 4 Part Tutorial…).

#Constraints

Constraint This brief Why
Size 2048 × 2048 px At 512 px/m the sheet covers 4 m before it repeats
Texel density 512 px/m PixelMasher calls "2k for 4m" "pretty standard for 3rd person games, especially if they are on console" (Polycount)
Tolerance Islands scaled within ±25% of the target Beyond Extent's acceptable range for trims (Beyond Extent)
Strip heights Powers of two (64–512 px), each starting on a multiple of its own height Keeps borders on whole pixels at every mip; TrimForge warns about strips "narrower than 16 px" and pads strips so they "are aligned to the mip levels" (Superhive Market)
Strips At least eight, including one bevel strip and one flat filler area See the worksheet below
Material family One per sheet Tim Simpson: mixed materials make roughness harder to tune (Polycount)
Maps Base colour, normal, packed roughness / metallic / AO, optional height See channel packing
Unique textures None on the test pieces The test is whether the sheet alone is enough
A square trim sheet divided into nine horizontal strips, with a table beside it. From top: wide panel 512 pixels starting at row 0, flat filler 512 at 512, cornice 256 at 1024, bevel strips 256 at 1280, skirting 128 at 1536, door frame 128 at 1664, metal edge 64 at 1792, cable 64 at 1856, rivet strip 128 at 1920. World sizes at 512 pixels per metre run from 1 metre down to 12.5 centimetres. A note says every start row divides by its own height.
A worksheet for this brief. Fill in your own strips, but keep the two rules: heights are powers of two, and each strip starts on a multiple of its own height. World size is height ÷ 512 px/m.Diagram by the handbook author

#Stages

#1. Planning from the kit

List every edge, band and panel your pieces need, with its real height in centimetres. Convert each to pixels at 512 px/m and round to a power of two. EMC3D's video on trim planning orders the work as a colour overlay plan, then a trim sheet plan, then "Using The Blockout", with a chapter simply titled "Don't Rush!" (YouTube: What Does Good Trim Sheet Planning &…). Tim Simpson's first video in his series is entirely about planning which pieces a sheet must serve (Polygon Academy: Planning & Creating Trim Sheets For Games…).

#2. Building the strips

Choose how to make the content (the views box below compares them): model or sculpt the strips as geometry on a plane and bake them down, or build them in Substance 3D Designer (procedural materials). Tyler Smith's Primary Shapes course on ArtStation Learning starts a stone temple trim from shape design, the functional anatomy of architecture and reference, blocking in forms for the sheet's design in ZBrush (ArtStation Learning: Primary Shapes).

Make the bevel strip carefully. Morten Olsen's "Ultimate Trim" talk on Sunset Overdrive built a whole open world on a specific trim layout and normal map structure (GDC Vault: The Ultimate Trim: Texturing Techniques of…). Artists reproducing it on Polycount found that "the secret to techinque was a PERFECT 45 degree angle on a normal map" (Polycount: The 'ultimate trim' technique from Sunset…).

#3. Texturing and tiling tests

Texture the sheet to physically based rendering values. Then check that every strip wraps seamlessly at its left and right edges: place the sheet on a long plane tiled four times and look for seams. Polynaught spotted seams where the ends of a circular trim met; Tim Simpson replied that "in 99% of cases you will never notice it" (Polycount: Creating Trim Sheets 4 Part Tutorial…), but check the straight strips anyway.

#4. Mapping the pieces

Unwrap each piece so every band of faces becomes a straight, rectangular UV island. Set density first, then move each island vertically onto the strip that matches its height and let it run off the left and right edges, since the strip tiles. Expect to adjust the mesh as well: Tim Simpson warns you will often "squash and stretch parts of your mesh" or add edge loops so pieces fit the trims (Polycount: Creating Trim Sheets 4 Part Tutorial…). If your engine bakes light, give each piece a second UV set for lightmap UVs, because trim UVs overlap. See UV mapping and texel density.

For the bevels, chamfer real edges at 45 degrees and map the chamfer faces onto the bevel strip. On Polycount, huffer warns that bevels "will introduce shading gradients on planar surfaces, unless you use face-weighted normals" (Polycount: The 'ultimate trim' technique from Sunset…). See weighted (custom) normals and bevels and chamfers.

#5. Engine test and presentation

Assemble the pieces under real lighting. Then add variety on top of the sheet with vertex painting and blending and decals, so the same strip does not read as a copy.

#Shipped trim sheets to study

Before you plan, look at how shipped trim sheets are laid out and what they cover. For each, estimate the pixel height of the widest and narrowest strips and guess the world size.

Notice the duplicate sizes of grooves and rivets: the same detail at more than one scale, so it fits more props.Matthew Trevelyan Johns, via ArtStation
Watch before stage 1. The chapters on the colour overlay plan, using the blockout and the recommended process map directly onto this brief (YouTube: What Does Good Trim Sheet Planning &…). Watch on YouTube

#Further reading and watching

References

  1. PixelMasher (Tim Simpson) and others · TUTORIAL: Trim Textures for environment art and props · Polycount, 2019 · forum · accessed 2026-10-21
  2. Polycount forum (PixelMasher, Epitaph, Polynaught and others) · Creating Trim Sheets 4 Part Tutorial - Polygon Academy (thread) · Polycount, 2019 · forum · accessed 2026-10-21
  3. Timothy Dries · Texel Density (deep dive) · Beyond Extent, 2022 · article · accessed 2026-10-21
  4. TrimForge developer · TrimForge — Trim Sheet Workflow (version notes) · Superhive Market · tool · accessed 2026-10-21
  5. EMC3D - Game Art · What Does Good Trim Sheet Planning & Preparation Look Like? (Part 2) · YouTube, 2024 · video · accessed 2026-10-21
  6. Tim Simpson · Planning & Creating Trim Sheets For Games - Trim Texture Tutorial Part 1 · Polygon Academy (YouTube), 2019 · video · accessed 2026-10-21
  7. Tyler Smith · Primary Shapes · ArtStation Learning · course · accessed 2026-10-21
  8. Morten Olsen (Insomniac Games) · The Ultimate Trim: Texturing Techniques of Sunset Overdrive · GDC Vault, 2015 · talk · accessed 2026-10-21
  9. dzibarik, Makkon, Clark Coots, huffer, JedTheKrampus, Epitaph and others · The 'ultimate trim' technique from Sunset Overdrive · Polycount, 2015 · forum · accessed 2026-10-21
  10. JamesRay, Dreyzie and others · Kinmel Hall UE4 Environment Study · Polycount, 2019 · forum · accessed 2026-10-21
  11. Matthew Trevelyan Johns · The Last of Us: Part I...Trim Pipeline · ArtStation · web · accessed 2026-10-21
  12. Dekogon Studios · Artstation Learning - Environment Production in UE5 · ArtStation, 2021 · course · accessed 2026-10-21
  13. Tim Wilmsen · Baldur's Gate 3 - Glasshouse Modular Set · ArtStation · web · accessed 2026-10-21
  14. Paweł Kostecki · Indiana Jones and the Great Circle - Tomb Kit · ArtStation · web · accessed 2026-10-21
  15. Adrien Thierry · The Golden Cat · ArtStation · web · accessed 2026-10-21
  16. EMC3D - Game Art · The Different Types Of Trim Sheets & How They Are Used In Games (Part 1) · YouTube, 2024 · video · accessed 2026-10-21

Last updated 2026-10-22