summaryrefslogtreecommitdiff
path: root/cnn_v3/shaders
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-03-22 20:16:47 +0100
committerskal <pascal.massimino@gmail.com>2026-03-22 20:16:47 +0100
commitcb2dc03ec0dbd7655325a56ad8b91fb5ad8bfb29 (patch)
tree77abcdbc4b9b495907f0c7cbb2e12a56d6ff09ab /cnn_v3/shaders
parentaa5c8e6730b03ea901ead59bc7cb1c31dac62012 (diff)
fix(cnn_v3): use model matrix for normal transform in gbuf_raster
inv_model applies the inverse rotation → normals pointing inward. model matrix is correct for uniform-scale objects (matches rotating_cube.wgsl).
Diffstat (limited to 'cnn_v3/shaders')
-rw-r--r--cnn_v3/shaders/gbuf_raster.wgsl4
1 files changed, 2 insertions, 2 deletions
diff --git a/cnn_v3/shaders/gbuf_raster.wgsl b/cnn_v3/shaders/gbuf_raster.wgsl
index a5eb921..003f501 100644
--- a/cnn_v3/shaders/gbuf_raster.wgsl
+++ b/cnn_v3/shaders/gbuf_raster.wgsl
@@ -60,8 +60,8 @@ fn vs_main(
let world_pos = obj.model * vec4f(p, 1.0);
let clip_pos = globals.view_proj * world_pos;
- // Transform normal by inverse-transpose (upper-left 3×3 of inv_model^T)
- let world_normal = normalize((obj.inv_model * vec4f(n, 0.0)).xyz);
+ // Transform normal: use model matrix (correct for uniform scale + rotation).
+ let world_normal = normalize((obj.model * vec4f(n, 0.0)).xyz);
var out: VertexOutput;
out.position = clip_pos;