Please show off what crt shaders can do!

DOSBOX

Shader

zfast_crt + ewa_curvature

Shader Passes: 2

Shader #0: zfast_crt_finemask.slang
Shader #0 Filter: Linear
Shader #0 Scale: 5x
Shader #1: ewa_curvature.slang
Shader #1 Filter: Linear
Shader #1 Scale: Default

Shader Parameters

Blur Amount X-Axis: 0.00    
Scanline Darkness - Low: 9.00
Dark Pixel Brightness Boost: 1.40    
Mask Effect Amount: 0.20
Mask/Scanline Fade: 0.30
EWA Curvature X-Axis: 0.01
EWA Curvature Y-Axis: 0.02    
Mask Style: -1.00 

Shader Presets

shaders = 2

shader0 = shaders_slang/crt/shaders/zfast_crt/zfast_crt_finemask.slang
filter_linear0 = "true"
scale_type_x0 = "source"
scale_x0 = "5.000000"
scale_type_y0 = "source"
scale_y0 = "5.000000"

shader1 = shaders_slang/anti-aliasing/shaders/ewa_curvature.slang
filter_linear1 = "true"

BLURSCALEX = "0.000000"
LOWLUMSCAN = "9.000000"
BRIGHTBOOST = "1.400000"
MASK_DARK = "0.200000"
MASK_FADE = "0.300000"
warpX = "0.011000"
warpY = "0.021000"
shadowMask = "-1.000000"
6 Likes

A post was merged into an existing topic: It’s Squabblin’ Time! dry vs blurry edition

2 posts were merged into an existing topic: It’s Squabblin’ Time! dry vs blurry edition

I love how in the middle of all this you just post this dry as hell scanlines only preset. NO mask, no controversy, lol. Looks good to me.

2 Likes

Reposting this here because I think the closeup is surprisingly good for how terrible this looks IRL on my crappy work monitor.

2 Likes

It looks like the real thing to me :nerd_face: (except some visible LCD grid in the dark areas) But I’ll trust your words that it might not look good in normal viewing distance. Given how the forum shows the images, I believe semi-closeups (probably something like 2x zoom, not 5-10x zoom) gives you the best idea about how a preset might look like in real life. Will still be noticeably different obviously depending on the quality of the image and everyone’s monitor setup but I think semi-closeups will help reduce the discrepancies between expectations and reality for the forum users.

2 Likes

It’s very easy to get even 100% mask strength to look fantastic with the latest guest-dr-venom, using mask 0. Just a few small tweaks. Cranked up scanline saturation, some post crt brightness, adjusted the glow, crank up the scanlines a bit, and some color stuff.

(the usual disclaimer about viewing things at original size definitely applies)

2 Likes

Not going to lie, I always just max out scanline saturation (I actually can’t even with the low settings for it anymore).

1 Like

yeah the expanded range really helps when you’re using obscene post crt brightness levels.

1 Like

I checked on my screen and indeed looks pretty impressive, with mask at full strength. Awesome job again @guest.r

2 Likes

I actually think the best is to have your big eye capturing screenshot and then to have a very detailed close up shot so you can actually see what’s going on and what you might actually see with the naked eye when using the preset. Also to use standard camera settings (ISO 200, 6500K, 1/60 aperture speed) as it’s difficult to know what is the camera clipping highlights and what is a preset with bloom say.

Personally I’d like to always see a comparison shot with an actual CRT but then again a lot of shaders are artistic impressions (I suppose aren’t they all to varying degrees) which a lot of people prefer so I wouldn’t go hard-line on that.

I think the photos you posted above are the closest to what I’d like to see people shift to but are still a little too far out IMO as they hide details that you see when actually viewing the shaders.

I also think we should take a leaf out of retrogamingboards 240p forum where people embrace the beauty of the phosphors (or pixels in our case):

Here’s a good example from @oscartilheiro:

5 Likes

I’ll try and do some eyeballing distance tests on my CRT tomorrow (aka when I wake up)

Ik when I used it the other night, I was still able to distinguish scanlines pretty easily at 4+ feet away from my CRT. (Which was kinda surprising no cap, mask went bye bye tho at that distance, which not a surprise)

I’d take pictures, but my cameras are too potatoe atm, or I would.

1 Like

Although you may not directly be able to distinguish the mask I’m pretty sure you’d be able to tell the difference between a screen with no mask and one with a mask from the other side of a large room - a good few meters away. Your visual system is pretty good at seeing detail from a distance even if it’s ‘averaged’ a bit and you find you can’t quite put your finger on whats different.

3 Likes

Ohh for sure, you can definitely “notice” the mask, but you can’t make any details out.

1 Like

Mask 0, and mask 0 with stagger. 100% mask strength. Guest-dr-venom, 1080p.

4 Likes

Isn’t this the same or at least very similar to Lottes just rotated? If so, won’t it suffer from some of the issues that led to the use of a rotated slot mask in Lottes in the first place?

1 Like

Are you talking about the horizontally stretched dotmask (not sure why it’s called “rotated” but whatever)?

