選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

RainShader.glsl 686B

1234567891011121314151617181920212223
  1. in vec2 v_textureCoordinates;
  2. uniform sampler2D colorTexture;
  3. uniform float speed;
  4. uniform float mixNum;
  5. float hash(float x){
  6. return fract(sin(x*23.3)*13.13);
  7. }
  8. void main(){
  9. float time = czm_frameNumber * speed / 1000.0;
  10. vec2 resolution = czm_viewport.zw;
  11. vec2 uv=(gl_FragCoord.xy*2.-resolution.xy)/min(resolution.x,resolution.y);
  12. vec3 c=vec3(.1,.2,.3);
  13. float a=-.3;
  14. float si=sin(a),co=cos(a);
  15. uv*=mat2(co,-si,si,co);
  16. uv*=length(uv+vec2(0,4.9))*.3+1.;
  17. float v=1.-sin(hash(floor(uv.x*100.))*2.);
  18. float b=clamp(abs(sin(20.*time*v+uv.y*(5./(2.+v))))-.95,0.,1.)*10.;
  19. c*=v*b;
  20. out_FragColor = mix(texture(colorTexture, v_textureCoordinates), vec4(c,1), mixNum);
  21. }