Vì các nhà cung cấp trình điều khiển GPU thường không bận tâm triển khai noiseX
trong GLSL, tôi đang tìm một bộ chức năng tiện ích "con dao quân đội ngẫu nhiên đồ họa" , tốt nhất là được tối ưu hóa để sử dụng trong các trình tạo bóng GPU. Tôi thích GLSL, nhưng mã bất kỳ ngôn ngữ nào sẽ làm cho tôi, tôi ổn với việc tự dịch nó sang GLSL.
Cụ thể, tôi mong đợi:
a) Các hàm giả ngẫu nhiên - Phân phối N chiều, phân bố đồng đều trên [-1,1] hoặc hơn [0,1], được tính từ hạt M chiều (lý tưởng là bất kỳ giá trị nào, nhưng tôi ổn với hạt giống bị hạn chế to, giả sử, 0..1 để phân phối kết quả thống nhất). Cái gì đó như:
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) Tiếng ồn liên tục như Tiếng ồn Perlin - một lần nữa, N-chiều, + - phân phối đồng đều, với tập hợp các giá trị bị ràng buộc và, nhìn tốt (một số tùy chọn để định cấu hình bề ngoài như mức Perlin cũng có thể hữu ích). Tôi mong đợi chữ ký như:
float noise (T coord, TT seed);
vec2 noise2 (T coord, TT seed);
// ...
Tôi không quan tâm nhiều đến lý thuyết tạo số ngẫu nhiên, vì vậy tôi rất háo hức tìm kiếm một giải pháp được tạo sẵn , nhưng tôi cũng đánh giá cao các câu trả lời như "đây là một rand 1D rất tốt, hiệu quả và để tôi giải thích bạn làm thế nào để tạo một rand N-chiều tốt () trên đầu trang của nó ... " .
vec2 co
? nó là phạm vi? hạt giống?