Please show off what crt shaders can do!

-4 NTSC_FCC: The first NTSC standard (1953) that was never actually used
-3 Conrac: Phosphor gamut for the Conrac 7211N19 CRTs from which SMPTE-C was based
-2 Sony20_20: Sony Trinitron KV-20M20 NTSC-J CRT Gamut
-1 SMPTE: SMPTE-C standard phosphor
 1 P22: SMPTE-C measured average Phosphor
 2 NTSC_J: NTSC-J standard phosphor
 3 EBU: EBU Tech.3213 PAL standard phosphor. Similar to sRGB

1-3 are the actual recommended for the presets. The reason I opted for P22 instead of SMPTE-C standard was IIRC a green tint that I disliked and stood out from the other two presets. Negative values are there for reference and comparison, I’m open to add more though.

By the way, the 9300K temperature of NTSC-J was more for studio monitors, the correlated temperature to D illuminant for home systems was more about 8942K for NTSC-J.

7 Likes

Thank you for the detailed explanation. The color temp debate is fun to research and here are a summation of the Internet’s arguments I found:

-“Japanese developed on 9300k so Mario’s sky was blue to them.”

-“Miyamoto said in an interview he picked a purple color for the sky in Mario.”

-“I doubt monitors where calibrated back than and they didn’t care about American color temps. It’s blue.”

-“Why is Mario’s and Link to the Past the only games with a purple sky? Everything else is blue so it must have been intentional for it to be purple.”

Anyways, here is my new black and white old tv preset.

4 Likes

This is beautiful. Where should I put the contents of that file to use it myself?

1 Like

At the base of your shaders folder iirc, so you should see shaders_slang, shaders_glsl, etc in the folder you place that slangp file in.

1 Like

The quote from Miyamato is weird and confusing, because here’s a planning sheet showing a decidedly blue sky.

1 Like

I agree. Perhaps he got used to seeing it purpilish because his development monitors were at colder temps than consumer tvs and thought that was how he originally designed it. Memories are often fuzzy and inaccurate. Maybe he changed it’s hue from the design sheet once he saw it running on screen?

Some games look great to me at warmer temps and others look better with cooler ones.

2 Likes

@jelbo

You can improve it even further by raising beam_min and lowering beam_max, but doing so can cause artifacts on some displays I’ve tested. This can be due to a variety of factors. Here’s an example of some settings that cause artifacts on my plasma TV. This is just taking the previous settings and increasing beam_min to 2.10 and lowering beam_max to 0.80. This improves the image, but it’s more than what the display can handle. Obviously, raising beam_min/lowering beam_max even further makes the artifacts worse. I have to set beam_min to 2.00 and beam_max to 1.00 to completely eliminate artifacts on this particular display.

TLDR: beam_min and beam_max settings are display-dependent and should be adjusted using the usual test patterns in Test Suite; lowering beam_max and raising beam_min as much as possible without causing clipping will increase the dynamic range.

