Please show off what crt shaders can do!

yep now we’re slightly back to theory with the rec2020 spec since displays might peak at 90% coverage.

Ok so the grade CRT gamuts and the GDV CRT gamuts are all within rec 601?

In short, does this part of the readme for guest-dr-venom need to be revised?

"

"

@guest.r

1 Like

You could argue its technically correct as in those EBU, SMPTE-C and Rec. 709 triangles on this diagram aren’t perfectly aligned but whether you’d notice the difference is arguable. :man_shrugging: EDIT: It does look like SMPTE-C is completely contained inside rec. 709 I’d have to look at the actual numbers.

CG318-4K-color_modes

2 Likes

601 is completely within 709 afaik.

I’m confused, I think there must be something else going on.

Have you checked the x/y rgb values in the readme for guest-dr-venom to see if these are all within sRGB? Start at # CRT Color Profile #

It seems like the only ones (out of those in guest-dr-venom) that would be clipped would be the last two, the calibrated profile for Phillips CRT monitors and the calibrated profile for Sony Trinitron monitors, and it’s just the greens that are clipped…?

1 Like

sRGB is the same as rec. 709 in terms of colour primaries it only differs in the gamma curve that is applied (see the Khronos Group .pdf). I think this was because sRGB was aimed at the dektop with web pages vs 709 that was aimed at HDTV.

As for Guest-Dr-Venom I have no idea where those last two colour space matrices come from - I’m sure @guest can remember though? I’d be very interested.

2 Likes

Yeah I’m just somewhat baffled by the readme, it suggests a wide color gamut is necessary but the first 3 specs are all contained within sRGB, it’s just the “calibrated” profiles that are slightly clipped, unless I’m not reading things right. This color stuff drives me nuts, lol.

2 Likes

Color profile matrices were submitted by dr venom, other matrices were calculated from xy and color temperature specs using a calculation tool.

Color temperature matrices are relative to sRGB, but this shouldn’t matter too much since the xy transformation is neutral.

I would like to explain once more that the colorspace transformations are not absolute, but relative. They more or less produce xy primaries and color temperature shifts from what your calibration is and for best results a lut (for example) can be produced from you display’s icc profile to sRGB. DisplayCAL is a great tool for this.

Wider gamut of your monitor comes handy here as ‘gdv’ color profiles can be used with more accuracy.

4 Likes

Is this in lieu of using the color space setting? Or in addition to?

2 Likes

It’s about accuracy of color reproduction. A slightly inferior alternative would be to calibrate your display to sRGB. The problem is that various displays have different color gamuts and it’s nearly impossible to cover this from the shader.

If you use a lut which converts your exact gamut to sRGB, then, first, there is no clamping to sRGB boundries, you get sRGB as a starting point to use color profiles like P22, SMPTE-C…and very authentic color reproduction.

Edit: you can also use a lut to convert your display’s gamut to P22…directly. Currently up to 4 lut png’s are supported with gdv.

3 Likes

So the most accurate results would come from using the color profiles along with the appropriate color space on a wide gamut monitor? I’m still not clear on this part

It looks like all the coordinates given are within the sRGB color space except for the greens in the two “calibrated” profiles, is this correct? The other 3 look like they’re completely contained within the sRGB space. So is a wide gamut monitor necessary for the other 3?

Secondly, in theory, would a display calibrated to display 100% sRGB be as accurate as using a LUT to transform whatever the actual gamut is to sRGB?

Let me know if this is correct:

  1. Most accurate:
  • use a calibration device to create a LUT that turns whatever the display’s actual gamut is into 100% sRGB (I guess starting from the monitor’s built-in sRGB mode would be the thing to do?)
  • leave “display gamut” setting at default (sRGB)
  • apply any of the following CRT profiles: EBU, P22, SMPTE-C
  • if a wide color gamut CRT profile is desired (Sony or Phillips), create a LUT for the appropriate color space, then select that color space as the “display gamut” in the shader settings.
  1. Not as accurate
  • skip the LUT and just choose the color space setting that matches your display.

I’m assuming that since the changes we’re talking about are so subtle, we really want to make a LUT. Otherwise the profiles will not work as advertised.

This is another question I was about to ask but you read my mind, lol.

2 Likes

If you calibrate your display to sRGB then the minor differences between sRGB and P22…will be clamped to sRGB and not taking advantage of your display’s wider gamut. For best accuracy you should use the lut option, second is using your displays sRGB mode.

Edit: calibration device is not widely available, best and common option is to use a display specific .icc profile, which can be also used for lut generation.

