4k be fancy, I just don’t have a computer nor a monitor/tv that will support it.
My work is such that investment in nice monitors with high resolutions and refresh rates is warranted. If the 3080s ever go on sale again I’d like to see how a 240hz at 4k compares to the smoothness of a CRT. (I’m guessing there is little improvement.)
My CRT is making me a little nuts with aspect ratio. 1600x1200, so 4x3 should work on it well. I’ve messed around with the CRT switches but something is always off. Maybe it’s because my CRT lowest setting is 640x480 at 120hz? Problems and all, it’s super smooth.
The issue with LCD is no longer with refreshrate, but with their “sample-and-hold” technology. It’s very different from CRT and because of this you’ll ALWAYS perceive motion blur, regardless of how fast the LCD panel is. In other words: because of the sample-and-hold technology of LCD you’ll NEVER perceive the motion smoothness of a CRT on a LCD, regardless of how fast the LCD panel is.
The only work-around that manufacturers have been coming up with is “strobed backlight”. So if your ultimate goal is to to perceive CRT smoothness on a modern LCD, the only way is to research LCD monitors with strobed backlights. But from what I’m reading most of these screens can have serious drawbacks.
https://en.wikipedia.org/wiki/Display_motion_blur
The prerequisites become even stronger if your main purpose is not only to have CRT smoothness for normal use, but want to have CRT smoothness when using RA CRT shaders. Two different things that up the requirements by a significant amount.
Forget about using masks with the shader for a moment, only scanlines, it means the monitor does not only have to have a strobing backlight option, but the max brightness needs to be top of the range too: double that of normal CRT at about 125 cd/m2 (for dim lighted room) because of scanlines, and double that again because of strobing mode. I.e. max brightness needs to be at least > 500 cd/m2 and it needs to have a properly working strobing mode. Additionally you’ll probably want to have at least 1440p (or 4K) and good color reproduction (dE <3 ) etc… and you can imagine it will be like finding a needle in a haystack. Dissapointing, but IMO this is where things stand right now.
What is the name of this game?
Galaxy Fight for Neo Geo.
Ended up going from a PVM/BVM look to more of a softer CRT look (S-Video?, maybe?).
I have a TN panel, so the preset is more tuned for that. So some modification might be needed based on monitor/personal preference.
shaders = "10"
shader0 = "shaders_slang/stock.slang"
filter_linear0 = "false"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = ""
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/stock.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/misc/grade.slang"
filter_linear2 = "true"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = "WhitePointPass"
float_framebuffer2 = "false"
srgb_framebuffer2 = "false"
scale_type_x2 = "source"
scale_x2 = "1.000000"
scale_type_y2 = "source"
scale_y2 = "1.000000"
shader3 = "shaders_slang/crt/shaders/crtsim/composite.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = "AfterglowPass"
float_framebuffer3 = "false"
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/avg-lum.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "true"
alias4 = "AvgLumPass"
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/linearize.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = "LinearizePass"
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_horiz.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/blur_vert.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = "GlowPass"
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/linearize_scanlines.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = ""
float_framebuffer8 = "true"
srgb_framebuffer8 = "false"
scale_type_x8 = "source"
scale_x8 = "1.000000"
scale_type_y8 = "source"
scale_y8 = "1.000000"
shader9 = "shaders_slang/crt/shaders/guest/crt-guest-dr-venom.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = ""
float_framebuffer9 = "false"
srgb_framebuffer9 = "false"
scale_type_x9 = "viewport"
scale_x9 = "1.000000"
scale_type_y9 = "viewport"
scale_y9 = "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;Tuning_Sharp;Tuning_Persistence_R;Tuning_Persistence_G;Tuning_Persistence_B;Tuning_Bleed;Tuning_Artifacts;NTSCLerp;NTSCArtifactScale;animate_artifacts;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.600000"
g_signal_type = "0.000000"
g_gamma_type = "0.000000"
g_crtgamut = "1.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 = "1.000000"
wp_temperature = "6504.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 = "32.000000"
LUT1_toggle = "0.000000"
LUT_Size2 = "32.000000"
LUT2_toggle = "0.000000"
Tuning_Sharp = "0.000000"
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 = "0.000000"
lsmooth = "0.900000"
GAMMA_INPUT = "2.400000"
TAPSH = "1.000000"
GLOW_FALLOFF_H = "0.000000"
TAPSV = "1.000000"
GLOW_FALLOFF_V = "0.000000"
TATE = "0.000000"
IOS = "0.000000"
OS = "1.000000"
BLOOM = "0.000000"
brightboost = "1.000000"
brightboost1 = "1.000000"
gsl = "1.000000"
scanline1 = "15.000000"
scanline2 = "5.000000"
beam_min = "1.350000"
beam_max = "0.700000"
beam_size = "0.000000"
h_sharp = "3.500000"
s_sharp = "0.000000"
csize = "0.000000"
bsize = "575.000000"
warpX = "0.000000"
warpY = "0.000000"
glow = "0.020000"
shadowMask = "-1.000000"
masksize = "1.000000"
vertmask = "-0.000000"
slotmask = "0.000000"
slotwidth = "2.000000"
double_slot = "1.000000"
slotms = "2.000000"
mcut = "0.250000"
maskDark = "0.200000"
maskLight = "1.500000"
CGWG = "1.000000"
gamma_out = "2.400000"
spike = "1.000000"
inter = "400.000000"
interm = "3.000000"
bloom = "0.000000"
scans = "1.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"
Just updated my presets, using new guest-dr-venom located here.
All of these are slotmask hybrids, meaning you can just set “slotmask strength” to 0.00 and it becomes an aperture grille. I think these are 95% done, could probably be optimized further but they’re good enough to use. Clipping remains an issue but it’s very minor and shouldn’t be noticeable 99% of the time. Just don’t look at the clouds in Outrun
Type 0-A:
Type 1:
Fine fine, I’ll try and update my shader code to current.
@Nesguy making nice presets making me update code, radarada.
I think if you added a bezel+bezel reflection and zoom in on one part of the image and add some bicubic or linear filtering this might be able to pass the CRT Turing test. It looks pretty convincing when viewed with Photos in Windows 10, IMO, but looks less convincing if you zoom in too much.
We should take our best shots to a CRT forum and see if we can pass them off as the real thing. Operation: Doppelganger
Very nice results! Since you are showcasing NES games, have you considered making an NES preset using nes color decoder and pixellate? The Mesen core includes a Raw palette preset that can be used for accurate NES color reproduction.
As for your presets, can you talk a little about what you are trying to accomplish with each one? Thank you
Thanks for the feedback!
I’m not really trying to replicate any specific CRT, just trying to improve the objective image quality as much as possible with the options that are available. It’s a pretty simple setup, actually. I start by lifting the entire gamma curve as much as possible without clipping black, then I disable anything that boosts dark pixels, then I increase bright boost bright pixels as much as possible without harshly clipping anything, then I increase scanline shape for dark pixels as much as I can without oversaturating anything. I set scanline beam shape low/high to 1.00/40.00; it just seems to work. I set increased bright beam shape to 1.00 for additional beam width variation. Finally, I adjusted the glow strength increment and set glow strength to 0.002, this is the fairy dust that gives everything some extra sparkle without resulting in cartoonish glow halos. Other than that, just some changes to sharpness and grade settings.
There’s very little difference between the different presets except for Type 0-A which uses a higher-pitch (lower TVL) mask, suitable for emulating a generic arcade monitor or prosumer CRT. The other presets all use the magenta/green mask and are the same except for scanline type, which mostly just results in minor color differences. These are all more like a pro monitor.
By default, the mask is configured to be a slotmask. You can change it to an aperture grille by setting slotmask strength to 0.00.
I’d appreciate any suggestions or feedback!
This is a good idea but I’m having a hard time getting it to work. If I start with color decoder and then pixellate and start building the chain for GDV after that, it breaks at the avg-lum pass. @guest.r do you have any idea what to do, here?
So I’m planning on doing a build log for my fightstick and a buyer’s guide for arcade stick parts.
I’m wanting to gauge how much interest you guys would have in me actually doing this. (As the buyer’s guide will be fairly time consuming tbh)
I’ll check it out for sure, but writing stuff like that is like dancing: you gotta do it like nobody’s watching (er, reading) or it’s no fun. Do it for you, bro.
May hit you up when I’m writing the buyers guide, as my Japanese lever knowledge is meh. I can write you a small book about Korean levers, buttons and switches though XD.
I’d like to share some screenshots based on a preset I’ve been using recently. What I’m trying to achieve is to mimic how the old-school games looked on good consumer crt, according to “my memory”. Probably a Sony Trinitron like this one: https://www.youtube.com/watch?v=sNLWjgpxSO8 But memory is the keyword here. How we remember things are often somewhat different from how they really were. For example, I don’t remember the sprites being super rough/pixelated/blocky back in the day and obviously my memory serves me wrong. I also never felt the picture being blurry when I was playing those 8-bit/16-bit games on a crt. (maybe soft, but not blurry) But the fact is that consumer-crts do look a bit blurry especially when we are now getting used to FHD/UHD sharpness. In short, I tried not to replicate the crt characteristics that do not exist in my memory.
Some details: This is based on the crt-royale preset. Integer scale isn’t required. I tried to minimize the uneven scanlines and I think the results are decent enough (on par with the default settings of most crt shaders in terms of even scanlines when using non-integer scale). I also tried to make the scanlines/masks look more subtle on brighter pixels than they should. So instead of prominent, strong/thick scanlines, there are now subtle textures covering these brighter parts of the picture. I used to hate this but when I exaggerated the effect a little bit more than the default value, it started to grow on me. It helps generate a much more natural “glowing effect” for things like lightning, fireballs, explosions, magic, etc. A real crt manifests this behavior as well but not nearly as much. By exaggerating the effect, the image immediately looks more convincing IMHO. (more in line with what “my memory” tells me about how CRTs should look like)
I think casual users (who don’t care about things like 100% color accuracy, true crt characteristics, etc) will like the look of this preset for its “seeming faithfulness” to CRTs if they haven’t seen a real crt for a long time, and find these screenshots pretty. Please view them on a 1080P display in fullscreen mode without any scaling. If you notice any strange patterns or artifacts, you can also try 2x or 3x zoom. I know you guys know CRT a lot better than I do, but if any of you like the setting or the idea, or want to help improve it, I’d be happy to share it.
Just noticed that I can only upload one screenshot in a post because I’m a new user : (
My old TV 1366*768 resolution with crt-easymode. Not bad
@crtJoe Thanks for sharing, I think it looks quite nice and I see where you’re coming from with what you’re trying to achieve. My experience is that a lot of shaders can look very nice in a screenshot, it’s as if “someone took a photo of a real CRT”. Yours may fall in the same category. But once you start playing games with the shader for an hour or longer it just doesn’t hold up. As you already mentioned real CRTs are much more subdued than what people recall from playing a CRT at night, half in the dark.
I’m curious if when you have had a few longer playing sessions (an hour or longer) really playing games with your preset, whether or not it actually holds up for you, and it doesn’t eyestrain you or “irritate” you in another way (the urge to start tweaking parameters again etc…) .
Please let us know and share the preset if it does
.
P.S. a nice alternative to Royale is the guest-dr-venom shader, works quite nicely out of the box. You may want to give that a go also to see how they compare
https://forums.libretro.com/t/new-crt-shader-from-guest/25444/270
Thank you very much for the kind feedback. Actually, crt-guest-dr-venom was my go-to shader. I did get very good results with it by making the scanlines/mask strength as strong and as pronounced as possible. It looks exactly like a PMV to me:
The problem is that
-
I don’t emotionally attached to the PVM look. Never had one so zero nostalgia there. T
-
As far as I know, the author is still working on/improving the shader. This is supposed to be good news and we should be very grateful. But the last time (probably some time during last year) he released a major update, he improved a lot of the original settings and added some new things. It took me hours to tweak the new settings and make it look like my old setting, which I probably already spent weeks to work on. It was a painful experience. I’ll definitely start using it again when everything is finalized or when I know I don’t have to re-work on my settings after an update.
-
Integer scale is needed for my setting for guest-dr-venom, if I don’t want to moderately compromise the look.
That’s why I went back to crt-royale. I know what you meant about static photos vs a real crt in action. But IMHO it looks more authentic, according to my unreliable memory obviously, than a bunch of presets I’ve tried. I think I probably “only” need a 120hz 4K monitor to make it look like a real deal (again like how I remember it, not necessarily a true crt) because I really want to use slot mask instead of aperture grille, and enable black frame insertion. Probably a piece of real glass would also help
If you are curious about how the preset performs with different games, you can download more screenshots here:
https://drive.google.com/file/d/1RyHhgkW2FxonwAPfvZbjUDn_RBsUsm-f/view?usp=sharing
I think some of my settings will be immediately frowned upon LOL. I’ll post them later.
Current settings for the new version of guest-dr-venom. I really like what I’m seeing in terms of mask definition and brightness. This is without grade; I got it working again but have been too lazy to make a new preset.
shaders = "6"
shader0 = "shaders_slang/crt/shaders/guest/crt-gdv-new/afterglow0.slang"
filter_linear0 = "false"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = "AfterglowPass"
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/crt-gdv-new/pre-shaders-afterglow.slang"
filter_linear1 = "false"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "LinearizePass"
float_framebuffer1 = "true"
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/crt-gdv-new/avg-lum.slang"
filter_linear2 = "true"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "true"
alias2 = "AvgLumPass"
float_framebuffer2 = "false"
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/crt-gdv-new/blur_horiz2.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = ""
float_framebuffer3 = "true"
srgb_framebuffer3 = "false"
scale_type_x3 = "absolute"
scale_x3 = "800"
scale_type_y3 = "source"
scale_y3 = "1.000000"
shader4 = "shaders_slang/crt/shaders/guest/crt-gdv-new/blur_vert2.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = "GlowPass"
float_framebuffer4 = "true"
srgb_framebuffer4 = "false"
scale_type_x4 = "absolute"
scale_x4 = "800"
scale_type_y4 = "absolute"
scale_y4 = "600"
shader5 = "shaders_slang/crt/shaders/guest/crt-gdv-new/crt-guest-dr-venom2.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = ""
float_framebuffer5 = "false"
srgb_framebuffer5 = "false"
scale_type_x5 = "viewport"
scale_x5 = "1.000000"
scale_type_y5 = "viewport"
scale_y5 = "1.000000"
parameters = "PR;PG;PB;AS;sat;TNTC;CP;CS;WP;wp_saturation;GAMMA_INPUT;lsmooth;SIZEH;GLOW_FALLOFF_H;SIZEV;GLOW_FALLOFF_V;glow;bloom;TATE;IOS;OS;BLOOM;gamma_c;brightboost;brightboost1;gsl;scanline1;scanline2;beam_min;beam_max;beam_size;vertmask;scans;spike;h_sharp;s_sharp;csize;bsize;warpX;warpY;shadowMask;masksize;maskDark;maskLight;CGWG;mcut;slotmask;slotwidth;double_slot;slotms;mclip;inter;interm;gamma_out"
PR = "0.170000"
PG = "0.170000"
PB = "0.170000"
AS = "0.070000"
sat = "0.100000"
TNTC = "0.000000"
CP = "0.000000"
CS = "0.000000"
WP = "-50.000000"
wp_saturation = "1.000000"
GAMMA_INPUT = "2.400000"
lsmooth = "0.900000"
SIZEH = "4.000000"
GLOW_FALLOFF_H = "0.300000"
SIZEV = "4.000000"
GLOW_FALLOFF_V = "0.300000"
glow = "0.010000"
bloom = "0.000000"
TATE = "0.000000"
IOS = "0.000000"
OS = "1.000000"
BLOOM = "0.000000"
gamma_c = "1.000000"
brightboost = "1.000000"
brightboost1 = "1.500000"
gsl = "0.000000"
scanline1 = "5.000000"
scanline2 = "20.000000"
beam_min = "2.000000"
beam_max = "1.000000"
beam_size = "1.000000"
vertmask = "0.000000"
scans = "0.500000"
spike = "0.000000"
h_sharp = "3.000001"
s_sharp = "1.000000"
csize = "0.000000"
bsize = "600.000000"
warpX = "0.000000"
warpY = "0.000000"
shadowMask = "2.000000"
masksize = "1.000000"
maskDark = "0.500000"
maskLight = "1.000000"
CGWG = "0.300000"
mcut = "1.150000"
slotmask = "0.000000"
slotwidth = "2.000000"
double_slot = "1.000000"
slotms = "1.000000"
mclip = "0.400000"
inter = "350.000000"
interm = "1.000000"
gamma_out = "2.200000"
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"