Guest User

Untitled

a guest
May 4th, 2025
24
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. varying vec2 v_vTexcoord;
  2.  
  3. // Do not edit these uniforms
  4. uniform float time;
  5. uniform sampler2D paletteTexture;
  6. uniform vec2 paletteTexel;
  7.  
  8. uniform vec2 textureTexel;
  9. uniform vec4 uv;
  10.  
  11. // Editable uniforms
  12. uniform float index;
  13. uniform float colors;
  14. uniform float cycle;
  15.  
  16. uniform vec2 scroll;
  17. uniform vec2 scale;
  18.  
  19. uniform vec3 oscillateX;
  20. uniform vec3 oscillateY;
  21. uniform vec3 oscillateSplit;
  22.  
  23. const float TWOPI = 6.28318530718;
  24.  
  25. void main()
  26. {
  27. vec2 pos = v_vTexcoord;
  28.  
  29. // Oscillate
  30. float moment = pos.y / textureTexel.y;
  31.  
  32. // Horizontal
  33. pos.x += (oscillateX.x * textureTexel.x) * sin(TWOPI * (moment / oscillateX.y + time * oscillateX.z));
  34.  
  35. // Split
  36. pos.x += (2. * floor(mod(moment, 2.0)) - 1.) * (oscillateSplit.x * textureTexel.x) * sin(TWOPI * (moment / oscillateSplit.y + time * oscillateSplit.z));
  37.  
  38. // Vertical
  39. pos.y += (oscillateY.x * textureTexel.y) * sin(TWOPI * (moment / oscillateY.y + time * oscillateY.z));
  40.  
  41. // Scroll
  42. pos *= scale;
  43. pos += scroll * textureTexel;
  44.  
  45. // Wrap
  46. pos = vec2(mod(pos.x - uv.x, uv.z - uv.x) + uv.x, mod(pos.y - uv.y, uv.w - uv.y) + uv.y);
  47.  
  48. // Palette
  49. vec4 color = texture2D(gm_BaseTexture, pos);
  50. float red = color.r * colors;
  51. red = mod(red + cycle, colors);
  52. vec2 palettePos = vec2((index + 0.5) * paletteTexel.x, (red + 0.5) * paletteTexel.y);
  53.  
  54. // Render
  55. gl_FragColor = vec4(texture2D(paletteTexture, palettePos).rgb, color.a);
  56. }
Advertisement
Add Comment
Please, Sign In to add comment