feat: add shadow demo with directional light shadow mapping and 3x3 PCF

- Add Mat4::orthographic() to voltex_math for light projection
- Fix pbr_demo and multi_light_demo to provide shadow bind group (group 3)
  required by updated PBR pipeline (dummy shadow with size=0 disables it)
- Create shadow_demo with two-pass rendering: shadow depth pass using
  orthographic light projection, then PBR color pass with shadow sampling
- Scene: ground plane, 3 spheres, 2 cubes with directional light

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-24 21:09:27 +09:00
parent 8f962368e9
commit 5f962f376e
7 changed files with 726 additions and 1 deletions

30
Cargo.lock generated
View File

@@ -989,6 +989,21 @@ dependencies = [
"winit",
]
[[package]]
name = "multi_light_demo"
version = "0.1.0"
dependencies = [
"bytemuck",
"env_logger",
"log",
"pollster",
"voltex_math",
"voltex_platform",
"voltex_renderer",
"wgpu",
"winit",
]
[[package]]
name = "naga"
version = "28.0.0"
@@ -1697,6 +1712,21 @@ dependencies = [
"syn",
]
[[package]]
name = "shadow_demo"
version = "0.1.0"
dependencies = [
"bytemuck",
"env_logger",
"log",
"pollster",
"voltex_math",
"voltex_platform",
"voltex_renderer",
"wgpu",
"winit",
]
[[package]]
name = "shlex"
version = "1.3.0"