feat: implement better Colour Emulation

This commit is contained in:
2022-09-22 16:07:58 -03:00
parent f44a1a49fd
commit 325208d460
3 changed files with 32 additions and 19 deletions

View File

@@ -1,13 +1,25 @@
#version 330 core
out vec4 FragColor;
out vec4 frag_color;
in vec3 ourColor;
in vec2 TexCoord;
in vec3 color;
in vec2 uv;
// texture sampler
uniform sampler2D texture1;
uniform sampler2D screen;
void main() {
FragColor = texture(texture1, TexCoord);
// https://near.sh/video/color-emulation
// Thanks to Talarubi + Near for the Colour Correction
// Thanks to fleur + mattrb for the Shader Impl
vec4 color = texture(screen, uv);
color.rgb = pow(color.rgb, vec3(4.0)); // LCD Gamma
frag_color = vec4(
pow(vec3(
0 * color.b + 50 * color.g + 255 * color.r,
30 * color.b + 230 * color.g + 10 * color.r,
220 * color.b + 10 * color.g + 50 * color.r
) / 255, vec3(1.0 / 2.2)), // Out Gamma
1.0);
}