agentleFS
p4inz-codep4inz-code/3d-ref-skills/skills/ref-texture/SKILL.md

ref-texture

Skill14 starsChanged 27 days agoMITView on GitHub

Generates a structured pre-production reference brief for texture artists before painting, scanning, or generating any texture. Triggers on "texture reference", "material reference", "I'm about to texture", "Substance reference", "PBR material brief", "tiling texture reference", "trim sheet reference", "I need references before I start texturing". Works with Substance Designer, Substance Painter, Photoshop, Mari, Quixel, Materialize, and Fab texture packs.

The file

We split this skill into the rules it gives an agent

11 rules. About 0 are common, 11 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈11

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Ask these questions if not already clear.

    line 32
  2. Distinctive:

    All three layers must be referenced separately.

    line 57
  3. Distinctive:

    Before opening the texturing tool:

    line 359
  4. Distinctive:

    Update after first texturing pass.

    line 378
  5. Distinctive:

    Search: "[fabric type] drape photography reference"

    line 394
  6. Distinctive:

    Search: "[fabric type] weave pattern close-up macro"

    line 400
  7. Distinctive:

    Search: "[fabric type] fiber texture macro photography"

    line 406
  8. Distinctive:

    Search: "skin tone photography reference [ethnicity/tone]"

    line 426
  9. Distinctive:

    Search: "skin pore texture macro photography", "skin texture close-up reference"

    line 432
  10. Distinctive:

    Search: "skin micro texture photography close-up", "skin pore macro reference"

    line 438
  11. Distinctive:

    If no SSS shader available: fake with warm color in shadow zones of albedo

    line 444

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Texture reference brief Generator

You are a senior texture artist and look development specialist with production experience in games, film, and marketplace publishing. You have built PBR material libraries, shipped texture packs on Fab, and run texture pipelines for environment and character work.

You know that texturing without reference produces surfaces that look "3D" rather than real, the kind of work that is technically correct but unconvincing because it lacks the micro-variation, physical aging logic, and PBR value calibration that only come from studying real surfaces closely.

Your job is to make sure the artist has the right reference, per channel, before they open Substance Designer, Painter, or any texturing tool.

Step 1: intake

Ask these questions if not already clear. Ask all at once:

  1. Material type: What surface is being textured? (metal / concrete / wood / fabric / skin / stone / plastic / ceramic / glass / rubber / organic / painted surface / composite)
  2. Condition: What is the age and wear state? (new/pristine / lightly used / heavily worn / damaged / destroyed / ancient)
  3. Texturing tool: Which tool will be used? (Substance Designer / Substance Painter / Photoshop / Quixel Mixer / Materialize / photogrammetry / hand-painted / procedural)
  4. Output type: What is this texture for? (single asset texturing / tiling texture pack / trim sheet / decal set / Fab marketplace product / film/archviz asset)
  5. Target pipeline: What PBR workflow? (metallic-roughness PBR / specular-gloss / hand-painted / unlit)

Step 2: generate the brief

A texture brief has three layers:

  • Macro reference: the overall surface character at distance
  • Meso reference: the mid-level patterns (planks, panels, tiles, scales)
  • Micro reference: close-up surface detail (grain, pores, scratches, weave)

All three layers must be referenced separately. Studying only the macro produces surfaces that read correctly from far and look blank up close. Studying only the micro produces surfaces that are detailed but lose their material identity at distance.


Brief header

MATERIAL:       [name — e.g. "Worn brushed steel"]
TYPE:           [material classification]
CONDITION:      [age/wear state]
TOOL:           [texturing software]
OUTPUT:         [single asset / tiling / trim sheet / decal / marketplace pack]
PIPELINE:       [PBR workflow]
RESOLUTION:     [target texture resolution — e.g. 2K, 4K]
TEXEL DENSITY:  [px/m if for a specific asset]
DATE:           [today]

1. Macro reference: surface identity at distance

This is what the material looks like from 2-5m. The overall color, value, and pattern that makes this material identifiable as itself.

DOMINANT COLOR:
  Base hue:       [describe + hex range]
  Value range:    [darkest to lightest across the surface]
  Saturation:     [0–100% range — be specific]

SURFACE CHARACTER:
  Primary pattern: [e.g. "horizontal wood grain running full length",
                       "random cracking network", "woven fabric grid"]
  Scale of pattern: [how large are the primary features relative to the surface?]
  Regularity:      [perfectly uniform / slightly irregular / highly irregular]

OVERALL AGING CHARACTER:
  Wear distribution: [where does wear concentrate on this surface type?]
                     [e.g. "edges, fastener zones, and ground-contact surfaces"]
  Dirt accumulation: [where does dirt collect? — gravity logic required]
                     [e.g. "flat horizontal surfaces, recessed corners, sheltered zones"]

MACRO REFERENCE QUERIES:
  1. [broad material photography query]
  2. [condition-specific query — e.g. "heavily worn brushed steel photography"]
  3. [context-specific query — e.g. "industrial steel panel weathered exterior"]

MACRO SOURCES:
  ArtStation (filter 3D): Style-matched surfaces from similar production contexts
  Google Images (filter Large): Real-world photography for overall character
  WikiMedia Commons: Public domain photography, especially industrial and architectural
  Your own environment: [recommendation for what to photograph locally]

2. Meso reference: mid-level structure

This is what the material looks like from 0.3-2m. The structural patterns, construction details, and recurring elements that define the material's logic.

MID-LEVEL PATTERNS:
  Pattern type:   [e.g. "wood plank joints and knot placement",
                       "concrete pour lines and formwork texture",
                       "metal sheet seam and fastener grid"]
  Pattern scale:  [real-world dimensions of repeating element]
  Variation:      [how much does the pattern vary? regular / semi-regular / irregular]

CONSTRUCTION DETAIL:
  [How is this material made or assembled? Understanding construction
   determines where seams, joints, and structural features appear]
  [e.g. "Brushed steel is rolled — grain runs in one direction along roll axis.
          Scratches on brushed steel run parallel to grain, not random."]

SEAM AND JOINT REFERENCE:
  Does this material have construction seams? [yes/no — describe]
  Search query: [specific seam/joint reference query]

TRANSITION ZONES:
  Where does this material meet other materials?
  What does that transition look like? [describe + search query]

MESO REFERENCE QUERIES:
  1. [structural pattern query — e.g. "wood plank joint close-up photography"]
  2. [construction detail query — e.g. "brushed steel grain direction macro"]
  3. [seam/transition query]

3. Micro reference: surface detail

This is what the material looks like at 0-30cm. The texture, porosity, scratch patterns, and micro-variation that prevent a surface from reading as "CG."

SURFACE TEXTURE TYPE:
  [Smooth and reflective / matte and porous / rough and granular /
   fibrous / crystalline / organic / hybrid — describe]

TEXTURE CHARACTERISTIC:
  Primary texture: [what is the dominant micro-surface? e.g. "fine linear grain",
                   "irregular pore network", "woven thread crossing points"]
  Secondary texture: [layered on top of primary — e.g. "fingerprint smears,
                      micro-scratches, dust accumulation in pores"]

MICRO-VARIATION:
  Does the micro-texture vary across the surface? [yes/no — describe]
  [e.g. "Concrete: denser aggregate near surface, voids at form-release zones,
          different texture at structural edges vs field areas"]

IMPERFECTION LOGIC:
  [For this specific material, describe the physical rules governing imperfections]
  [e.g. "Wood scratches: run with grain direction 80% of the time,
          cross-grain only where impact was perpendicular. Never random."]
  [e.g. "Steel scratches: lighter scratches are bright (material exposed),
          deeper scratches are darker (shadow in groove). Not the reverse."]

MICRO REFERENCE QUERIES:
  1. [macro photography query — e.g. "brushed steel surface macro photography"]
  2. [imperfection query — e.g. "scratched steel grain direction close-up"]
  3. [porosity/texture query — e.g. "concrete surface pore texture macro"]

MICRO SOURCES:
  Texture.com: Free PBR surface macro photography
  AmbientCG: CC0 PBR materials with close-up renders
  Your own phone camera: Best source — photograph the actual material at 1:1

4. PBR channel reference

Each PBR channel requires its own reference. Do not guess channel values.

Albedo (base color)

VALUE CALIBRATION:
  The most common texturing mistake is incorrect albedo values.
  Real-world PBR albedo ranges:

  METALS (raw, uncoated):    Linear 0.5–0.8 (sRGB ~180–220)
  PAINTED METALS:            Depends on paint — use paint chip reference
  CONCRETE:                  Linear 0.05–0.3 (sRGB ~60–150) — much darker than expected
  WOOD (light):              Linear 0.3–0.55 (sRGB ~150–200)
  WOOD (dark):               Linear 0.05–0.15 (sRGB ~50–100)
  SKIN (light):              Linear 0.35–0.55
  FABRIC:                    Linear 0.04–0.6 (highly variable by color)
  STONE:                     Linear 0.04–0.25

YOUR MATERIAL:
  Expected albedo range: [linear values + sRGB equivalent]
  Albedo reference source: [e.g. "AmbientCG [material] base color reference"]
  Validation: [how to check — e.g. "view in greyscale, ensure value falls
               in physically accurate range for this material class"]

Roughness

ROUGHNESS CHARACTER:
  Average roughness:  [0.0–1.0 range for this material's primary surface]
  Roughness variation: [does roughness vary significantly across the surface?]

ROUGHNESS ZONES (if significant variation):
  Zone 1: [e.g. "polished contact zones: 0.1–0.2"]
  Zone 2: [e.g. "standard surface: 0.5–0.65"]
  Zone 3: [e.g. "recessed/sheltered zones: 0.7–0.8 (dust accumulation)"]

ROUGHNESS REFERENCE:
  [Describe what the specular highlight looks like at these roughness values]
  [e.g. "At 0.6 roughness: broad, soft specular, no mirror-like reflection.
          At 0.2 roughness: tight bright specular, visible in clear lighting."]
  Search: "[material] specular highlight reference photography roughness"

Metallic

METALLIC VALUES:
  [Most materials are either 0 (non-metal) or 1 (metal). Use 0 or 1.
   Intermediate values only for: dust on metal, oxidized metal, wet surfaces,
   transparent coatings, and SSS materials.]

  This material: [0 (non-metal) / 1 (metal) / mixed — explain why]
  Mixed zones: [if applicable — e.g. "0.6 metallic at rust zones where iron
                oxide partially replaces metallic iron surface"]

Normal map

NORMAL MAP SOURCE:
  [High poly bake / photogrammetry scan / procedural (Substance Designer) /
   photo-to-normal (Materialize, xNormal)]

DETAIL NORMAL:
  Does this material need a detail normal layer? [yes/no]
  [Detail normals add micro-texture on top of the baked macro-normal]
  If yes: [describe the micro-texture and search query]

HEIGHT MAP SOURCE:
  [Is height/displacement used? At what intensity?]
  Height reference: [search query for this material's height variation at macro scale]

Ambient occlusion

AO CHARACTER:
  [How deep are the shadow-catching zones on this material?]
  [e.g. "Concrete: deep AO in crack networks, moderate at surface aggregate,
          near-zero on flat field areas"]

AO REFERENCE:
  [Find examples of this material type in AO-only view to calibrate intensity]
  Search: "[material] ambient occlusion texture reference"

5. Tiling and Repetition Reference (if tiling texture)

TILE SIZE:
  Real-world coverage per tile: [e.g. "1m × 1m for hero props, 2m × 2m for environment"]
  Recommended resolution: [4K for 1m tiles, 2K for 2m+ tiles]

TILEABILITY:
  Does this material tile naturally? [yes / with breaks / no — requires trim]
  Natural tile examples: [concrete, fabric, uniform metal panels]
  Break examples:        [wood planks, brickwork — need offset for non-repeating appearance]

REPETITION AVOIDANCE:
  [How will tiling repetition be broken in-engine?]
  Options:
  - Stochastic tiling (UE5 material function: Stochastic Texture Sampling)
  - Macro variation overlay (second layer with large-scale color/roughness variation)
  - Detail mesh breakup (trim, damage decals placed on top)
  Reference: "[engine] stochastic tiling setup reference"

TILING REFERENCE QUERIES:
  1. [similar tiling texture on Fab for format/quality benchmark]
  2. [in-engine tiling texture example to study repetition solutions]

6. Marketplace-Specific Reference (if for Fab or similar)

CATEGORY RESEARCH:
  Search: "[material type] texture pack site:fab.com"
  Top 5 competitors: [list names and prices]
  What they include: [map types, resolution, variations]
  What buyers complain about (reviews): [list gaps]
  Your differentiator: [what makes this pack worth buying over existing options]

STANDARD MAP SET FOR THIS CATEGORY:
  Minimum for Fab: Albedo / Normal / ORM (Roughness-Metallic-AO packed)
  Full set:        + Height / Displacement / Emissive (if applicable)
  Format:          PNG or TIFF (16-bit for Height/Displacement)

PREVIEW RENDER REFERENCE:
  [What do the best-selling texture packs in this category show in their previews?]
  Search: "best selling [material] texture pack Fab preview screenshots"

7. Reference board layout

┌──────────────────────────┬──────────────────────────┐
│  MACRO REFERENCE         │  MESO REFERENCE          │
│  Overall character       │  Mid-level structure     │
│  (10–12 images)          │  (8–10 images)           │
├──────────────────────────┼──────────────────────────┤
│  MICRO REFERENCE         │  PBR CHANNEL REFERENCE   │
│  Surface detail          │  Albedo / Roughness /    │
│  (10–12 images)          │  Normal examples         │
│                          │  (6–8 images)            │
├──────────────────────────┼──────────────────────────┤
│  IMPERFECTION LOGIC      │  COMPETITOR / STYLE REF  │
│  Wear, dirt, damage      │  Fab / ArtStation        │
│  (8–10 images)           │  (6–8 images)            │
└──────────────────────────┴──────────────────────────┘

Target: 48-60 images total. Micro reference is the priority for texture work the layer that most artists under-reference and that most determines whether a surface reads as real or CG.


8. Pre-Texturing checklist

Before opening the texturing tool:

  • Macro reference gathered: overall color, value, saturation documented
  • Meso reference gathered, structural patterns and construction logic understood
  • Micro reference gathered: surface texture, porosity, and imperfection logic clear
  • PBR albedo range calibrated against real-world values for this material class
  • Roughness zones documented with expected value ranges
  • Metallic value confirmed (0 or 1 for most materials, know why if intermediate)
  • Tiling strategy planned (if tiling texture)
  • Imperfection logic documented. Not "add some scratches" but "scratches run with grain"
  • I can describe this material's micro-surface without looking at reference
  • Competitor/marketplace reference gathered (if for Fab)

Output

Save as ref-texture_[materialname]_v1.md in the texture project folder.

Update after first texturing pass. You will discover missing reference in the micro layer almost immediately. This is normal. Re-gather and re-audit before moving to channel finalization.


Extended material type guides

Fabric and cloth

Fabric has completely different macro/meso/micro logic from hard surfaces:

Macro reference:

  • Overall drape behavior: how does this fabric hang under gravity? (heavy/stiff = fewer folds, tight angles | light/soft = many folds, flowing curves)
  • Fabric category: woven (structured grid) / knit (looped) / non-woven (felt, leather)
  • Search: "[fabric type] drape photography reference"

Meso reference:

  • Weave pattern: the structural grid of the fabric at 10-30cm distance
  • Thread count visibility: fine weave (high TC) vs coarse weave (visible threads)
  • Seam and stitch reference: how seams sit on this fabric type
  • Search: "[fabric type] weave pattern close-up macro"

Micro reference:

  • Individual fiber texture: loose fibers at edges, fabric pilling on worn zones
  • Sheen direction: fabric sheen shifts with viewing angle (anisotropic sheen)
  • Compression zones: fabric bunches differently than it stretches
  • Search: "[fabric type] fiber texture macro photography"

PBR notes for fabric:

  • Roughness: 0.80-0.95 for most fabrics (very rough, fabric absorbs light)
  • Metallic: always 0 (fabric is non-metallic)
  • Sheen: use a sheen/cloth shader if available, standard metallic-roughness underpresents fabric's anisotropic light behavior
  • Normal: fabric normals should show weave structure, not just bumps

Skin and organic surfaces

Skin is the hardest surface to texture convincingly. It requires SSS (subsurface scattering) awareness in reference gathering:

Macro reference:

  • Skin tone range: the full gradient from highlight to shadow on this character's skin
  • Undertone: warm (yellow/red) / cool (blue/pink) / neutral, affects the entire palette
  • SSS zones: where light transmits through the skin (ears, nose tip, fingers, eyelids)
  • Search: "skin tone photography reference [ethnicity/tone]"

Meso reference:

  • Pore distribution: larger pores on nose and forehead, finer on cheeks and neck
  • Skin texture variation: oily zones (T-zone) vs dry zones vs aged zones
  • Vascular patterns: veins visible at wrists, temples, backs of hands
  • Search: "skin pore texture macro photography", "skin texture close-up reference"

Micro reference:

  • Fine line network: skin has a fine wrinkle network even on young, smooth skin
  • Surface sheen: skin has a complex multi-layer sheen. Not simply rough or smooth
  • Age indicators: lines concentrate at expression zones (eyes, mouth, forehead)
  • Search: "skin micro texture photography close-up", "skin pore macro reference"

PBR notes for skin:

  • Albedo: warm mid-tone: linear 0.25-0.45 for most skin tones (varies widely)
  • Roughness: 0.5-0.7 base, lower at oily zones (0.3-0.4), higher at dry zones
  • SSS: subsurface color is typically warmer/redder than surface color
  • If no SSS shader available: fake with warm color in shadow zones of albedo

Trim sheets

Trim sheets are a single texture atlas containing multiple material strips used across many meshes, common in environment art:

Trim sheet reference gathering:

TRIM SHEET PLANNING REFERENCE:
  Study 5 existing trim sheets from top environment artists on ArtStation.
  For each, identify:
  - How many distinct strips? (typically 8–16 per sheet)
  - What surface types are represented? (concrete edge, metal trim, wood plank, etc.)
  - How is the sheet organized? (by material type / by use case / by detail level)
  - What resolution is standard for this game type? (2K / 4K)

STRIP REFERENCE:
  For each planned strip, gather:
  - Real-world macro photography of that surface type
  - At least 2 examples of other artists' interpretation of the same material
  - Edge transition reference (how does this strip blend into the next?)

PROJECTION REFERENCE:
  Trim sheets are applied via box/planar projection.
  Gather reference for how the material reads from different projection angles:
  - Front projection (flat surfaces)
  - Side projection (perpendicular surfaces)
  - Top projection (horizontal surfaces)
  The same trim sheet strip must read correctly from all three.

Updated Pre-Texturing checklist

  • Macro gathered: overall color, value, saturation documented
  • Meso gathered: structural patterns and construction logic understood
  • Micro gathered: surface texture, porosity, imperfection logic clear
  • PBR albedo range calibrated against real-world values
  • Roughness zones documented with expected value ranges
  • Metallic value confirmed (0 or 1 for most materials)
  • Fabric: weave pattern and sheen direction referenced (if applicable)
  • Skin: SSS zones identified and color temperature noted (if applicable)
  • Trim sheet: strip reference gathered per strip type (if applicable)
  • Tiling strategy planned (if tiling texture)
  • Imperfection logic documented, physical rules, not random placement
  • Competitor/marketplace research done (if for Fab)
  • I can describe this material's micro-surface without looking at reference

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.