噪声生成算法中的哈希过程
利用sin()和fract():结构是
读读这个
例:
vec2 hash22(vec2 p){
p = vec2( dot(p,vec2(127.1,311.7)),
dot(p,vec2(269.5,183.3)));
return -1.0 + 2.0 fract(sin(p)43758.5453123);
}
&例:
vec2 Hash(vec2 P)
{
return fract(cos(Pmat2(-64.2,71.3,81.4,-29.8))8321.3);
}
或者不用sin(),一个返回随机数的函数+一个打乱顺序的函数(防止反对角线产生条纹)
例:
int PERM(int i){
return perm[i&255];//perm[]是0-255随机排列的数组
}
int INDEX(int ix, int iy, int iz){
return PERM(ix+PERM(iy+PERM(iz)));
}
或者:
vec4 mod289(vec4 x) {
return x - floor(x (1.0 / 289.0)) 289.0;
}
vec4 permute(vec4 x) {
return mod289(((x34.0)+1.0)x);
}