summaryrefslogtreecommitdiff
path: root/cnn_v3/shaders/gbuf_deferred.wgsl
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-03-23 00:26:52 +0100
committerskal <pascal.massimino@gmail.com>2026-03-23 00:26:52 +0100
commit1470dd240f48652d1fe97957fe44a49b0e1ee9a6 (patch)
treec202e36a2aaed35fd8bc111457bcba89c7db8658 /cnn_v3/shaders/gbuf_deferred.wgsl
parent12d5d5f1762a0c00405950b6ff5e564880f0ff36 (diff)
wip(cnn_v3): shadow→dif intermediate + scene tweaks + migration plan
- gbuf_shadow.wgsl: normal bias 0.05→0.02 - gbuf_pack.wgsl: compute dif=diffuse*shadow, drop shadow from t1.z, store dif in t1.w (INTERMEDIATE — incorrect packing, see migration plan) - gbuf_deferred.wgsl: read dif from t1.w.x (matches intermediate packing) - gbuf_view.wgsl: expand to 4×6 grid, show dif.r/g/b in row 5 (INTERMEDIATE — to be reverted to 4×5 with ch18=dif) - gbuffer_effect.cc: add small hovering sphere (r=0.6) above scene; swap cube/sphere positions; both spheres pulsate - docs/GBUF_DIF_MIGRATION.md: full migration plan with checklist handoff(Claude): intermediate commit — GBUF_DIF_MIGRATION.md §Current State describes what is wrong and the full implementation checklist (5 steps).
Diffstat (limited to 'cnn_v3/shaders/gbuf_deferred.wgsl')
-rw-r--r--cnn_v3/shaders/gbuf_deferred.wgsl8
1 files changed, 4 insertions, 4 deletions
diff --git a/cnn_v3/shaders/gbuf_deferred.wgsl b/cnn_v3/shaders/gbuf_deferred.wgsl
index 2ed4ce3..bcc42cc 100644
--- a/cnn_v3/shaders/gbuf_deferred.wgsl
+++ b/cnn_v3/shaders/gbuf_deferred.wgsl
@@ -40,9 +40,9 @@ fn fs_main(@builtin(position) pos: vec4f) -> @location(0) vec4f {
let normal = oct_decode(vec2f(bx.y, ny_d.x));
let diffuse = max(0.0, dot(normal, KEY_LIGHT));
- // feat_tex1[2] = pack4x8unorm(mip2.g, mip2.b, shadow, transp)
- let t1 = textureLoad(feat_tex1, coord, 0);
- let shadow = unpack4x8unorm(t1.z).z;
+ // feat_tex1[3] = pack4x8unorm(dif.r, dif.g, dif.b, spare) — dif = diffuse*shadow
+ let t1 = textureLoad(feat_tex1, coord, 0);
+ let dif = unpack4x8unorm(t1.w).x;
- return vec4f(albedo * (AMBIENT + diffuse * shadow), 1.0);
+ return vec4f(albedo * (AMBIENT + dif), 1.0);
}