値ノイズ
https://gyazo.com/c3d1739812893cd474ceb5e91259d2af
code:glsl
// 一部省略して値ノイズの部分のみ抜粋
float noise( in vec2 p )
{
ivec2 i = ivec2(floor( p )); // 格子点の座標
vec2 f = fract( p ); // 格子点間のどの位置にいる?
// quintic interpolant
vec2 u = f*f*f*(f*(f*6.0-15.0)+10.0);
return mix( mix( hash( i + ivec2(0,0) ),
hash( i + ivec2(1,0) ), u.x),
mix( hash( i + ivec2(0,1) ),
hash( i + ivec2(1,1) ), u.x), u.y);
}
若干計算コストは高くなるが、勾配ノイズは値ノイズより、ムラの少ない高品質なノイズ。