有点玄乎,voronoi噪音压根没看到实现品质。
另外main函数种的两个col*才是抗锯齿,但我没看懂...
float hash1( float n ) { return fract(sin(n)*43758.5453); }
vec2 hash2( vec2 p ) { p = vec2( dot(p,vec2(127.1,311.7)), dot(p,vec2(269.5,183.3)) ); return fract(sin(p)*43758.5453); }
// The parameter w controls the smoothness
vec4 voronoi( in vec2 x, float w )
{
vec2 n = floor( x );
vec2 f = fract( x );
vec4 m = vec4( 1.0, 0.0, 0.0, 0.0 );
// distance to cell
float d = length( + f - vec2(.5));
float h = smoothstep( 0.0, 1.0, 0.5 + 0.5*(m.x-d)/w );
m.x = mix( m.x, d, h );// - h*(1.0-h)*w/(1.0+3.0*w); // distance
return m;
}
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
vec2 p = fragCoord.xy/iResolution.yy;
float k = 2.0 + 70.0 * pow( 0.5 + 0.5*sin(0.25*6.2831*iTime), 4.0 );
k = .5;// - 0.5*cos(0.25*6.2831*iTime);
vec4 c = voronoi( 1.*p, k );
vec3 col = c.xyz;
col *= 1.0 - 0.8*c.x*step(p.y,0.33);
col *= mix(c.x,1.0,step(p.y,0.66));
fragColor = vec4( col, 1.0 );
}
https://www.shadertoy.com/view/ldB3zc
又换了了换,随机噪音?感觉没实现什么算法?
vec3 hash3( vec2 p )
{
vec3 q = vec3( dot(p,vec2(127.1,311.7)),
dot(p,vec2(269.5,183.3)),
dot(p,vec2(419.2,371.9)) );
return fract(cos(q)*4375.*sin(q*2.3)*8.5453);
}
float iqnoise( in vec2 x, float u, float v )
{
vec2 p = floor(x);
vec2 f = fract(x);
vec3 o = hash3( floor(iTime/1.)*p )*vec3(u,u,1.0);
return o.z;
}
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
vec2 uv = fragCoord.xy / iResolution.xx;
vec2 p = vec2(0.5); - 0.5*cos( iTime*vec2(1.0,0.5) );
float f = iqnoise( 24.*uv, .1, .0 );
fragColor = vec4( f, f, f, 1.0 );
}