From e38be0dbf5816338ff97e2ee2f9adfff2902dc2b Mon Sep 17 00:00:00 2001 From: skal Date: Sat, 14 Feb 2026 15:13:09 +0100 Subject: refactor(wgsl): modularize common shader functions Extracted common WGSL functions into separate files in `common/shaders/` to improve reusability and maintainability. - Created `common/shaders/render/fullscreen_vs.wgsl` for a reusable fullscreen vertex shader. - Created `common/shaders/math/color.wgsl` for color conversion and tone mapping functions. - Created `common/shaders/math/utils.wgsl` for general math utilities. - Created `common/shaders/render/raymarching.wgsl` for SDF raymarching logic. - Updated multiple shaders to use these new common snippets via `#include`. - Fixed the shader asset validation test to correctly handle shaders that include the common vertex shader. This refactoring makes the shader code more modular and easier to manage. --- common/shaders/sdf_primitives.wgsl | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'common/shaders/sdf_primitives.wgsl') diff --git a/common/shaders/sdf_primitives.wgsl b/common/shaders/sdf_primitives.wgsl index 31bbe2d..407fb29 100644 --- a/common/shaders/sdf_primitives.wgsl +++ b/common/shaders/sdf_primitives.wgsl @@ -12,3 +12,8 @@ fn sdTorus(p: vec3, t: vec2) -> f32 { fn sdPlane(p: vec3, n: vec3, h: f32) -> f32 { return dot(p, n) + h; } + +fn sdBox2D(p: vec2, b: vec2) -> f32 { + let d = abs(p) - b; + return length(max(d, vec2(0.0))) + min(max(d.x, d.y), 0.0); +} -- cgit v1.2.3