shaders = "8"
shader0 = "shaders_slang/misc/grade.slang"
filter_linear0 = "true"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = "WhitePointPass"
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
scale_type_x0 = "source"
scale_x0 = "1.000000"
scale_type_y0 = "source"
scale_y0 = "1.000000"
shader1 = "shaders_slang/crt/shaders/guest/afterglow.slang"
filter_linear1 = "true"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "AfterglowPass"
float_framebuffer1 = "false"
srgb_framebuffer1 = "false"
scale_type_x1 = "source"
scale_x1 = "1.000000"
scale_type_y1 = "source"
scale_y1 = "1.000000"
shader2 = "shaders_slang/crt/shaders/guest/avg-lum.slang"
filter_linear2 = "true"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "true"
alias2 = "AvgLumPass"
float_framebuffer2 = "true"
srgb_framebuffer2 = "false"
scale_type_x2 = "source"
scale_x2 = "1.000000"
scale_type_y2 = "source"
scale_y2 = "1.000000"
shader3 = "shaders_slang/crt/shaders/guest/linearize.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = "LinearizePass"
float_framebuffer3 = "true"
srgb_framebuffer3 = "false"
scale_type_x3 = "source"
scale_x3 = "1.000000"
scale_type_y3 = "source"
scale_y3 = "1.000000"
shader4 = "shaders_slang/crt/shaders/guest/blur_horiz.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = ""
float_framebuffer4 = "true"
srgb_framebuffer4 = "false"
scale_type_x4 = "source"
scale_x4 = "1.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "shaders_slang/crt/shaders/guest/blur_vert.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = "GlowPass"
float_framebuffer5 = "true"
srgb_framebuffer5 = "false"
scale_type_x5 = "source"
scale_x5 = "1.000000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "shaders_slang/crt/shaders/guest/linearize_scanlines.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "true"
srgb_framebuffer6 = "false"
scale_type_x6 = "source"
scale_x6 = "1.000000"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "shaders_slang/crt/shaders/guest/crt-guest-dr-venom.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = ""
float_framebuffer7 = "false"
srgb_framebuffer7 = "false"
scale_type_x7 = "viewport"
scale_x7 = "1.000000"
scale_type_y7 = "viewport"
scale_y7 = "1.000000"
parameters = "g_gamma_in;g_signal_type;g_gamma_type;g_crtgamut;g_space_out;g_hue_degrees;g_I_SHIFT;g_Q_SHIFT;g_I_MUL;g_Q_MUL;g_lum_fix;g_vignette;g_vstr;g_vpower;g_lum;g_cntrst;g_mid;wp_temperature;g_sat;g_vibr;g_satr;g_satg;g_satb;g_lift;blr;blg;blb;wlr;wlg;wlb;rg;rb;gr;gb;br;bg;LUT_Size1;LUT1_toggle;LUT_Size2;LUT2_toggle;SW;AR;PR;AG;PG;AB;PB;sat;lsmooth;GAMMA_INPUT;TAPSH;GLOW_FALLOFF_H;TAPSV;GLOW_FALLOFF_V;TATE;IOS;OS;BLOOM;brightboost;brightboost1;gsl;scanline1;scanline2;beam_min;beam_max;beam_size;h_sharp;s_sharp;csize;bsize;warpX;warpY;glow;shadowMask;masksize;vertmask;slotmask;slotwidth;double_slot;slotms;mcut;maskDark;maskLight;CGWG;gamma_out;spike;inter;interm;bloom;scans"
g_gamma_in = "2.500000"
g_signal_type = "0.000000"
g_gamma_type = "1.000000"
g_crtgamut = "2.000000"
g_space_out = "0.000000"
g_hue_degrees = "0.000000"
g_I_SHIFT = "0.000000"
g_Q_SHIFT = "0.000000"
g_I_MUL = "1.000000"
g_Q_MUL = "1.000000"
g_lum_fix = "0.000000"
g_vignette = "0.000000"
g_vstr = "40.000000"
g_vpower = "0.200000"
g_lum = "0.000000"
g_cntrst = "0.000000"
g_mid = "0.500000"
wp_temperature = "8005.000000"
g_sat = "0.000000"
g_vibr = "0.000000"
g_satr = "0.000000"
g_satg = "0.000000"
g_satb = "0.000000"
g_lift = "0.000000"
blr = "0.000000"
blg = "0.000000"
blb = "0.000000"
wlr = "1.000000"
wlg = "1.000000"
wlb = "1.000000"
rg = "0.000000"
rb = "0.000000"
gr = "0.000000"
gb = "0.000000"
br = "0.000000"
bg = "0.000000"
LUT_Size1 = "16.000000"
LUT1_toggle = "0.000000"
LUT_Size2 = "64.000000"
LUT2_toggle = "0.000000"
SW = "1.000000"
AR = "0.070000"
PR = "0.050000"
AG = "0.070000"
PG = "0.050000"
AB = "0.070000"
PB = "0.050000"
sat = "0.100000"
lsmooth = "0.900000"
GAMMA_INPUT = "3.499996"
TAPSH = "1.000000"
GLOW_FALLOFF_H = "0.300000"
TAPSV = "1.000000"
GLOW_FALLOFF_V = "0.300000"
TATE = "0.000000"
IOS = "0.000000"
OS = "1.000000"
BLOOM = "0.000000"
brightboost = "1.000015"
brightboost1 = "2.349999"
gsl = "0.000000"
scanline1 = "1.000000"
scanline2 = "23.000000"
beam_min = "2.100001"
beam_max = "0.800000"
beam_size = "0.000000"
h_sharp = "5.000000"
s_sharp = "0.000000"
csize = "0.000000"
bsize = "600.000000"
warpX = "0.000000"
warpY = "0.000000"
glow = "0.000000"
shadowMask = "3.000000"
masksize = "1.000000"
vertmask = "0.000000"
slotmask = "0.000000"
slotwidth = "2.000000"
double_slot = "1.000000"
slotms = "1.000000"
mcut = "0.250000"
maskDark = "0.500000"
maskLight = "1.500000"
CGWG = "0.500000"
gamma_out = "3.500000"
spike = "0.000000"
inter = "400.000000"
interm = "1.000000"
bloom = "0.000000"
scans = "1.000000"
textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3"
SamplerLUT1 = "shaders_slang/crt/shaders/guest/lut/sony_trinitron1.png"
SamplerLUT1_linear = "true"
SamplerLUT1_wrap_mode = "clamp_to_border"
SamplerLUT1_mipmap = "false"
SamplerLUT2 = "shaders_slang/crt/shaders/guest/lut/sony_trinitron2.png"
SamplerLUT2_linear = "true"
SamplerLUT2_wrap_mode = "clamp_to_border"
SamplerLUT2_mipmap = "false"
SamplerLUT3 = "shaders_slang/crt/shaders/guest/lut/other1.png"
SamplerLUT3_linear = "true"
SamplerLUT3_wrap_mode = "clamp_to_border"
SamplerLUT3_mipmap = "false"
1 Like

I liked @Puxirepublic’s shot from Apocalypse Now, so here’s another one with the above settings. Feels a bit like a 19" CRT and I think it gives the image a film-like quality. I think the BW aperture grille or magenta/green aperture grille would also be good for 1080p movies. I read somewhere (on Lottes’s blog I think) that there are almost no details that are 1px wide in a 1080p movie, so either of the aforementioned aperture grille masks should preserve virtually all the detail while adding some CRT-like texture.

2 Likes

Stop trying to get me to watch anime with a shader XD

1 Like

4 Likes

I love the look of Venom’s 1 slot but I dislike that saw-tooth pattern in the brights where the mask is blown out. It’s unavoidable if you want a bright image but it still bugs me.

1 Like

I played around with the higher gamma settings and got the Venom shader to be even dottier. I’m not saying it’s ideal, but it’s a fun experiment to push.

5 Likes

I really like that. Very nice.

1 Like

You can reduce the sawtooth pattern in brights by reducing the visibility of the phosphors over bright colors. This can be accomplished with the bloom setting but that’s less accurate to how CRTs looked/worked. Mask 1 is better for screenshots IMO, while Mask 3 looks more natural when actually in use.

Nice screenshot! I think the higher gamma setting really unlocks the shader’s potential. The higher resolution does a lot for the beam dynamics, too. I use 3.50/3.50 for gamma in GDV as it’s the brightest it can go without clipping blacks, giving you maximum headroom for scanlines/masks.

Edit: I think maybe we were referring to different things. The sine-wave looking pattern with bright scanlines is accurate to how slotmask CRTs looked. Only way to avoid that is to reduce the bright beam width to the point where it sucks all the brightness out of highlights. (Or basically what you already said)

