GPU sürücü satıcıları genellikle noiseX
GLSL'de uygulama zahmetine girmediği için , tercihen GPU gölgelendiricileri içinde kullanılmak üzere optimize edilmiş bir "grafik rasgeleleştirme swiss army bıçağı" yardımcı işlev seti arıyorum . GLSL'yi tercih ederim, ancak herhangi bir dilin benim için yapacağını kodlayın, kendi başıma GLSL'ye çevirmek için sorun yok.
Özellikle, beklediğiniz:
a) Yalancı rasgele fonksiyonlar - M-boyutlu tohumdan hesaplanan (ideal olarak herhangi bir değer olmakla birlikte, [1,1] veya [0,1] üzerinde N-boyutlu, muntazam dağılım, ancak tohumun kısıtlanması ile sorun değil mesela, muntazam sonuç dağılımı için 0..1). Gibi bir şey:
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) Perlin Gürültüsü gibi sürekli gürültü - yine, N-boyutlu, + - tekdüze dağılım, kısıtlı değerler seti ve iyi görünümlü (Perlin seviyeleri gibi görünümü yapılandırmak için bazı seçenekler de yararlı olabilir). Şunlar gibi imzalar beklerdim:
float noise (T coord, TT seed);
vec2 noise2 (T coord, TT seed);
// ...
Rastgele sayı üretme teorisine çok fazla girmiyorum, bu yüzden önceden hazırlanmış bir çözüm için hevesle giderdim , ancak "burada çok iyi, verimli bir 1D rand () gibi cevapları takdir ediyorum ve açıklamama izin verin üstüne iyi bir N-boyutlu rand () nasıl yapılır ... " .
vec2 co
? aralık mı? tohum?