crt shader now has crosstalk sim

This commit is contained in:
minjaesong
2024-08-13 22:58:06 +09:00
parent dc0be53234
commit 6325684610
2 changed files with 19 additions and 5 deletions

View File

@@ -403,6 +403,16 @@ const mat4 yuv_to_rgb = mat4(
0.0, 0.0, 0.0, 1.0
);
const float ALFA = 0.2;
const float BETA = 0.2;
const mat4 crosstalk_mat = mat4(
1.0, 0.0, 0.0, 0.0,
ALFA, 1.0, 0.0, 0.0,
BETA, 0.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0
);
const float gamma = 2.4;
const float blurH = 0.8;
const float blurV = 0.4;
@@ -421,10 +431,12 @@ vec4 avr(vec4 a, vec4 b, float gam) {
);
}
vec4 grading(vec4 col, vec4 args) {
vec4 grading(vec4 col0, vec4 args) {
vec4 vel = vec4(1.0, 1.0 / args.y, 1.0 / args.z, 1.0);
vec4 power = vec4(args.x, args.x, args.x, 1.0);
vec4 col = crosstalk_mat * col0;
vec4 sgn = sign(col);
vec4 absval = abs(col);
vec4 raised = pow(absval, vel);
@@ -452,9 +464,9 @@ void main() {
vec4 LRavr = avr(colourL, colourR, gamma);
vec4 wgtavr = avr(LRavr, colourIn, gamma);
vec4 outCol = wgtavr * ((mod(gl_FragCoord.y, 2.0) >= 1.0) ? scanline : one);
vec4 outCol = wgtavr;
fragColor = grading(outCol, gradingarg);
fragColor = grading(outCol, gradingarg) * ((mod(gl_FragCoord.y, 2.0) >= 1.0) ? scanline : one);
}