simplify more
This commit is contained in:
parent
f03da42b5e
commit
2fe3c69963
40 changed files with 689 additions and 872 deletions
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue