Guest User

Untitled

a guest
Oct 18th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. #version 150
  2.  
  3. // CONSTANTS
  4. #define DEBUG_MODE
  5.  
  6. // UNIFORMS
  7. uniform sampler2D tex0; // explosion
  8. uniform sampler2D tex1; // fire texture
  9. uniform sampler2D tex2; // fire texture
  10. uniform float time;
  11. uniform float halfCycle;
  12. uniform float mouseX;
  13.  
  14. //Flow map offsets used to scroll the wave maps
  15. uniform float flowMapOffset0;
  16. uniform float flowMapOffset1;
  17.  
  18. // VARIYNG FROM VERTEX SHADER
  19. in vec2 vTexCoord; // uv coords
  20.  
  21. // FRAGMENT SHADER OUTPUT
  22. out vec4 outputColor;
  23.  
  24. vec2 unpackFlowVector(vec2 flowVecData)
  25. {
  26. vec2 flowVector = flowVecData * 2.0 - 1.0;
  27. return flowVector;
  28. }
  29.  
  30. void main()
  31. {
  32. vec4 color = vec4( 1.0, 0.0, 0.0, 1.0 );
  33.  
  34. vec4 flowMapTexel = texture(tex0, vTexCoord);
  35. vec2 flowDir = unpackFlowVector(flowMapTexel.xy);
  36.  
  37. vec4 texelA = texture(tex1, vTexCoord + flowDir * flowMapOffset0); // texture2D is deprecated since version 1.30
  38. vec4 texelB = texture(tex2, vTexCoord + flowDir * flowMapOffset1);
  39.  
  40. float mixFactor = (abs(halfCycle - flowMapOffset0) / halfCycle);
  41. color = mix(texelA, texelB, mixFactor);
  42.  
  43. #ifdef DEBUG_MODE
  44. outputColor = mix(color, flowMapTexel, 0.3);
  45. #else
  46. outputColor = color;
  47. #endif
  48. }
Add Comment
Please, Sign In to add comment