1 Like

I hooked my laptop up to a 4k oled and it’s interesting how slot 1 does not hold up as well when viewed closely. Slot 1 and 7 also show slight banding across the screen horizontally on pure colors like Super Mario’s sky. Clearly it’s beyond ridiculous to critique a 240p image on a 60 inch screen at close range but I found it interesting.

2 Likes

Loving your shader work Nesguy and BendBombBoom. Nesguy, I would personally prefer some more bloom and dottyness, like BendBombBoom’s going for. I’ll try to play around with some parameters, but any help would be welcome, this is totally new for me.

1 Like

:slight_smile:

Took my edited version of BBB’s CRT_96 shader and changed the settings according to the "Scanline Min Max guide on the forums.

@jelbo Here is my current shader. Here are some basics to help with parameters

  • First, make sure you have dogway’s glass shader in your misc folder.

  • Second this is made for a 4k monitor so set the CRT Mask size to 1 if you are on a 1080p.

  • The more composite sharp the “dirtier” the image but the bigger dots you get.

  • The higher the composite artifacts value the more color bleeding you get. (Only if ntsc scale is at 0)

  • Turn Reflection toggle off for a slighter sharper image but less pixel color de-convergence.

  • No matter how you tweak the shader, “Street Fighter, The Movie, The Game” will always be the best and worst street fighter game.

As it stands my variant of Venom can be a bit much in some games.

