Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #version 330
- // Input vertex attributes (from vertex shader)
- in vec3 fragPosition;
- in vec2 fragTexCoord;
- in vec4 fragColor;
- in vec3 fragNormal;
- // Input uniform values
- uniform sampler2D texture0; // Screen texture
- uniform sampler2D texture1; // Palette
- uniform vec4 colDiffuse;
- out vec4 finalColor;
- const int bayer16[16] = int[16](0, 8, 2, 10,
- 12, 4, 14, 6,
- 3, 11, 1, 9,
- 15, 7, 13, 5);
- void main() {
- vec4 texelColor = texture(texture0, fragTexCoord);
- float grey = 0.21 * texelColor.r + 0.71 * texelColor.g + 0.07 * texelColor.b;
- int col = int(mod(gl_FragCoord.x, 4));
- int row = int(mod(gl_FragCoord.y, 4));
- float threshold = float(bayer16[col + 4 * row]) / 16.0 - 0.5;
- grey = clamp(grey + threshold * 0.1 , 0.01, 0.99); // Apply bayer pattern to the color
- vec2 paluv = vec2(grey, 0.5);
- vec4 paletteValue = texture(texture1, paluv);
- finalColor.a = 1.0;
- finalColor.rgb = paletteValue.rgb;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement