2 interacting layers!!

This commit is contained in:
numzero 2025-01-11 16:16:47 +03:00
parent 79b63154d7
commit 6bc2c1f452

View File

@ -34,10 +34,23 @@ fn on_fragment(in: Varying) -> @location(0) vec4u {
} }
} }
n -= state; 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) { switch (n) {
case 3u: { return 1u; } case 3u: { return 1u; }
case 4u: { return state; } case 4u: { return state; }