fleeting-garden/src/utils/graphics/random.wgsl

18 lines
541 B
WebGPU Shading Language

fn random_with_seed(uv: vec2<f32>, seed: f32) -> f32 {
return fract(sin(dot(uv, vec2(12.9898 + seed, 78.233 + seed)))* 43758.5453123 + seed);
}
fn random(uv: vec2<f32>) -> f32 {
return fract(sin(dot(uv, vec2(12.9898, 78.233)))* 43758.5453123);
}
fn hash(state0 : u32) -> f32 {
var state : u32 = state0;
state = state ^ 2747636419u;
state = state * 2654435769u;
state = state ^ (state >> 16u);
state = state * 2654435769u;
state = state ^ (state >> 16u);
state = state * 2654435769u;
return f32(state) / 4294967295.0;
}