# wgt01 Texture Kit & Design — Spec Date: 2026-07-05 · Branch: `wgt01-tileset-kit` · Status: **shipped & merged** (see "As shipped" below; gaps tracked in `2026-07-05-wgt01-texture-kit-gaps.md`) ## Goal Assemble the material/texture kit for **wgt01** (Westgate Urban Foundation tileset): dark gothic ground grammar only — streets, sidewalks, plazas, curbs, gutters, raised tiers, ramps, canals, bridges. No buildings (placeables later). Palette and material language follow `wgt01/concept-art-1.png` (8 material slots) and `wgt01/VIBE.md` (noir dark fantasy, rain-slick, early industrial-magical shown only through ground grammar). ## Approach (decided) **Hybrid curated**, Procampur-first with a small internet pull: - Base structure from `/home/vicky/Blender/PBR_Procampur` (PBR retexture of stock `tcn01` City set: `_d/_h/_n` maps + `.mtr`, NWN-correct tiling scale). Confirmed too grey-green/warm as-is → every diffuse gets a uniform regrade. - Fresh CC0 pulls (ambientCG / Polyhaven or similar) only for slots Procampur lacks: plaza slabs, possibly sidewalk flagstone and bridge arch stone. - `pd textures main lib` is fallback only (Roads is mostly modern asphalt; the dark pebble-cobble pattern is a candidate wet-cobble alternate). Rejected: pure Procampur rename (not dark enough); all-internet (discards ready-made NWN conventions, most work). ## Deliverables 1. `wgt01/textures/` — the kit. Per material slot: `wgt01__d/_h/_n.tga` (+ `_s` where available) and `wgt01_.mtr`. All resrefs ≤ 16 chars, `wgt01_` namespace. No originals modified in `/home/vicky/Blender`. 2. `wgt01/textures/SOURCES.md` — per-file provenance + license notes (Procampur origin filename, or CC0 URL/asset id). 3. `wgt01/regrade.sh` (or small script) — the single ImageMagick recipe (levels + desaturate + cool tint, ~35% darken) applied to all diffuses so the kit shares one palette. Reproducible; height/normal maps pass through untouched; missing `_s` generated from darkened diffuse. 4. Materials wired into `wgt01/wgt01.blend` on the tile prototypes (named `MAT_wgt01_`, image-based, matching KICKOFF material roles). ## Material slots | # | Slot (concept sheet) | Source | Notes | |---|---|---|---| | 1 | Wet cobblestone | `tcn01_cobb02` d/h/n | regrade; specular boosted for rain-slick | | 2 | Worn stone / patches | `tcn01_cobb05` | regrade; broken/repair variant | | 3 | Plaza stone (large slabs) | internet CC0 flagstone/slate | grade to palette | | 4 | Curb / sidewalk stone | `tcn01_stone04` or internet flagstone | pick after regrade test | | 5 | Retaining wall stone | `tcn01_brick03` + `tcn01_slum01`; `tcn01_watrstn02` waterline overlay near canals | regrade | | 6 | Bridge stone | `tcn01_stone04`/`brick03` variant; internet arch stone if needed | regrade | | 7 | Dark gutter / drain | `tcn01_grate01`/`grill01` iron + darkened stone channel | near-black, wet; grate01 is DDS-only → convert | | 8 | Canal / dark water | authored near-black water diffuse; `.set` `EnvMap` | `tcn01_water01` too green; animation later | Grime layer (not a slot): `tcn01_splotch*`/`stain*` alpha decals reused as-is. ## Tile grammar (context, unchanged) Prefix `wgt01`; terrains `cobble` / `plaza` / `canal`; crossers `street` / `sidewalk` / `canal_edge`; `Transition=1.5`; raised tier = cobble at corner height 1 (not a terrain). Kept minimal per the terrain-pairing cost rule in root `AGENTS.md` §2.1. Canal water sits at Z = −0.3 under a non-walkable walkmesh. ## Out of scope Buildings/facades/props; `.set`/`.itp`/`.mdl` emission (twu01 generator kit is the reference when we get there); water animation; minimaps; hak packing. ## Verification - Contact sheet (ImageMagick montage) of all regraded diffuses next to concept-art swatches — visual palette check. - Every slot has `_d/_h/_n` + `.mtr`, names ≤ 16 chars, TGA (no stray DDS). - `wgt01.blend` opens in Blender 4.0.2 with all `MAT_wgt01_*` images resolving (relative paths into `wgt01/textures/`). - `SOURCES.md` covers every shipped file. ## As shipped (current truth, post-merge) Deviations from the table above; everything else landed as specced: - No `_s` maps anywhere — `.mtr` uses `texture2` pointing at a shared black, `texture4` `_h`. The "generate `_s` from darkened diffuse" idea was dropped. - Slot 4 sidewalk = `tcn01_stone04` (the internet-flagstone option lost). - Slot 5 wall = `tcn01_brick03` only; no `slum01` blend. Waterline is a separate decal `wgt01_wtrline_d`. - Slot 6 bridge shares `tcn01_stone04` with sidewalk, differentiated by a darker/cooler regrade (`MOD=42,40,105 TINT=#1c2436 TINTPCT=22`); its `_n/_h` are still sidewalk's — replace only if it reads wrong in-engine. - Slot 7 gutter = extra-dark cobble regrade; the iron grate is a separate 32-bit decal `wgt01_grate_d` (DDS converted via nwn_crunch, not ImageMagick). - Slot 8 water = authored near-black diffuse + `wgt01_water_d.txi` with the standard bumpyshiny template (`ttr01__env` / `shinywater`), **no `.mtr`** and no `.set` EnvMap dependency. - Full provenance in `wgt01/textures/SOURCES.md`; palette check in `wgt01/textures/contact-sheet.png`. ## Risks - Regrade recipe may need per-slot tweaks; keep overrides in the script, not hand-edited images. - Internet pulls are network-dependent and need license capture at download time. - Procampur's own redistribution license should be checked before the kit ships in a public `.hak`; fine for internal prototyping.