New CRT shader from Guest + CRT Guest Advanced updates

This makes me both happy and sad.

1 Like

@guest.r Soooo I re-read you post, and you said;

“Mr. @Syh mentioned interlacing with crt-guest-dr-venom, but i’m rather testing some approaches with this shader, because it’s more simple to add.”

Does this mean we may possibly get interlacing or w/e with crt-guest-dr-venom eventually after you’ve tested and found a method you like for this?

1 Like

@Nesguy very nice screenie! I also like the ‘cubic’ filtering effect, it’s very fast also, couple of tweaks in addition to the standard filter.

@Syh: yes, it’s in the works. But before i’d like to have some feedback on the interlacing implementation. Personaly, i like it as it is, a bit softer with some temporal smoothing. Crt-guest-dr-venom will be retweaked for some higher resolution content and updated if you guys concur.

1 Like

@guest.r

Is it possible to add a third option to the “smart integer Y scaling”?

0 = off
1 = scales to largest size where all of the image is still visible
2 = overscans the image

For example, on a 1080p display, if the output size is 240 pixels high, you’d get 1200 pixels high with option 2, which would result in some overscan while still displaying the entire “CRT safe area” (just like on an actual CRT!).

All of the examples I’ve posted are 5x vertical scale with some overscan.

3 Likes

I like the version of smart integer scaling found in crt-guest-dr-venom, @guest.r . Can you please consider including it in crt-guest-sm? FYI I use slang.

1 Like

Been thinking about it also, but it’s a per-frame situation, not ony per-game one.

At output resolution, hundreds of pixels would need to be checked for a decent solution and the results could be strange, stretching and shrinking the image in different situations.

For more even scanlines my vertical downsampler could be useful, among some solutions i checked this was the most useful one. :sweat_smile:

@c9f5fdda06

Heya there, i might add the both smart scaling options. I avoided it because i wanted an optimized shader, but why not.

5 Likes

Noticed that the Scanline Shape Center and Edges parameters don’t seem to do anything for scanline type 2. I assume it’s meant like that?

1 Like

Yeah, default settings are different for type 2 and the desired shape is hard-coded into the scanline function. Scanline beam altering depending on pixel brightness still work trough parameters though. It would mean no great deal to “fix” this though…

I like the shape of type 2. If the extra configurability (Shape center and edges) can be applied without losing any of the currect characteristics than that would be nice, but otherwise I’m fine with it. Don’t fix it if it aint broken :slight_smile:

1 Like

@guest.r

Scanline type 0, by far the most accurate type for the aperture grille masks, looks perfect with brighter content. However, now I’m playing Resident Evil 2 and it looks a bit too dark. What’s the best way to get brighter highlights while maintaining the overall scanline shape and variation? Then again, RE2 is a very dark game and the display I’m using has pretty mediocre picture quality to begin with, so it could just come down to that.

EDIT: nvm, it’s just the crappy display I’m using :stuck_out_tongue:

1 Like

@guest.r

I was wondering if it would be possible to integrate any of this into the shader- specifically, the part about how the pixel brightness depends on the preceding pixels in the raster scan. It would be awesome if we could vary the spot shape/size based on actual CRT behavior. I love how the current shader looks, but for the sake of accuracy it would be nice if the spot shape variation was based on something empirical. This might require an entirely new shader; I don’t know.

Looks like there’s a lot of good info here:

2 Likes

You should increase “brightboost - dark” parameter much over 1.5, and help with gamma. I posted a version above with scanline cutoff ability which should compensate for increased scanline brightness and reshape it back to a thinner form. Otherwise you should be ok by using some scanline shaping parameters and again use cutoff to a degree.

I was wondering if it would be possible to integrate any of this into the shader- specifically, the part about how the pixel brightness depends on the preceding pixels in the raster scan. It would be awesome if we could vary the spot shape/size based on actual CRT behavior. I love how the current shader looks, but for the sake of accuracy it would be nice if the spot shape variation was based on something empirical. This might require an entirely new shader; I don’t know.

Something like this is already in use by various crt shaders by using horizontal intepolation (in linear space) and edge coloring effects, where pixel brightness depends on it’s neighbour pixels. To be more specific, it needs to be a visual noticable effect to be able to reproduce it, again only visually. :grin:

2 Likes

Recently i’ve been working on a new official release candidate for the crt-guest-sm shader. It’s got a lot of new options, suggestions have been considered. Nothing that worked nice was changed. The performance is now similar to crt-guest-dr-venom. No GLSL release though…i’m also very pleased with the fast option there.