2 Likes

Yo everyone, hope you’re all enjoying your day. Just dropping in to say if you downloaded my shader pack please grab it again, did a quick edit on them, you can grab it right here. As always hope you have fun

9 Likes

So I looked at the chromaticity diagrams again and sure enough, all the color profiles are ever so slightly outside of sRGB in varying ways (just like it says in the readme!). It’s not just the Sony and Phillips profile that are outside of the sRGB gamut, it’s all of the CRT profiles. It’s mostly extremely subtle but yes, you do need a wide color gamut for these to work as advertised, otherwise you’re no closer to the intended colors than if you were to just leave it at sRGB and not use a profile. In some cases it may be hard to tell the difference though… @MajorPainTheCactus please let me know if your findings don’t match up.

2 Likes

Please share with us your shader/preset, it looks absolutely authentic to crt

Will do - my wife is giving birth to our second son in the morning so the investigation may get delayed. :rofl:

7 Likes

So, a friend gave me a CRT monitor, and I honestly think I kinda hate it tbh lol.

Like maybe I need to poke around the settings some, but I don’t think it’ll fix my issue with the monitor (being it’s razor thin scanlines, that make me sad)

Besides that the image is super clean, and as a side note I’m experiencing bloom halos on black screens when colors are available, so that’s cool, like bloom halos exist on actual hardware. (So I’m not completely crazy yet)

1 Like

The scanlines should be razor sharp and thick on a CRT monitor in 240p mode. What kind of monitor is it?

1 Like

Some emachine thing, probably need to mess with MiSTer settings or something I guess. (As tbh I wasn’t paying attention to what the resolution was set at, I was just happy I won the argument of it displaying anything to begin with)

EDIT: Also I’m really tired rn and can’t be assed to look it up, but I think the 240p (mode?) on CRT monitors is only for multi-sync monitors. Like 15khz/31khz monitors, which iirc not all CRT monitors are multi-sync, btw to clarify CRT Monitors are normally 31khz, CRT TVs are 15khz, pvms/bvms are probably multi-sync if I had to guess lol.

2 Likes

Some NES shots from my simple & clean GDV-Advanced preset.

Normal :

#reference "shaders_slang/crt/crt-guest-advanced.slangp"
GAMMA_INPUT = "2.400000"
interm = "4.000000"
glow = "0.050000"
bloom = "0.050000"
bloom_dist = "0.050000"
halation = "0.050000"
gsl = "-1.000000"
scanline2 = "6.000000"
warpX = "0.030000"
warpY = "0.040000"
csize = "0.080000"
bsize1 = "0.250000"
shadowMask = "-1.000000"
slotmask = "0.300000"
slotmask1 = "0.700000"
slotwidth = "1.000000"
gamma_out = "2.200000"
deconrr = "1.000000"
deconrb = "-1.000000"
deconrry = "1.000000"
deconrby = "-1.000000"

NTSC :

#reference "shaders_slang/crt/crt-guest-advanced-ntsc.slangp"
GAMMA_INPUT = "2.400000"
interm = "4.000000"
glow = "0.100000"
bloom = "0.100000"
bloom_dist = "0.100000"
halation = "0.100000"
gsl = "-1.000000"
scanline2 = "6.000000"
warpX = "0.030000"
warpY = "0.040000"
csize = "0.080000"
bsize1 = "0.250000"
shadowMask = "-1.000000"
slotmask = "0.300000"
slotmask1 = "0.700000"
slotwidth = "1.000000"
gamma_out = "2.200000"
deconrr = "1.000000"
deconrb = "-1.000000"
deconrry = "1.000000"
deconrby = "-1.000000"
9 Likes
  • VGA PC monitors are usually 31 Khz only with very rare exceptions, scanline 240p can be achieved by doubling refresh rate to 120 Hz.

  • For other CRT monitors it depends on what systems they were meant for. E.g. older PC monitors are 15 Khz (CGA). EGA required 15/21 Khz for all graphics modes, so a suitable monitor is at least sort of limited multi-sync. True Multisync is more of a thing with Japanese systems (mostly the X68000) and some European Acorn machines.

  • PVMs/BVMS are rarely multi-sync, too.

Standard CRT TVs are 15 Khz, HD AND 100Hz Tvs are not.

5 Likes

Just sharing a few shots from my recent preset pack updates.

CyberLab SNES (MDAPT Off)

CyberLab SNES

CyberLab SNES

CyberLab SNES (MDAPT Off)

5 Likes