This commit is contained in:
2026-07-05 01:51:50 +02:00
parent 08f544b358
commit 1b0c24405b
3 changed files with 78 additions and 1 deletions
@@ -1,5 +1,9 @@
# wgt01 Texture Kit Implementation Plan
> **STATUS: EXECUTED & MERGED (2026-07-05).** Historical record. As-shipped
> deviations are in `../specs/2026-07-05-wgt01-texture-kit-design.md` ("As
> shipped"); remaining slots in `../specs/2026-07-05-wgt01-texture-kit-gaps.md`.
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
**Goal:** Build the 8-slot dark-gothic PBR texture kit for the wgt01 tileset (`wgt01/textures/`), regraded to the concept-art palette, with provenance notes and materials wired into `wgt01.blend`.
@@ -1,6 +1,6 @@
# wgt01 Texture Kit & Design — Spec
Date: 2026-07-05 · Branch: `wgt01-tileset-kit` · Status: approved-in-conversation, pending spec review
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
@@ -77,6 +77,26 @@ the reference when we get there); water animation; minimaps; hak packing.
(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
@@ -0,0 +1,53 @@
# wgt01 Texture Kit — Missing Slots (Phase 2) — Spec
Date: 2026-07-05 · Status: draft, not yet planned
## Goal
Extend the shipped wgt01 ground kit (see
`2026-07-05-wgt01-texture-kit-design.md`, phase 1, merged) with the material
slots from the `wgt01/concept-art-2.png` MATERIAL PALETTE row that the kit
does not yet cover. These serve buildings/props/upper structures, so they are
needed before any facade or placeable work — not by the ground tiles.
## Missing slots
| slot | palette name | proposed basename | notes / source leads |
|---|---|---|---|
| red fire brick | BRICK (INDUSTRIAL) | `wgt01_fbrick` | deep red industrial brick; ambientCG `Bricks*` CC0, regrade warm-dark (keep red, don't cool-tint it away) |
| metal (iron) | METAL (IRON) | `wgt01_iron` | riveted dark plate; ambientCG `Metal*` CC0; low roughness, near-black |
| wood (timber) | TIMBER | `wgt01_timber` | dark structural beam wood; Procampur `tcn01_wood*` if present, else CC0 |
| wood planks (tarred) | WOOD (TARRED) | `wgt01_planks` | dock/floor planking, near-black tarred finish |
| brass | BRASS | `wgt01_brass` | fittings/trim; small tiling metal, warm highlight |
| copper (aged) | COPPER (AGED) | `wgt01_copper` | verdigris green-teal; roofing/pipes |
| plaster | PLASTER | `wgt01_plastr` | cracked grey-brown wall plaster |
| roof slate | ROOF SLATE | `wgt01_slate` | dark slate shingles |
| dirty glass | DIRTY GLASS | `wgt01_glass` | window panes; likely needs alpha/env treatment |
| rope / canvas | ROPE / CANVAS | `wgt01_canvas` | awnings, tarps, rigging |
| paper / posters | PAPER / POSTERS | `wgt01_poster` | decal-style, 32-bit alpha like the grime decals |
| alchemical stains | ALCHEMICAL STAINS | `wgt01_alchst` | alpha decal overlay |
| grime & soot | GRIME & SOOT | — | partially covered by `wgt01_grime1_d`; add soot variant if phase-2 work shows it's needed |
Priority when planned: fire brick, iron, timber, planks first (user-named,
plus structural); brass/copper next (trim); plaster/slate/glass with facade
work; canvas/poster/stains as decals last.
## Standards (carry over from phase 1, as shipped)
- TGA type 2 uncompressed; 24-bit for `_d/_n/_h`, 32-bit RGBA for decals.
- Basenames ≤ 16 chars, lowercase, `wgt01_` prefix.
- `.mtr` CRLF: `texture0` `_d`, `texture1` `_n`, `texture2` black, `texture4` `_h`.
- All diffuses through `wgt01/regrade.sh` (defaults `MOD=65,55,100
TINT=#232830 TINTPCT=12`) with per-slot env overrides recorded in
SOURCES.md — except slots whose identity is a hue (fire brick red, copper
verdigris, brass): those get a custom grade that darkens without killing
the hue; record the exact command.
- Every file gets a `SOURCES.md` row (origin + license) at creation time.
- New materials wired as `MAT_wgt01_<slot>` in `wgt01.blend` via
`wire_materials.py` (which sets `use_fake_user`).
## Out of scope
Building/facade geometry; `.set`/`.hak` packing; animated glass/env maps.
This spec is inventory + standards only; sizing and sourcing decisions happen
when a phase-2 plan is written.