shaders = "10"
shader0 = "shaders_slang/misc/grade.slang"
filter_linear0 = "true"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = "WhitePointPass"
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
scale_type_x0 = "source"
scale_x0 = "1.000000"
scale_type_y0 = "source"
scale_y0 = "1.000000"
shader1 = "shaders_slang/crt/shaders/crtsim/composite.slang"
filter_linear1 = "true"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = ""
float_framebuffer1 = "false"
srgb_framebuffer1 = "false"
scale_type_x1 = "source"
scale_x1 = "1.000000"
scale_type_y1 = "source"
scale_y1 = "1.000000"
shader2 = "shaders_slang/crt/shaders/guest/afterglow.slang"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = "AfterglowPass"
float_framebuffer2 = "false"
srgb_framebuffer2 = "false"
shader3 = "shaders_slang/crt/shaders/guest/avg-lum.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "true"
alias3 = "AvgLumPass"
float_framebuffer3 = "true"
srgb_framebuffer3 = "false"
scale_type_x3 = "source"
scale_x3 = "1.000000"
scale_type_y3 = "source"
scale_y3 = "1.000000"
shader4 = "shaders_slang/crt/shaders/guest/linearize.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = "LinearizePass"
float_framebuffer4 = "true"
srgb_framebuffer4 = "false"
scale_type_x4 = "source"
scale_x4 = "1.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "shaders_slang/crt/shaders/guest/blur_horiz.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = ""
float_framebuffer5 = "true"
srgb_framebuffer5 = "false"
scale_type_x5 = "source"
scale_x5 = "1.000000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "shaders_slang/crt/shaders/guest/blur_vert.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = "GlowPass"
float_framebuffer6 = "true"
srgb_framebuffer6 = "false"
scale_type_x6 = "source"
scale_x6 = "1.000000"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "shaders_slang/crt/shaders/guest/linearize_scanlines.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = ""
float_framebuffer7 = "true"
srgb_framebuffer7 = "false"
scale_type_x7 = "source"
scale_x7 = "1.000000"
scale_type_y7 = "source"
scale_y7 = "1.000000"
shader8 = "shaders_slang/crt/shaders/guest/crt-guest-dr-venom.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = ""
float_framebuffer8 = "false"
srgb_framebuffer8 = "false"
scale_type_x8 = "viewport"
scale_x8 = "1.000000"
scale_type_y8 = "viewport"
scale_y8 = "1.000000"
shader9 = "shaders_slang/misc/glass.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = ""
float_framebuffer9 = "false"
srgb_framebuffer9 = "false"
parameters = "g_gamma_in;g_signal_type;g_gamma_type;g_crtgamut;g_space_out;g_hue_degrees;g_I_SHIFT;g_Q_SHIFT;g_I_MUL;g_Q_MUL;g_lum_fix;g_vignette;g_vstr;g_vpower;g_lum;g_cntrst;g_mid;wp_temperature;g_sat;g_vibr;g_satr;g_satg;g_satb;g_lift;blr;blg;blb;wlr;wlg;wlb;rg;rb;gr;gb;br;bg;LUT_Size1;LUT1_toggle;LUT_Size2;LUT2_toggle;Tuning_Sharp;Tuning_Persistence_R;Tuning_Persistence_G;Tuning_Persistence_B;Tuning_Bleed;Tuning_Artifacts;NTSCLerp;NTSCArtifactScale;animate_artifacts;SW;AR;PR;AG;PG;AB;PB;sat;lsmooth;GAMMA_INPUT;TAPSH;GLOW_FALLOFF_H;TAPSV;GLOW_FALLOFF_V;TATE;IOS;OS;BLOOM;brightboost;brightboost1;gsl;scanline1;scanline2;beam_min;beam_max;beam_size;h_sharp;s_sharp;csize;bsize;warpX;warpY;glow;shadowMask;masksize;vertmask;slotmask;slotwidth;double_slot;slotms;mcut;maskDark;maskLight;CGWG;gamma_out;spike;inter;interm;bloom;scans;g_csize;g_bsize;g_flicker;g_shaker;g_refltog;g_reflgrain;g_reflstr;g_fresnel;g_reflblur;gz;gx;gy;gzr;gzg;gzb;goxr;goyr;goxg;goyg;goxb;goyb;TO;PH;PER;ASAT;temperature;luma_preserve;wp_red;wp_green;wp_blue"
g_gamma_in = "2.500000"
g_signal_type = "1.000000"
g_gamma_type = "1.000000"
g_crtgamut = "2.000000"
g_space_out = "-1.000000"
g_hue_degrees = "0.000000"
g_I_SHIFT = "0.000000"
g_Q_SHIFT = "0.000000"
g_I_MUL = "1.000000"
g_Q_MUL = "1.000000"
g_lum_fix = "0.000000"
g_vignette = "0.000000"
g_vstr = "40.000000"
g_vpower = "0.200000"
g_lum = "0.000000"
g_cntrst = "0.000000"
g_mid = "1.000000"
wp_temperature = "8005.000000"
g_sat = "0.100000"
g_vibr = "0.000000"
g_satr = "0.000000"
g_satg = "0.000000"
g_satb = "0.000000"
g_lift = "-0.040000"
blr = "0.000000"
blg = "0.000000"
blb = "0.000000"
wlr = "1.000000"
wlg = "1.000000"
wlb = "1.000000"
rg = "0.000000"
rb = "0.000000"
gr = "0.000000"
gb = "0.000000"
br = "0.000000"
bg = "0.000000"
LUT_Size1 = "32.000000"
LUT1_toggle = "0.000000"
LUT_Size2 = "32.000000"
LUT2_toggle = "0.000000"
Tuning_Sharp = "0.100000"
Tuning_Persistence_R = "0.000000"
Tuning_Persistence_G = "0.000000"
Tuning_Persistence_B = "0.000000"
Tuning_Bleed = "0.000000"
Tuning_Artifacts = "0.000000"
NTSCLerp = "0.000000"
NTSCArtifactScale = "0.000000"
animate_artifacts = "1.000000"
SW = "1.000000"
AR = "0.070000"
PR = "0.010000"
AG = "0.070000"
PG = "0.010000"
AB = "0.070000"
PB = "0.010000"
sat = "0.100000"
lsmooth = "0.900000"
GAMMA_INPUT = "3.499996"
TAPSH = "10.000000"
GLOW_FALLOFF_H = "9.000000"
TAPSV = "10.000000"
GLOW_FALLOFF_V = "9.000000"
TATE = "0.000000"
IOS = "0.000000"
OS = "1.000000"
BLOOM = "0.000000"
brightboost = "2.000000"
brightboost1 = "3.000000"
gsl = "0.000000"
scanline1 = "15.000000"
scanline2 = "5.000000"
beam_min = "2.500000"
beam_max = "1.000000"
beam_size = "0.700000"
h_sharp = "5.250000"
s_sharp = "0.000000"
csize = "0.000000"
bsize = "275.000000"
warpX = "0.000000"
warpY = "0.000000"
glow = "0.020000"
shadowMask = "7.000000"
masksize = "2.000000"
vertmask = "0.160000"
slotmask = "0.000000"
slotwidth = "2.000000"
double_slot = "1.000000"
slotms = "2.000000"
mcut = "0.250000"
maskDark = "0.100000"
maskLight = "1.500000"
CGWG = "1.000000"
gamma_out = "3.500000"
spike = "1.000000"
inter = "400.000000"
interm = "1.000000"
bloom = "0.900000"
scans = "0.500000"
g_csize = "0.000000"
g_bsize = "1200.000000"
g_flicker = "0.000000"
g_shaker = "0.000000"
g_refltog = "1.000000"
g_reflgrain = "0.000000"
g_reflstr = "0.100000"
g_fresnel = "0.500000"
g_reflblur = "0.600000"
gz = "1.100000"
gx = "0.000000"
gy = "-0.010000"
gzr = "1.000000"
gzg = "1.000000"
gzb = "1.000000"
goxr = "0.020000"
goyr = "-0.020000"
goxg = "0.000000"
goyg = "-0.010000"
goxb = "-0.020000"
goyb = "0.020000"
TO = "0.000000"
PH = "2.000000"
PER = "2.000000"
ASAT = "1.000000"
temperature = "6500.000000"
luma_preserve = "0.000000"
wp_red = "0.000000"
wp_green = "0.000000"
wp_blue = "0.000000"
textures = "MaskTexture;NTSCArtifactSampler;shadowMaskSampler;SamplerLUT1;SamplerLUT2;SamplerLUT3"
MaskTexture = "shaders_slang/crt/shaders/mame_hlsl/resources/aperture-grille.png"
MaskTexture_wrap_mode = "clamp_to_border"
MaskTexture_mipmap = "false"
NTSCArtifactSampler = "shaders_slang/crt/shaders/crtsim/artifacts.png"
NTSCArtifactSampler_linear = "true"
NTSCArtifactSampler_wrap_mode = "clamp_to_border"
NTSCArtifactSampler_mipmap = "false"
shadowMaskSampler = "shaders_slang/crt/shaders/crtsim/mask.png"
shadowMaskSampler_linear = "true"
shadowMaskSampler_wrap_mode = "clamp_to_border"
shadowMaskSampler_mipmap = "false"
SamplerLUT1 = "shaders_slang/crt/shaders/guest/lut/sony_trinitron1.png"
SamplerLUT1_linear = "true"
SamplerLUT1_wrap_mode = "clamp_to_border"
SamplerLUT1_mipmap = "false"
SamplerLUT2 = "shaders_slang/crt/shaders/guest/lut/sony_trinitron2.png"
SamplerLUT2_linear = "true"
SamplerLUT2_wrap_mode = "clamp_to_border"
SamplerLUT2_mipmap = "false"
SamplerLUT3 = "shaders_slang/crt/shaders/guest/lut/other1.png"
SamplerLUT3_linear = "true"
SamplerLUT3_wrap_mode = "clamp_to_border"
SamplerLUT3_mipmap = "false"
4 Likes

I can’t really say anything about someone else’s setup being a “bit much” ngl rofl.