Advertisement
Noneatme

Untitled

Aug 14th, 2013
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.25 KB | None | 0 0
  1. ////////////////////////////////////////////////////////
  2. // PostEffect Insanity - Fragment Shader
  3. //
  4. // Effect when player goes insane
  5. ////////////////////////////////////////////////////////
  6.  
  7. #version 120
  8. #extension GL_ARB_texture_rectangle : enable
  9.  
  10. uniform sampler2DRect diffuseMap;
  11. @define sampler_diffuseMap 0
  12.  
  13. uniform sampler2D ampMap0;
  14. @define sampler_ampMap0 1
  15.  
  16. uniform sampler2D ampMap1;
  17. @define sampler_ampMap1 2
  18.  
  19. uniform sampler2D zoomMap;
  20. @define sampler_zoomMap 3
  21.  
  22.  
  23. uniform float afAlpha;
  24. uniform float afT;
  25. uniform vec2 avScreenSize;
  26. uniform float afAmpT;
  27. uniform float afWaveAlpha;
  28. uniform float afZoomAlpha;
  29.  
  30. void main()
  31. {
  32.     vec2 vTexUV = gl_TexCoord[0].xy/avScreenSize;
  33.     vec3 vAmp = texture2D(ampMap0, vTexUV).xyz*(1.0-afAmpT) + texture2D(ampMap1, vTexUV).xyz*afAmpT;
  34.     vAmp *= afWaveAlpha * 0.04 * avScreenSize.y;
  35.    
  36.     vec3 vZoom = texture2D(zoomMap, vTexUV).xyz;
  37.    
  38.    
  39.     vec2 vUV = gl_FragCoord.xy;
  40.    
  41.     vUV += (vZoom.xy-vec2(0.5))*2.0* 0.6 * vZoom.z * avScreenSize.y * afZoomAlpha;
  42.    
  43.     vec2 vSinUv = (vUV / avScreenSize.y) * 0.6;
  44.     vUV.x += sin(afT + vSinUv.y) * vAmp.x;
  45.     vUV.y += sin(afT + vSinUv.x*1.83) * vAmp.y;
  46.    
  47.     vec3 vDiffuseColor = texture2DRect(diffuseMap, vUV).xyz;
  48.    
  49.    
  50.     gl_FragColor.xyz = vDiffuseColor;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement