From 6bc2c1f452c83128be181354652c631a8fc615ba Mon Sep 17 00:00:00 2001 From: numzero Date: Sat, 11 Jan 2025 16:16:47 +0300 Subject: [PATCH] 2 interacting layers!! --- src/step.wgsl | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/step.wgsl b/src/step.wgsl index 515aa78..f4ba49a 100644 --- a/src/step.wgsl +++ b/src/step.wgsl @@ -34,10 +34,23 @@ fn on_fragment(in: Varying) -> @location(0) vec4u { } } n -= state; - return vec4(rule(state.x, n.x), rule(state.y, n.y), rule(state.z, n.z), rule(state.w, n.w)); + + let z = daynight(state.z, n.z); + let px = life(state.x, n.x); + let nx = 1u - life(1u - state.x, 8u - n.x); + let x = z * px + (1u - z) * nx; + return vec4(x, 0, z, 0u); } -fn rule(state: u32, n: u32) -> u32{ +fn life(state: u32, n: u32) -> u32{ + switch (n) { + case 2u: { return state; } + case 3u: { return 1u; } + default: { return 0u; } + } +} + +fn daynight(state: u32, n: u32) -> u32{ switch (n) { case 3u: { return 1u; } case 4u: { return state; }