Advertisement
Guest User

LUT.glsl Old Mod (Working)

a guest
Jun 6th, 2017
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.80 KB | None | 0 0
  1. // Compatibility #ifdefs needed for parameters
  2. #ifdef GL_ES
  3. #define COMPAT_PRECISION mediump
  4. #else
  5. #define COMPAT_PRECISION
  6. #endif
  7.  
  8. // Parameter lines go here:
  9. #pragma parameter LUT_Size "LUT Size" 16.0 16.0 64.0 1.0
  10. #ifdef PARAMETER_UNIFORM
  11. // All parameter floats need to have COMPAT_PRECISION in front of them
  12. uniform COMPAT_PRECISION float LUT_Size;
  13. #else
  14. #define LUT_Size 16.0
  15. #endif
  16.  
  17. #if defined(VERTEX)
  18.  
  19. #if __VERSION__ >= 130
  20. #define COMPAT_VARYING out
  21. #define COMPAT_ATTRIBUTE in
  22. #define COMPAT_TEXTURE texture
  23. #else
  24. #define COMPAT_VARYING varying
  25. #define COMPAT_ATTRIBUTE attribute
  26. #define COMPAT_TEXTURE texture2D
  27. #endif
  28.  
  29. #ifdef GL_ES
  30. #define COMPAT_PRECISION mediump
  31. #else
  32. #define COMPAT_PRECISION
  33. #endif
  34.  
  35. COMPAT_ATTRIBUTE vec4 VertexCoord;
  36. COMPAT_ATTRIBUTE vec4 COLOR;
  37. COMPAT_ATTRIBUTE vec4 TexCoord;
  38. COMPAT_VARYING vec4 COL0;
  39. COMPAT_VARYING vec4 TEX0;
  40.  
  41. vec4 _oPosition1;
  42. uniform mat4 MVPMatrix;
  43. uniform COMPAT_PRECISION int FrameDirection;
  44. uniform COMPAT_PRECISION int FrameCount;
  45. uniform COMPAT_PRECISION vec2 OutputSize;
  46. uniform COMPAT_PRECISION vec2 TextureSize;
  47. uniform COMPAT_PRECISION vec2 InputSize;
  48.  
  49. // compatibility #defines
  50. #define vTexCoord TEX0.xy
  51. #define SourceSize vec4(TextureSize, 1.0 / TextureSize) //either TextureSize or InputSize
  52. #define OutSize vec4(OutputSize, 1.0 / OutputSize)
  53.  
  54. void main()
  55. {
  56. gl_Position = MVPMatrix * VertexCoord;
  57. TEX0.xy = TexCoord.xy;
  58. }
  59.  
  60. #elif defined(FRAGMENT)
  61.  
  62. #if __VERSION__ >= 130
  63. #define COMPAT_VARYING in
  64. #define COMPAT_TEXTURE texture
  65. out vec4 FragColor;
  66. #else
  67. #define COMPAT_VARYING varying
  68. #define FragColor gl_FragColor
  69. #define COMPAT_TEXTURE texture2D
  70. #endif
  71.  
  72. #ifdef GL_ES
  73. #ifdef GL_FRAGMENT_PRECISION_HIGH
  74. precision highp float;
  75. #else
  76. precision mediump float;
  77. #endif
  78. #define COMPAT_PRECISION mediump
  79. #else
  80. #define COMPAT_PRECISION
  81. #endif
  82.  
  83. uniform COMPAT_PRECISION int FrameDirection;
  84. uniform COMPAT_PRECISION int FrameCount;
  85. uniform COMPAT_PRECISION vec2 OutputSize;
  86. uniform COMPAT_PRECISION vec2 TextureSize;
  87. uniform COMPAT_PRECISION vec2 InputSize;
  88. uniform sampler2D Texture;
  89. uniform sampler2D SamplerLUT;
  90. COMPAT_VARYING vec4 TEX0;
  91.  
  92. // compatibility #defines
  93. #define Source Texture
  94. #define vTexCoord TEX0.xy
  95. #define texture(c, d) COMPAT_TEXTURE(c, d)
  96. #define SourceSize vec4(TextureSize, 1.0 / TextureSize) //either TextureSize or InputSize
  97. #define OutSize vec4(OutputSize, 1.0 / OutputSize)
  98.  
  99. void main()
  100. {
  101. vec4 imgColor = texture(Source, vTexCoord.xy);
  102. float red = ( imgColor.r * (LUT_Size - 1.0) + 0.5 ) / (LUT_Size * LUT_Size);
  103. float green = ( imgColor.g * (LUT_Size - 1.0) + 0.5 ) / LUT_Size;
  104. float blue = floor( imgColor.b * (LUT_Size - 1.0) + 0.5 ) / LUT_Size;
  105. vec4 color = texture( SamplerLUT, vec2( blue + red, green ));
  106. FragColor = color;
  107. }
  108. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement