From 0767eec826746c196f7fd161ff3981946ee444fc Mon Sep 17 00:00:00 2001 From: numzero Date: Mon, 30 Dec 2024 04:07:44 +0300 Subject: [PATCH] Simplify varyings --- src/bin/minitracer/trace.wgsl | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/bin/minitracer/trace.wgsl b/src/bin/minitracer/trace.wgsl index 33571cc..5b24b85 100644 --- a/src/bin/minitracer/trace.wgsl +++ b/src/bin/minitracer/trace.wgsl @@ -20,8 +20,7 @@ struct Vertex { } struct Varying { - @location(0) eye: vec3f, - @location(1) world: vec3f, + @location(0) dir: vec3f, @builtin(position) screen: vec4f, } @@ -32,7 +31,7 @@ var params: Params; @vertex fn on_vertex(in: Vertex) -> Varying { - return Varying(params.eye, params.eye + params.view * vec3(1.0, in.screen), vec4(in.screen, 0.0, 1.0)); + return Varying(params.view * vec3(1.0, in.screen), vec4(in.screen, 0.0, 1.0)); } @fragment @@ -68,10 +67,10 @@ fn trace_fragment(in: Varying) -> vec4f { var result = vec4(0.0, 0.0, 0.0, 0.0); var color = vec3(1.0, 1.0, 1.0); - pos = in.eye; + pos = params.eye; let off_px = vec2(rand_float(), rand_float()) - .5; - let off_w = mat2x3(dpdx(in.world), dpdy(in.world)); - ray = normalize(in.world + off_w * off_px - in.eye); + let off_w = mat2x3(dpdx(in.dir), dpdy(in.dir)); + ray = normalize(in.dir + off_w * off_px); for (var k = 0; k < params.max_reflections; k++) { var sphere = -1;