Advertisement
Guest User

Untitled

a guest
Jul 11th, 2017
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.41 KB | None | 0 0
  1. /*
  2. Scanlines Sine Absolute Value
  3. An ultra light scanline shader
  4. RiskyJumps
  5. */
  6. #pragma parameter amp "Amplitude" 1.2500 0.000 2.000 0.05
  7. #pragma parameter phase "Phase" 0.5000 0.000 2.000 0.05
  8. #pragma parameter lines_black "Lines Blacks" 0.0000 0.000 1.000 0.05
  9. #pragma parameter lines_white "Lines Whites" 1.0000 0.000 2.000 0.05
  10.  
  11. #define freq 0.500000
  12. #define offset 0.000000
  13. #define pi 3.141592654
  14.  
  15. #ifdef GL_ES
  16. #define COMPAT_PRECISION mediump
  17. #else
  18. #define COMPAT_PRECISION
  19. #endif
  20.  
  21. #ifdef PARAMETER_UNIFORM
  22. uniform COMPAT_PRECISION float amp;
  23. uniform COMPAT_PRECISION float phase;
  24. uniform COMPAT_PRECISION float lines_black;
  25. uniform COMPAT_PRECISION float lines_white;
  26. #else
  27. #define amp 1.250000
  28. #define phase 0.500000
  29. #define lines_black 0.000000
  30. #define lines_white 1.000000
  31. #endif
  32.  
  33.  
  34.  
  35. #if defined(VERTEX)
  36.  
  37. #if __VERSION__ >= 130
  38. #define COMPAT_VARYING out
  39. #define COMPAT_ATTRIBUTE in
  40. #define COMPAT_TEXTURE texture
  41. #else
  42. #define COMPAT_VARYING varying
  43. #define COMPAT_ATTRIBUTE attribute
  44. #define COMPAT_TEXTURE texture2D
  45. #endif
  46.  
  47. COMPAT_ATTRIBUTE vec4 VertexCoord;
  48. COMPAT_ATTRIBUTE vec4 COLOR;
  49. COMPAT_ATTRIBUTE vec4 TexCoord;
  50. COMPAT_VARYING vec4 COL0;
  51. COMPAT_VARYING vec4 TEX0;
  52. COMPAT_VARYING float angle;
  53.  
  54. vec4 _oPosition1;
  55. uniform mat4 MVPMatrix;
  56. uniform int FrameDirection;
  57. uniform int FrameCount;
  58. uniform COMPAT_PRECISION vec2 OutputSize;
  59. uniform COMPAT_PRECISION vec2 TextureSize;
  60. uniform COMPAT_PRECISION vec2 InputSize;
  61.  
  62. void main()
  63. {
  64. gl_Position = MVPMatrix * VertexCoord;
  65. COL0 = COLOR;
  66. TEX0.xy = TexCoord.xy;
  67.  
  68. float omega = 2.0 * pi * freq; // Angular frequency
  69. angle = TEX0.y * omega * TextureSize.y + phase;
  70. }
  71.  
  72. #elif defined(FRAGMENT)
  73.  
  74. #if __VERSION__ >= 130
  75. #define COMPAT_VARYING in
  76. #define COMPAT_TEXTURE texture
  77. out vec4 FragColor;
  78. #else
  79. #define COMPAT_VARYING varying
  80. #define FragColor gl_FragColor
  81. #define COMPAT_TEXTURE texture2D
  82. #endif
  83.  
  84. #ifdef GL_ES
  85. #ifdef GL_FRAGMENT_PRECISION_HIGH
  86. precision highp float;
  87. #else
  88. precision mediump float;
  89. #endif
  90. #define COMPAT_PRECISION mediump
  91. #else
  92. #define COMPAT_PRECISION
  93. #endif
  94.  
  95. uniform int FrameDirection;
  96. uniform int FrameCount;
  97. uniform COMPAT_PRECISION vec2 OutputSize;
  98. uniform COMPAT_PRECISION vec2 TextureSize;
  99. uniform COMPAT_PRECISION vec2 InputSize;
  100. uniform sampler2D Texture;
  101. COMPAT_VARYING vec4 TEX0;
  102. COMPAT_VARYING float angle;
  103.  
  104. // compatibility #defines
  105. #define Source Texture
  106. #define vTexCoord TEX0.xy
  107. #define texture(c, d) COMPAT_TEXTURE(c, d)
  108. #define SourceSize vec4(TextureSize, 1.0 / TextureSize) //either TextureSize or InputSize
  109. #define OutputSize vec4(OutputSize, 1.0 / OutputSize)
  110.  
  111. #ifdef PARAMETER_UNIFORM
  112. // All parameter floats need to have COMPAT_PRECISION in front of them
  113. uniform COMPAT_PRECISION float SCANLINE_BASE_BRIGHTNESS;
  114. uniform COMPAT_PRECISION float SCANLINE_SINE_COMP_A;
  115. uniform COMPAT_PRECISION float SCANLINE_SINE_COMP_B;
  116. #else
  117. #define SCANLINE_BASE_BRIGHTNESS 0.95
  118. #define SCANLINE_SINE_COMP_A 0.0
  119. #define SCANLINE_SINE_COMP_B 0.15
  120. #endif
  121.  
  122. void main()
  123. {
  124. vec3 color = texture(Source, vTexCoord).xyz;
  125. float grid;
  126.  
  127. float lines;
  128.  
  129. lines = sin(angle);
  130. lines *= amp;
  131. lines += offset;
  132. lines = abs(lines);
  133. lines *= lines_white - lines_black;
  134. lines += lines_black;
  135. color *= lines;
  136.  
  137. FragColor = vec4(color.xyz, 1.0);
  138. }
  139. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement