perlin
This commit is contained in:
parent
42d87fc2a3
commit
e3d0af56e2
2 changed files with 23 additions and 4 deletions
|
|
@ -12,11 +12,13 @@ struct Settings {
|
|||
@group(0) @binding(0) var<uniform> settings: Settings;
|
||||
@group(0) @binding(1) var Sampler: sampler;
|
||||
@group(0) @binding(2) var trailMap: texture_2d<f32>;
|
||||
@group(0) @binding(3) var noise: texture_2d<f32>;
|
||||
|
||||
@fragment
|
||||
fn fragment(@location(0) uv: vec2<f32>) -> @location(0) vec4<f32> {
|
||||
var current = textureSample(trailMap, Sampler, uv);
|
||||
|
||||
let noise = textureSample(noise, Sampler, uv);
|
||||
|
||||
let neighbours: vec4<f32> = (
|
||||
textureSample(trailMap, Sampler, uv + vec2<f32>(0, 1) / settings.size)
|
||||
+ textureSample(trailMap, Sampler, uv + vec2<f32>(0, -1) / settings.size)
|
||||
|
|
@ -27,14 +29,15 @@ fn fragment(@location(0) uv: vec2<f32>) -> @location(0) vec4<f32> {
|
|||
let mixedTrails = mix(
|
||||
current.rgb,
|
||||
neighbours.rgb,
|
||||
settings.diffusionRateTrails
|
||||
settings.diffusionRateTrails + (noise.rgb - vec3(0.5)) * 0.1
|
||||
) * (1.0 - settings.decayRateTrails);
|
||||
|
||||
let mixedBrush = mix(
|
||||
current.a,
|
||||
neighbours.a,
|
||||
settings.diffusionRateBrush
|
||||
) * (1.0 - settings.decayRateBrush);
|
||||
settings.diffusionRateBrush + (noise.a - 0.5) * 0.5
|
||||
) * (1.0 - settings.decayRateBrush - (noise.a - 0.5) * 0.1);
|
||||
|
||||
|
||||
return clamp(vec4(mixedTrails, mixedBrush), vec4(0), vec4(1));
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue