Shadertoy效果(十二)voronoi噪音

有点玄乎,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 );
}

https://www.shadertoy.com/view/Xd23Dh

发布了194 篇原创文章 · 获赞 8 · 访问量 9881

猜你喜欢

转载自blog.csdn.net/qq_43439240/article/details/103697314