GLSL的随机/噪声功能
由于GPU驱动程序供应商通常不愿意noiseX在GLSL中实现,因此我正在寻找“图形随机化瑞士军刀”实用程序功能集,最好对其进行优化以在GPU着色器中使用。我更喜欢GLSL,但是可以编写任何语言的代码,我可以自己将其翻译为GLSL。 具体来说,我期望: a)伪随机函数 -从M维种子计算出的[-1,1]或[0,1]上的N维均匀分布(理想情况下为任何值,但我可以限制种子设为0..1,以实现均匀的结果分配)。就像是: 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 噪声这样的连续噪声 -同样是N维,分布均匀,具有一组受约束的值,而且看起来不错(一些配置外观(如Perlin级别)的选项也可能有用)。我希望像这样的签名: float noise (T coord, TT seed); vec2 noise2 (T coord, TT seed); // ... 我对随机数生成理论不太了解,因此我非常渴望获得预制的解决方案,但是我也希望得到诸如“这里有一个非常好的,高效的一维rand()”之类的答案,让我解释一下您如何在其上制作一个良好的N维rand()...”。