Karena vendor driver GPU biasanya tidak repot-repot mengimplementasikannya noiseX
di GLSL, saya mencari seperangkat fungsi utilitas "pengacakan grafis swiss army knife" , sebaiknya dioptimalkan untuk digunakan dalam GPU shaders. Saya lebih suka GLSL, tetapi kode bahasa apa pun akan membantu saya, saya setuju menerjemahkannya sendiri ke GLSL.
Secara khusus, saya berharap:
a) Fungsi pseudo-acak - N-dimensional, distribusi seragam lebih dari [-1,1] atau lebih [0,1], dihitung dari benih M-dimensional (idealnya adalah nilai apa pun, tapi saya setuju dengan benih yang ditahan) untuk, katakanlah, 0..1 untuk distribusi hasil yang seragam). Sesuatu seperti:
float random (T seed);
vec2 random2 (T seed);
vec3 random3 (T seed);
vec4 random4 (T seed);
// T being either float, vec2, vec3, vec4 - ideally.
b) Derau terus menerus seperti Perlin Noise - lagi, distribusi N-dimensional, + - seragam, dengan himpunan nilai terbatas dan, well, terlihat bagus (beberapa opsi untuk mengonfigurasi tampilan seperti level Perlin bisa berguna juga). Saya berharap tanda tangan seperti:
float noise (T coord, TT seed);
vec2 noise2 (T coord, TT seed);
// ...
Saya tidak terlalu suka teori bilangan acak, jadi saya paling bersemangat mencari solusi yang sudah dibuat , tapi saya juga menghargai jawaban seperti "ini rand 1D yang sangat bagus, efisien (), dan biarkan saya jelaskan Anda bagaimana membuat rand N - dimensi yang baik () di atasnya ... " .
vec2 co
? apakah jangkauannya? benih?