glsl opengl es shader 闪电特效,闪电2,实际上动态图和之前差不多,只是闪电靠的更近

glsl opengl es shader 闪电特效,一道粗的闪电


转载自  http://glslsandbox.com/




// Lightning
// By: Brandon Fogerty
// bfogerty at gmail dot com 
// xdpixel.com




// MORE MODS BY 27




#ifdef GL_ES
precision lowp float;
#endif


uniform float time;
uniform vec2 resolution;




float Hash( vec2 p)
{
    vec3 p2 = vec3(p.xy,1.0);
    return fract(sin(dot(p2,vec3(37.1,61.7, 12.4)))*758.5453123);
}


float noise(in vec2 p)
{
    vec2 i = floor(p);
    vec2 f = fract(p);
    f *= f * (3.0-2.0*f);


    return mix(mix(Hash(i + vec2(0.,0.)), Hash(i + vec2(1.,0.)),f.x),
               mix(Hash(i + vec2(0.,1.)), Hash(i + vec2(1.,1.)),f.x),
               f.y);
}


float fbm(vec2 p)
{
     float v = 0.0;
     v += noise(p*1.)*.100;
     v += noise(p*2.)*.25;
     v += noise(p*4.)*.125;
     v += noise(p*8.)*.0625;
     return v;
}


void main( void ) 
{


vec2 uv = ( gl_FragCoord.xy / resolution.xy ) * 2.0 - 1.0;
uv.x *= resolution.x/resolution.y;


vec3 finalColor = vec3( 0.0 );
for( int i=1; i < 8; ++i )
{
float t = abs(1.0 / ((uv.x + fbm( uv + time/float(i)))*75.));
finalColor +=  t * vec3( float(i) * 0.1 +0.1, 0.5, 2.0 );
}

gl_FragColor = vec4( finalColor, 1.0 );
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值