ODOShader

ODOS丨吵吵儿 MAKE SOME NOISES🔇 - 3

by ERIN.Z, 2022-02-01


噪声生成算法中的哈希过程

利用sin()和fract():结构是hash 读读这个 例: 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); }

by ERIN.Z

2025 © typecho & elise