I’m also very fond about that vertical games can look nicer with new ‘native’ TATE mode which rotates the image before processing. Core auto rotation must be turned off in core options though. Now for example fb-neo can be used for vertical games without issues. I don’t want to go into details, but the built-in after rotaion smears masks and scanlines with crt shaders, otherwise it’s very ok.

As i mentioned, lot’s of features added, don’t wan’t to spoil though. :grinning: As it turned out before my drivers are quite ressilient regarding some tricks i used and maybe other setups might have issues. It would be cool if these are reported if you try the shader.

Shader can be downloaded by the link below: https://mega.nz/#!wwwgiaza!373j0iOL_R7kCcdrtmJqh2sRjsUk5KKegLHHK9AE7V4

3 Likes

Meh, not much you can do with the crappy display I’m using. :stuck_out_tongue: It’ll be time to upgrade sometime within the next year. I’ve been holding off because I’ve got my eye on one of the Samsung QLED TVs, which would replace my current Panasonic Plasma. It’s just really hard to let the Panny go because of how fantastic it looks for movies and modern games. It’s only 7 years old, and they don’t make Plasma TVs anymore… almost seems like a crime to get rid of it.

I’ve found that I’m getting the best results possible by disabling the bright boost altogether, and then lowering the mask strength until the brightness is acceptable. As you can see below, the mask strength has to come down quite a bit! Current method:

  1. disable bright boost
  2. adjust scanline center and scanline edges to max
  3. adjust backlight to maximum
  4. adjust gamma until inner bars of PLUGE are barely visible
  5. set beam min to 1.3 and beam max to 1.0 (brightens it up a bit while maintaining beam variation)
  6. set mask bright AND mask dark to a reasonable level that results in an adequately bright image. A light meter and/or some simple math helps, here.

Here’s where I landed (again, this is on a display with ~350 nits with the backlight maxed out).

shaders = "2"
shader0 = "shaders_glsl/crt/shaders/guest/d65-d50.glsl"
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_glsl/crt/shaders/guest/crt-guest-sm.glsl"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = ""
float_framebuffer1 = "false"
srgb_framebuffer1 = "false"
parameters = "WP;wp_saturation;smart;brightboost1;brightboost2;stype;scanline1;scanline2;beam_min;beam_max;cutoff;s_beam;cubic;h_sharp;mask;maskmode;maskdark;maskbright;masksize;gamma_out"
WP = "0.000000"
wp_saturation = "1.000000"
smart = "0.000000"
brightboost1 = "1.000000"
brightboost2 = "1.000000"
stype = "0.000000"
scanline1 = "14.000000"
scanline2 = "16.000000"
beam_min = "1.400000"
beam_max = "1.100000"
cutoff = "0.000000"
s_beam = "0.000000"
cubic = "0.000000"
h_sharp = "4.599999"
mask = "0.000000"
maskmode = "0.000000"
maskdark = "0.500000"
maskbright = "0.500000"
masksize = "1.000000"
gamma_out = "2.800000"
2 Likes

This looks great, no issues on my AMD GPU in Win10. I’ll try linux+Intel later. Tons of cool features :slight_smile:

2 Likes

Thanks @hunterk for testing. :upside_down_face: I’d also like to mention that scanline smoothing slows the shader down like 30% and it should run faster with this off, if running on an Intel igpu.

Edit:

I corrected some stuff in the shader, think this should be the final release as it seems to be working.

First viewport-y scale can be changed for speedup to 1.0, scanline smoothing won’t activate, but integer scaling should do nice.

Bloom effect was brought into proportions and better shaped. It works nice in scenarios where the overall image is darker since this shader applies stronger scanlines and masks in this situation with some/defaul settings. Glow works better with other types of graphics, like low color arcade etc.

Download link: https://mega.nz/#!QpQVjAQT!3wlnWgB-73T27qfynjGUh03fFljuf3witRLq7tuvr1c

5 Likes

Looks good :handshake:

https://pasteboard.co/IQzsFVgS.png

2 Likes

Hey! These scanlines look really like i imagined they could. :grin:

Showing off a bit of new features:

Bloom:

TATE:

8 Likes

Scanlines and bloom are amazing!

Really impressed by that bloom, my god.

2 Likes

@guest.r The bloom is really good ! We can get really good brightness and visible mask with your shader while keeping good saturation.

Screenshots without glow,to see how much the bloom is good.

1.https://pasteboard.co/IQBfYli.png

2.https://pasteboard.co/IQBfCDj.png

2 Likes