table_baroque, chair_modernist, desk_scifi (furniture, with mask sidecars) and lion_statue (props, non-tintable) enter client/assets/models/ under the category-first convention, byte- identical to the spike sources (MD5-verified; spikes/ untouched, vw_beetle excluded per the Q-067 deferral). Postprocess verified already-applied by Blender node-graph inspection (mat_primary, roughness=1.0/specular=0.0 shader inputs — the convenience properties read stale defaults, the graph is authoritative), so not re-run. All four registered in manifest.json at 'planned' with footprint_tiles [1,1] (a flagged judgment call — normalized spike geometry erases real-world scale; the brief ruling goes to araminta in review). In-engine proof: clean headless import + ResourceLoader load + instantiate for all four. Discovery documented in conventions.md §2 + glb-gen SKILL.md: Godot externalizes the GLB's embedded texture as a <model>_Image_0.png sidecar referenced by binary UID — it must be committed or loading breaks with an undiscoverable dependency error. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
58 lines
3.5 KiB
Markdown
58 lines
3.5 KiB
Markdown
---
|
||
title: "Visual Asset Pipeline"
|
||
description: "Visual pipeline index — 3D models, textures, and flat 2D artwork (D-244)"
|
||
type: design
|
||
status: active
|
||
---
|
||
|
||
# Visual Asset Pipeline
|
||
|
||
Status: **Active** — catalog structure instantiated (T-1050); first models
|
||
promoted (T-1204); textures/artwork/effects production still pending.
|
||
|
||
Per **[D-244](../../../governance/decisions/architecture.md#d-244)**: the in-world view renders **3D objects directly**. The only flattened 2D content is **textures** (PBR maps on 3D surfaces) and **flat 2D artwork** (paintings, flags, billboards, signage) applied as textures/decals on flat surfaces *within* the 3D world. **There is no per-object sprite layer** — game objects are not pre-rendered to sprites.
|
||
|
||
## Categories
|
||
|
||
| Category | File | Count | Description |
|
||
|----------|------|-------|-------------|
|
||
| Models | [models.md](models.md) | 4 | 3D objects/props (`.glb`) via Trellis (`/glb-gen`), promoted per [D-241] |
|
||
| Characters | — | — | 3D meshes composited at runtime via `CharacterVisualDescriptor` — see [character-asset-organization.md](../../architecture/character-asset-organization.md) |
|
||
| Textures | [textures.md](textures.md) | 0 | PBR surface maps (BaseColor / Normal / Roughness) for 3D models |
|
||
| Artwork | [artwork.md](artwork.md) | 0 | Flat 2D art — paintings, flags, billboards, signage, screen content — applied as textures/decals (via the `/sprite-gen` 2D-artwork generator) |
|
||
| Icons | [icons.md](icons.md) | 13 | UI icons, status indicators (2D, UI layer only) — as-built inventory of `client/assets/icons/` |
|
||
| Effects | [effects.md](effects.md) | 0 | Shaders, particles, overlays |
|
||
|
||
Naming, mask-sidecar, D-235-keyed texture, and multi-tile footprint
|
||
conventions: [conventions.md](conventions.md).
|
||
|
||
## Per-Class Briefs
|
||
|
||
Each asset class entering production is gated on a one-page brief —
|
||
[../briefs/](../briefs/) — covering scope, visual reference, naming,
|
||
generation path, and acceptance (template: [../_templates/asset-brief.md](../_templates/asset-brief.md)).
|
||
Briefed this batch (T-1049): [station walls](../briefs/station-walls.md),
|
||
[rural walls](../briefs/rural-walls.md), [doors](../briefs/doors.md),
|
||
[floors](../briefs/floors.md), [furniture/props](../briefs/furniture-props.md).
|
||
Formally deferred (not briefed): lamp posts, TVs, billboards, barns, cars —
|
||
see [../briefs/deferred.md](../briefs/deferred.md).
|
||
|
||
## Palette
|
||
|
||
See [palette.md](palette.md) for art direction: camera (D-148 gameplay / D-019
|
||
offline-render), the toon-vs-PBR rendering treatment for environment props, the
|
||
D-235 ObjectTag color/material register, and entity colour relationships (D-033).
|
||
|
||
## Pipeline
|
||
|
||
- **3D objects / props:** concept image (`/image-gen`) → Trellis image→3D (`/glb-gen`) → `.glb` → promoted to `client/assets/models/`.
|
||
- **Characters:** Quaternius source meshes, segmented + rigged, composited at runtime from slots (`CharacterVisualDescriptor`); see the character-asset doc.
|
||
- **Textures:** PBR maps authored/generated for 3D surfaces.
|
||
- **2D artwork** (paintings / flags / billboards / signage): the `/sprite-gen` **2D-artwork generator** → flat PNG → applied as a texture/decal on a flat surface in the 3D world.
|
||
|
||
## Decision References
|
||
|
||
- **[D-244](../../../governance/decisions/architecture.md#d-244):** 3D objects in-world; 2D limited to textures + flat artwork.
|
||
- D-159–D-164: character 3D pipeline. D-241: asset promotion.
|
||
- D-019: top-down camera, "the angle". D-033: entity colour = relationship to player. D-045: environmental neutrality.
|