diff options
| author | skal <pascal.massimino@gmail.com> | 2026-03-22 23:51:40 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-03-22 23:51:40 +0100 |
| commit | 12d5d5f1762a0c00405950b6ff5e564880f0ff36 (patch) | |
| tree | b6e03dbecd424f8a4c02c815b4fec9a160529d8e /src/app/main.cc | |
| parent | 8fd3eda0ed069b1a817261f8f4d6a35c565b3fe4 (diff) | |
refactor(cnn_v3): simplify sphere SDF in shadow pass, remove per-frame alloc
gbuf_shadow.wgsl — dfWithID():
- Sphere: replace inv_model local-space transform with direct world-space
formula (length(p - center) - radius). Exact, no matrix multiply, no
floating-point error from matrix inversion that can corrupt soft-shadow
penumbra over 64 march steps.
- lp/scale now computed only inside the cases that need them (box/torus/plane)
instead of eagerly for every object.
gbuffer_effect.cc — upload_scene_data():
- Replace per-frame std::vector<GBufObjectData> heap allocation with a
file-static staging buffer s_obj_staging[256]: zero alloc per frame.
handoff(Gemini): sphere SDF now exact; shadow march should be cleaner.
Diffstat (limited to 'src/app/main.cc')
0 files changed, 0 insertions, 0 deletions
