Sony Megatron Colour Video Monitor

You’re absolutely right the first is my shader and the second is my PVM. Well done! 10 house points to all those who guessed correctly, spend them wisely.

So one thing I’ve changed in this shader is to use a mask that is: red, green, blue, black and let the HDR brightness make up for the darker overall image compared to the brighter but less accurate mask of red, yellow, cyan, blue.

I think this a better compromise for my 600TVL PVM than either RGB or RYCB masks as it gives the right shape to the phosphors and right density and arguably even a more correct layout as the PVM does seem to have a more prominent wire between each phosphor triad although my eyes might be making that up.

What is really off in my photos at least is the colour - I don’t think this is true in person BUT the reds are wrong in my shader for this comparison.

Also @Nesguy that’s a really great observation on the bleed. Just so I’ve got what you’re saying is right you are talking about the blue phosphors in his shield being overly elongated in the y direction?

@HyperspaceMadness no these images aren’t with the same ISO and shutter speed. I need to understand my phone’s pro mode better to see if I can use the same on both. It doesn’t work at all at the moment but that’s prob because my LCD is 120hz and my CRT is 60hz. I’ll post some more screenshots once I’ve got this done correctly.

@Cyber, @hunterk thanks for your detailed replies on curvature this is my next experiment - I’ve got plenty of questions for you as I’m still trying to get this all straight in my head.


Great confidence to put your shaders to the test like that!

This is very interesting. I wonder if this is something that @guest.r might consider adding to CRT-guest-advanced as this layout might be a better match for RGBW OLED Displays. It might also be an improvement for my 1440p Optimized Presets (which use RYCB) as well.

I’ve been able to achieve some acceptable (at least to my eyes) results using the standard RGB mask at full strength plus full strength scanlines in terms of brightness without HDR by using a touch of halation.

No problem, I’m glad this has finally been acknowledged and gotten the attention it deserves, so hopefully we’ll see some further development and improvements over the current implementations further down the road.


Exactly. In some cases you’ll see the phosphors extend completely over the black lines and form a solid vertical line with no gaps, it depends on a number of factors but in general the higher TVL Trinitrons don’t do this as much. On some lower TVL Trinitrons this effect is so pronounced that it looks like there aren’t any scanlines at all in parts of the image that are very bright.

Whatever effect is desired, it can be achieved by adjusting the maximum allowed beam width.


So here’s another try this time with exactly the same camera parameters (@HyperspaceMadness ): ISO 100, WB 3510K, Aperture Speed 1/60 and trying to get the focus as good as possible (at about 10cm from the screen or so).

I’ve tweaked the values in my shader a bit again but I kind of think I need different curves for the different channels.

One obvious thing to note is that I’ve maxed out my monitors brightness (700 cd/m2) and its way darker than my CRT! I think I’m going to need a bigger boat (brighter LCD - QD-OLED!?!).

Also I seem to be getting more reds in his green jacket - hmm not sure where this is coming from!


Because in your TV probably Green is more towards red, like olive green, while in PVM is close to blueish green. Probably Trinitron has different color temperature, more cold. If you look closely also hat has less red than your TV. And another, in the face, Trinitron has equal red and green but your tv red is about 2:1 (more warm).


Is this using Red, green, blue, black (RGBX)?

Maybe another shot using red, yellow, cyan, blue (RYCB) is in order.

RGBX is a 25% reduction in brightness compared to RYCB.

I’m not able to distinguish any black vertical lines separating the phosphors in the real CRT shot.

I think this is already at the point where you could fool even some dedicated CRT enthusiasts. Should post in some CRT forums and see if anyone notices.


Yes I totally agree with this and in fact the 240p test app is probably the best thing to use when trying to accurately replicate an actual CRT.

I do think this is key in getting the next level in realism as when I look at my CRT every part of the screen is subtly different which in turn enriches the resultant image.

1 Like

Yes I should tweak my monitors colour settings but I do want to add proper colour balance to the shader. I have a feeling possibly the transform into HDR10 space is doing it. In any case I need to add some proper colour balance tools.

1 Like

Unfortunately, it isn’t :frowning:

I wish there was a way to do what we’re doing here on a RGBW display because otherwise OLED is much closer to how a CRT works than any backlit display.

Let’s say we find a way to shut off the white subpixel. Then RGBX looks like this


It’s a mess, unfortunately. There’s also no way to shut off the white subpixel on an OLED AFAIK and even if you could it would wreck the brightness of the image.

If we leave the white subpixel on, we get this:


Still a mess.





Yes it’s using RGBX as I find RYCB gives the wrong shape to the phosphors on a 4k screen as in they’re too fat.

I think I can help things a smidgen by doing better with the scan line curves. As you can see in the above image my scanlines are much narrower. I’ve had an idea how to get a more accurate shape to my scanlines.


Yes that’s definitely true. An unfortunate compromise.

Yes I agree, wider maximum beam width would help, along with some color tweaks.


Yup QD-OLED display later this year really are the way to go here I think. They hopefully will have the brightness and rgb triad to do what we want.

How much they cost is another question… Also I’ve only just bought a new monitor. :rofl::sob::rofl:


Yes I need to put in some proper colour grading tools to my shader. First scanline curves, then colour grading, then screen curvature. Lots to do and nearly zero spare time to do it. Oh well I’m finding it lots of fun thinking about it between.


Just a little bit of time in photoshop really closes the gap, I think:

That’s with the color temp moved to ~9300, the exposure increased until it was roughly the same brightness as the CRT shot and a tiny amount of linear motion blur on the y axis to smudge out the pixel grid.

Looking at it, I think the minimum beam width is about right and the maximum beam width is about right, but it’s the in-between that’s a little smaller than it should be. Perhaps the beam width to luminance relationship is more nonlinear than we expect?


Great work! Thanks that’s a brilliant way to calibrate it. Right so I definitely need to add a white balance control to my shader (but can probably adjust my monitor in the mean time).

I’m using a guassian distribution for my scanlines and I need to move to a cubic bezier to get more control over it (as I’ve already done in the horizontal axis). I’ll definitely do this over the next week or so and post back the results.


hmm, gaussian usually looks the most natural to me, so I would have figured that’d be the way to go. Have you tried doing it in linear gamma?


9 posts were split to a new topic: OLED subpixels. How do they work?

Yes I forgot about that and it’s also something I’ve been meaning to do! Put this all into linear space by sandwiching it in between the inverse tonemapper and hdr10 shaders. I’ll try that first and see where it gets us.

However I’m not sure a Gaussian has the steep falloff we need, I’m not sure a 1D cubic bezier has either but it might be better as we can control it more.


Hello, where I can download the shader?

Thanks in advance.

1 Like

It’s included with the latest release in the