simplify more

This commit is contained in:
Andras Schmelczer 2026-05-20 21:37:30 +01:00
parent f03da42b5e
commit 2fe3c69963
40 changed files with 689 additions and 872 deletions

View file

@ -1,12 +1,12 @@
struct Settings {
inverseDiffusionRateTrails: f32,
decayRateTrails: f32,
inverseDiffusionRateBrush: f32,
decayRateBrush: f32,
diffusionNeighborScale: f32,
brushDecayAlphaMultiplier: f32,
brushDecayAlphaSubtract: f32,
padding0: f32,
padding1: f32,
padding2: f32,
};
const WORKGROUP_SIZE_X = 16u;
@ -74,25 +74,16 @@ fn main(
r16,
settings.inverseDiffusionRateTrails
);
let brushWeight = diffusion_weight(
random,
r2,
r4,
r8,
r16,
settings.inverseDiffusionRateBrush
);
current += (
propagate(centerTileIndex, -1, -1, current, trailWeight, brushWeight)
+ propagate(centerTileIndex, -1, 1, current, trailWeight, brushWeight)
+ propagate(centerTileIndex, 1, -1, current, trailWeight, brushWeight)
+ propagate(centerTileIndex, 1, 1, current, trailWeight, brushWeight)
propagate(centerTileIndex, -1, -1, current, trailWeight)
+ propagate(centerTileIndex, -1, 1, current, trailWeight)
+ propagate(centerTileIndex, 1, -1, current, trailWeight)
+ propagate(centerTileIndex, 1, 1, current, trailWeight)
+ propagate(centerTileIndex, -1, 0, current, trailWeight, brushWeight)
+ propagate(centerTileIndex, 0, -1, current, trailWeight, brushWeight)
+ propagate(centerTileIndex, 1, 0, current, trailWeight, brushWeight)
+ propagate(centerTileIndex, 0, 1, current, trailWeight, brushWeight)
+ propagate(centerTileIndex, -1, 0, current, trailWeight)
+ propagate(centerTileIndex, 0, -1, current, trailWeight)
+ propagate(centerTileIndex, 1, 0, current, trailWeight)
+ propagate(centerTileIndex, 0, 1, current, trailWeight)
) * settings.diffusionNeighborScale;
let decayed = clamp(vec4(
@ -108,8 +99,7 @@ fn propagate(
offsetX: i32,
offsetY: i32,
currentColor: vec4<f32>,
trailWeight: f32,
brushWeight: f32
trailWeight: f32
) -> vec4<f32> {
let neighbourIndex = i32(centerTileIndex) + offsetY * i32(TILE_SIZE_X) + offsetX;
let neighbourTileIndex = u32(neighbourIndex);
@ -118,7 +108,7 @@ fn propagate(
return vec4(
vec3(tileTrailStrength[neighbourTileIndex] * trailWeight),
neighbour.a * brushWeight
neighbour.a * trailWeight
) * difference;
}