If so, this is pretty different- hunterk has a good closeup of the stretched/rotated Lottes mask on his now-famous write-up. The “issues” as I see it would be a noticeable color shift (I think it’s green?) due to irregular subpixel spacing and noticeable black gaps between subpixels. The former is more of an issue IMO, I can never get the colors/brightness etc quite right. It’s much easier to get mask 0 looking good in terms of color/brightness (standard or staggered).

The magenta-green checkerboard avoids the issues with the stretched dotmask, it looks very legit. I was going to say that the dotmask is almost more convincing than the aperture grille because it plays nicer with the LCD grid.

3 Likes

Mask 100% strength. Bright enough?

I know this looks “dry” to some people but I’m looking for constructive, objective criticism.

shaders = "12"
shader0 = "shaders_slang/misc/grade.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/crt/shaders/guest/advanced/stock.slang"
filter_linear1 = "false"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "StockPass"
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/advanced/afterglow0.slang"
filter_linear2 = "false"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = "AfterglowPass"
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/advanced/pre-shaders-afterglow.slang"
filter_linear3 = "false"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "true"
alias3 = "PrePass"
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/advanced/avg-lum.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "true"
alias4 = "AvgLumPass"
float_framebuffer4 = "false"
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/advanced/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/advanced/gaussian_horizontal.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "true"
srgb_framebuffer6 = "false"
scale_type_x6 = "absolute"
scale_x6 = "800"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "shaders_slang/crt/shaders/guest/advanced/gaussian_vertical.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = "GlowPass"
float_framebuffer7 = "true"
srgb_framebuffer7 = "false"
scale_type_x7 = "absolute"
scale_x7 = "800"
scale_type_y7 = "absolute"
scale_y7 = "600"
shader8 = "shaders_slang/crt/shaders/guest/advanced/bloom_horizontal.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = ""
float_framebuffer8 = "true"
srgb_framebuffer8 = "false"
scale_type_x8 = "absolute"
scale_x8 = "800"
scale_type_y8 = "absolute"
scale_y8 = "600"
shader9 = "shaders_slang/crt/shaders/guest/advanced/bloom_vertical.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = "BloomPass"
float_framebuffer9 = "true"
srgb_framebuffer9 = "false"
scale_type_x9 = "source"
scale_x9 = "1.000000"
scale_type_y9 = "source"
scale_y9 = "1.000000"
shader10 = "shaders_slang/crt/shaders/guest/advanced/crt-guest-advanced.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
alias10 = ""
float_framebuffer10 = "true"
srgb_framebuffer10 = "false"
scale_type_x10 = "viewport"
scale_x10 = "1.000000"
scale_type_y10 = "viewport"
scale_y10 = "1.000000"
shader11 = "shaders_slang/crt/shaders/guest/advanced/deconvergence.slang"
filter_linear11 = "true"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = ""
float_framebuffer11 = "false"
srgb_framebuffer11 = "false"
scale_type_x11 = "viewport"
scale_x11 = "1.000000"
scale_type_y11 = "viewport"
scale_y11 = "1.000000"
g_gamma_in = "2.250000"
g_gamma_out = "2.550000"
g_crtgamut = "0.000000"
g_vignette = "0.000000"
WP = "-100.000000"
glow = "0.010000"
brightboost = "0.300000"
brightboost1 = "0.300000"
gsl = "1.000000"
beam_min = "1.500000"
beam_max = "1.500000"
beam_size = "1.000000"
scans = "1.500000"
maskstr = "1.000000"
mask_gamma = "5.000000"
mclip = "0.000000"
gamma_out = "2.000000"
post_br = "2.999999"
textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4"
SamplerLUT1 = "shaders_slang/crt/shaders/guest/advanced/lut/trinitron-lut.png"
SamplerLUT1_linear = "true"
SamplerLUT1_wrap_mode = "clamp_to_border"
SamplerLUT1_mipmap = "false"
SamplerLUT2 = "shaders_slang/crt/shaders/guest/advanced/lut/inv-trinitron-lut.png"
SamplerLUT2_linear = "true"
SamplerLUT2_wrap_mode = "clamp_to_border"
SamplerLUT2_mipmap = "false"
SamplerLUT3 = "shaders_slang/crt/shaders/guest/advanced/lut/nec-lut.png"
SamplerLUT3_linear = "true"
SamplerLUT3_wrap_mode = "clamp_to_border"
SamplerLUT3_mipmap = "false"
SamplerLUT4 = "shaders_slang/crt/shaders/guest/advanced/lut/ntsc-lut.png"
SamplerLUT4_linear = "true"
SamplerLUT4_wrap_mode = "clamp_to_border"
SamplerLUT4_mipmap = "false"

Here’s what I do to achieve a brighter image:

  • lower gamma in to 2.00;
  • a little glow (from 0 to 0,20 it’s almost invisible, especially when you crank up bloom, I use 0,30 so that the effect is visible);
  • bloom to 0,60 (I think 0,80 is the limit, anything more ruin details);
  • bloom distribution to 0,80 (I think 1 is the limit, more and the colors go BOOM, almost fluo. But 0 to 0,80 the effect is very subtle);
  • halation 0,10;
  • gamma out to 2,25;
  • post brightness to 1,10 (1,20 is the limit in my opinion, but still you’ll have a big swelling in whites).

You could also try using 0,8 bloom and no post brightness, it’s up to you. I don’t like using any other brightness boost option.

did you try the settings I posted?