d631ff784a
- Restructured kit_demo.tscn from linear demo to enclosed 5.12x5.12 room with walls, floor tiles, pillar, beam, doorway, window - Added WorldEnvironment with ProceduralSky for ambient lighting - Added DirectionalLight3D (sun key light, 45° angle, shadows enabled) - Added OmniLight3D (warm interior fill light) - Added ReflectionProbe for interior specular reflections (box projection, room-sized extents) - Added LightmapGI with balanced quality settings (bounces=3, texel_scale=1.0, max_texture_size=2048, denoiser=true) - Added tool script (kit_demo.gd) that prints bake status in editor - Added bake_lighting.gd CLI bake script (requires GPU-enabled instance) - Updated project.godot with reflection atlas and shadow map quality settings Headless baking note: Godot's standard editor build requires a GPU/display for LightmapGI.bake(). Open the scene in the Godot editor and click 'Bake Lightmap' on the LightmapGI node to generate the baked lightmap data.
57 lines
2.0 KiB
Markdown
57 lines
2.0 KiB
Markdown
# Phase 3 — Visuals & Performance Architecture
|
||
|
||
## Scope
|
||
Art pass, baked lighting, performance profiling, LOD + occlusion culling for the competitive tactical shooter.
|
||
|
|
||
|## Dependency Chain (Kanban)
|
||
|
|
||
|```
|
||
|t_p3_artkit (modular wall/floor kit + PBR materials 1K + art style guide) ✅ DONE
|
||
| └── t_p3_lighting (LightmapGI baked lighting + reflection probes)
|
||
| └── t_p3_profile (perf budget + LOD + occlusion culling)
|
||
|```
|
||
|
|
||
|## Deliverables
|
||
|
|
||
|- **Art style guide**: [docs/art-style-guide.md](docs/art-style-guide.md) — visual direction, modular grid specs, material palette, mapping guidelines
|
||
|- **Modular kit scenes**: `client/assets/scenes/modular/` — 11 CSG-based wall/floor/structural pieces + kit_demo showcase scene
|
||
|- **PBR materials**: `client/assets/materials/` — 7 StandardMaterial3D .tres files
|
||
|- **1K textures**: `client/assets/textures/` — 28 procedural PBR maps (basecolor, normal, roughness, metallic × 7 materials)
|
||
|- **Project config**: `client/project.godot` — Godot 4 Forward+ renderer, 128-tick physics, LightmapGI defaults
|
||
|
||
## Art Style
|
||
|
||
- **Valorant-direction**, not AAA photorealistic
|
||
- Clean silhouettes, team-colored zones (CT/blue, T/red-orange)
|
||
- 1K PBR textures (base color, normal, roughness, metallic)
|
||
- CC0-licensed or custom-created assets
|
||
|
||
## Lighting Strategy
|
||
|
||
- LightmapGI for all static geometry
|
||
- Reflection probes at corridor junctions and open areas
|
||
- No SDFGI or real-time GI
|
||
- Lightmap texel density: 4-8 per unit walls/floors, 8-16 for focal surfaces
|
||
|
||
## Performance Budget
|
||
|
||
| Metric | Target |
|
||
|--------|--------|
|
||
| Frame time | 16ms (60fps) |
|
||
| GPU budget | 8ms |
|
||
| CPU budget | 6ms |
|
||
| Draw calls | 1500-2000 per frame |
|
||
| VRAM | 2GB texture pool |
|
||
| LOD0 tris/wall | 500-2000 |
|
||
|
||
## LOD Strategy
|
||
|
||
- 3 LOD levels per modular asset
|
||
- LOD1 at 15m (50% tris), LOD2 at 40m (25% tris), LOD3 at 80m
|
||
- Occlusion culling via OccluderInstance3D auto-generation
|
||
|
||
## Reference Hardware
|
||
|
||
- GTX 1050 / RX 560 class GPU (or integrated graphics)
|
||
- Godot Forward+ renderer
|