feat(assets): 3D sprite render pipeline setup (#541, D-019) #57

Closed
jpmschweitzer wants to merge 0 commits from visual into main
Owner

Summary

  • Establishes the offline 3D sprite render pipeline (#541) — Camera3D at exact D-019 angle (-72.5° from horizontal), three-point studio lighting rig (key/fill/rim, no baked shadows), orthographic projection
  • Adds generic NPC capsule model (24×32px footprint per D-044) and 8 runtime 64px test sprites (NPC + wall × 4 directions)
  • Documents full pipeline spec: camera, lighting, resolution chain (1024→256→64), model authoring guide
  • Unblocks client #540 (sprite camera angle adjustment) — test sprites ready for import validation

Decision References

  • D-019: Camera angle (-72.5° from horizontal)
  • D-043: Visual style, resolution chain, outline color
  • D-044: Entity footprint spec (24×32px in 64×64 tile)
  • D-066: Dual-scale grid, 2×2 sim tile entity footprint

Test Plan

  • Verify NPC sprite renders at correct 24×32px footprint within 64×64 tile
  • Verify wall sprite reads correctly (top + front face per D-049 Option B)
  • Verify outline (#333340) is crisp at 64px
  • Import test sprites into Godot client and confirm z-sorting works
## Summary - Establishes the offline 3D sprite render pipeline (#541) — Camera3D at exact D-019 angle (-72.5° from horizontal), three-point studio lighting rig (key/fill/rim, no baked shadows), orthographic projection - Adds generic NPC capsule model (24×32px footprint per D-044) and 8 runtime 64px test sprites (NPC + wall × 4 directions) - Documents full pipeline spec: camera, lighting, resolution chain (1024→256→64), model authoring guide - Unblocks client #540 (sprite camera angle adjustment) — test sprites ready for import validation ## Decision References - D-019: Camera angle (-72.5° from horizontal) - D-043: Visual style, resolution chain, outline color - D-044: Entity footprint spec (24×32px in 64×64 tile) - D-066: Dual-scale grid, 2×2 sim tile entity footprint ## Test Plan - [ ] Verify NPC sprite renders at correct 24×32px footprint within 64×64 tile - [ ] Verify wall sprite reads correctly (top + front face per D-049 Option B) - [ ] Verify outline (#333340) is crisp at 64px - [ ] Import test sprites into Godot client and confirm z-sorting works
jpmschweitzer added 3 commits 2026-02-23 20:02:38 +01:00
Update Camera3D to exact D-019 angle (-72.5° from horizontal).
Replace single DirectionalLight with three-point studio rig
(key 1.0, fill 0.4, rim 0.3) for clean silhouettes without
baked shadows. Add generic NPC capsule model (24×32px footprint
per D-044). Document full pipeline spec in renderer/README.md.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Runtime 64px sprites rendered through the new pipeline: generic NPC
(4 directions) and structural wall (4 directions). These unblock
client ticket #540 for sprite camera angle integration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Author
Owner

PR Review: visual -> main (visual)

Hoshe (QA): REQUEST_CHANGES

# File Severity Issue
1 README.md:91-95 vs sprites/ warning README documents <model>_<dir>.png but files are <model>_<dir>_64.png — naming mismatch
2 wall_bar_green.tscn:1 warning Missing uid header — Godot will auto-generate on import, non-reproducible
3 render_export.gd:13 suggestion Outline color correct but missing D-043 citation comment
4 README.md:50 suggestion Unclear which working directory --path . assumes
5 README.md:77 suggestion wall_bar_green in models table but no output sprites delivered

Araminta (Art Direction): REQUEST_CHANGES

# File Severity Issue
1 wall_structural.tscn:3 critical wall_institutional_era1.png texture not committed — sprites rendered from Godot fallback material
2 npc sprites (all 4 dirs) warning North/south NPC sprites near-identical at 64px — verify at 256px intermediate
3 README.md:58, 76 suggestion /sprite-gen skill referenced but not present in branch
4 README.md:65-69 suggestion No guidance on outline + D-033 tint compatibility

Verdict: CHANGES REQUESTED (1 critical, 3 warnings)

## PR Review: visual -> main (visual) ### Hoshe (QA): REQUEST_CHANGES | # | File | Severity | Issue | |---|------|----------|-------| | 1 | README.md:91-95 vs sprites/ | warning | README documents `<model>_<dir>.png` but files are `<model>_<dir>_64.png` — naming mismatch | | 2 | wall_bar_green.tscn:1 | warning | Missing `uid` header — Godot will auto-generate on import, non-reproducible | | 3 | render_export.gd:13 | suggestion | Outline color correct but missing D-043 citation comment | | 4 | README.md:50 | suggestion | Unclear which working directory `--path .` assumes | | 5 | README.md:77 | suggestion | `wall_bar_green` in models table but no output sprites delivered | ### Araminta (Art Direction): REQUEST_CHANGES | # | File | Severity | Issue | |---|------|----------|-------| | 1 | wall_structural.tscn:3 | critical | `wall_institutional_era1.png` texture not committed — sprites rendered from Godot fallback material | | 2 | npc sprites (all 4 dirs) | warning | North/south NPC sprites near-identical at 64px — verify at 256px intermediate | | 3 | README.md:58, 76 | suggestion | `/sprite-gen` skill referenced but not present in branch | | 4 | README.md:65-69 | suggestion | No guidance on outline + D-033 tint compatibility | ### Verdict: CHANGES REQUESTED (1 critical, 3 warnings)
jpmschweitzer added 1 commit 2026-02-23 20:17:51 +01:00
- Fix client sprite naming in README (files are _64.png, not .png)
- Clarify --path working directory (renderer/ from repo root)
- Remove /sprite-gen reference (skill not in branch yet)
- Add D-043 citation on outline color in render_export.gd
- Add uid to wall_bar_green.tscn for reproducible imports
- Note wall_bar_green has no rendered sprites yet
- Note npc_generic capsule symmetry is by design (D-044)
- Add outline + D-033 tint compatibility guidance

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
jpmschweitzer closed this pull request 2026-02-23 20:21:08 +01:00

Pull request closed

This pull request cannot be reopened because the branch was deleted.
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jpmschweitzer/settled-reach#57