flowchart LR
boxes["13 boxes
one cube, instanced"] --> shadow["1. shadow pass
depth only from the sun
1024² D32, depth bias"]
boxes --> scene["2. scene pass
Lambert + ambient
PCF shadow lookup
FP16 target, D32 depth"]
shadow -->|"R32 SRV"| scene
shadow -->|"R32 SRV"| march["3. compute pass
48 dithered samples per ray
shadow test at each
Schlick phase"]
scene -->|"depth as R32 SRV"| march
scene -->|"FP16 SRV"| post["4. fullscreen pass
scene + shafts
c / (1 + c), gamma 1/2.2"]
march -->|"FP16 UAV → SRV"| post
post --> out["640×360 RGBA8"]