@absulit/points
Version:
A Generative Art library made in WebGPU
31 lines (25 loc) • 742 B
JavaScript
/* @ts-self-types="./random.d.ts" */
const random=`
var<private> a:i32 = 1664525;
var<private> c:i32 = 1013904223;
var<private> m = pow(2, 32);
var<private> seed:i32 = 958736;
fn nextRand() -> i32 {
seed = (a * seed + c) % i32(m);
return seed;
}
fn random() -> f32 {
return f32(nextRand()) / f32(m) / .5;
}
`;const rand=`
var<private> rand_seed : vec2f;
fn rand() -> f32 {
rand_seed.x = fract(cos(dot(rand_seed, vec2f(23.14077926, 232.61690225))) * 136.8168);
rand_seed.y = fract(cos(dot(rand_seed, vec2f(54.47856553, 345.84153136))) * 534.7645);
return rand_seed.y;
}
`;const rand2=`
fn rand2(co: vec2f) -> f32 {
return fract(sin(dot(co, vec2(12.9898, 78.233))) * 43758.5453);
}
`;export{rand,rand2,random};