UPDATE:
A version with lut fixes.
https://mega.nz/file/Fg5EnRSL#AE08sZnngrfRDGMuhHjXh-J2weDuoFN00i49mP_lwkQ
You should try the fixed version, but preferably add an extra LUT in the code for better issue resolving:
Something like this:
if (int(TNTC) == 0)
{
color.rgb = color.rgb;
}
else
{
float red = ( imgColor.r * (LUT_Size - 1.0) + 0.499999 ) / (LUT_Size * LUT_Size);
float green = ( imgColor.g * (LUT_Size - 1.0) + 0.499999 ) / LUT_Size;
float blue1 = (floor( imgColor.b * (LUT_Size - 1.0) ) / LUT_Size) + red;
float blue2 = (ceil( imgColor.b * (LUT_Size - 1.0) ) / LUT_Size) + red;
float mixer = clamp(max((imgColor.b - blue1) / (blue2 - blue1), 0.0), 0.0, 32.0);
vec4 color1, color2, res;
if (int(TNTC) == 1)
{
color1 = COMPAT_TEXTURE( SamplerLUT1, vec2( blue1, green ));
color2 = COMPAT_TEXTURE( SamplerLUT1, vec2( blue2, green ));
res = mixfix(color1, color2, mixer);
float mx = max(res.r,max(res.g,res.b));
float l = mix(length(imgColor.rgb), length(res.rgb), max(mx-0.5,0.0));
res.rgb = mix(imgColor.rgb, res.rgb, clamp(25.0*(mx-0.02),0.0,1.0));
res.rgb = normalize(res.rgb+1e-10)*l;
}
else if (int(TNTC) == 2)
{
color1 = COMPAT_TEXTURE( SamplerLUT2, vec2( blue1, green ));
color2 = COMPAT_TEXTURE( SamplerLUT2, vec2( blue2, green ));
res = mixfix(color1, color2, mixer);
res.rgb = lift(color, res.rgb);
}
else if (int(TNTC) == 3)
{
color1 = COMPAT_TEXTURE( SamplerLUT3, vec2( blue1, green ));
color2 = COMPAT_TEXTURE( SamplerLUT3, vec2( blue2, green ));
res = mixfix(color1, color2, mixer);
res.rgb = pow(res.rgb, vec3(1.0/1.20));
float mx = max(res.r,max(res.g,res.b));
res.rgb = mix(imgColor.rgb, res.rgb, clamp(25.0*(mx-0.05),0.0,1.0));
float l = length(imgColor.rgb);
res.rgb = normalize(res.rgb + 1e-10)*l;
}
else if (int(TNTC) == 4)
{
color1 = COMPAT_TEXTURE( SamplerLUT4, vec2( blue1, green ));
color2 = COMPAT_TEXTURE( SamplerLUT4, vec2( blue2, green ));
res = mixfix(color1, color2, mixer);
}
color = mix(imgColor.rgb, res.rgb, min(TNTC,1.0));
}
And in the preset ofc:
textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4"
SamplerLUT1 = shaders/guest/lut/sony_trinitron1.png
SamplerLUT1_linear = true
SamplerLUT2 = shaders/guest/lut/sony_trinitron2.png
SamplerLUT2_linear = true
SamplerLUT3 = shaders/guest/lut/other1.png
SamplerLUT3_linear = true
SamplerLUT4 = shaders/guest/lut/displayCAL-2.2.png
SamplerLUT4_linear = true
ā¦and increase the parameter range:
#pragma parameter TNTC "LUT Colors" 0.0 0.0 4.0 1.0
#define TNTC params.TNTC
But you should try the updated version first.
You can count the lut āsquaresā and determine the lutās size, should work.