I just hate the moire that you inevitably get when using curvature. No good way to solve it.
So, with a CRT, you ideally want a 90-degree angle of incidence (I think that’s the term?) of the electron beam hitting the phosphor array for a number of reasons (sharpness, convergence, etc), and the curved surface helps with this as you move further from the center of the screen–which the gun hits perfectly without any steering.
However, nobody wants to see the curve because it looks bad, so you use pincushioning to correct for the barreling. This results in the image looking flat (ideally) at the cost of not using the entire surface. This is most noticeable at the cardinal directions, but it’s mostly covered up by bezel and overscan.
You can see some of it (and still some barreling) in this shot from my arcade cab.
So, yeah, the effects we typically make in shaders are what you would see on uncorrected CRTs and/or very small ones where you want to maximize the visible area at the cost of reduced correction.
Maybe after proper geometry distortion correction moire patterns might go away. I remember that being the case on computer monitors as moire patterns were “a thing” that I experienced particularly during adjustment time when switching to new resolutions for the first time.
Just a quick update on the latest version of my shader which one is the PVM? (Hopefully @Nesguy will like the pixel close up?)
Ok I’m sure for you pro’s its easy but its getting close, no? There are many things a bit off but its not bad.
I’m no pro but I’m guessing that the 1st image is your Shader and the second is the real PVM. It’s extremely close in that both look pretty similar in many respects, plus the limitations of photography might conceal some of the differences. It’s great that they both seem to do what we want them to do to the pixels. I have my reasons for my selection.
It definitely wasn’t easy for me to pick which one.
Very cool, getting close, I love the side by side
Do you use the same fstop/aperture for the pictures?
Yes, very nice! With some tweaking I think it will be indistinguishable from the real thing. Getting very close.
One characteristic of Trinitron displays is that the individual phosphors will sometimes bleed completely over the scanlines (check out the blues in Link’s shield). I managed to capture this effect in my SoM shot; check out the reds. This is something you see on pretty much all Trinitrons except for BVMs. I think it makes for an even more dynamic and interesting image. This can be very easily achieved with some adjustment to the scanlines.
I like the little bit of deconvergence you added, too.
Sharpness seems a tad high compared to the real thing, but that’s easily fixed with some very slight gaussian blur.
Also, happy to see that no trace of the LCD pixel grid is visible in the shot of the LCD, that kills the illusion.
Excellent work.
Here’s a photo illustrating the phosphor bleed over scanlines, you can see it in the reds.
I didn’t see your picks @HyperspaceMadness & @Nesguy. Which is which? Before @MajorPainTheCactus gives us the answer.
1st one is the LCD based on the phosphor dynamics and edge sharpness.
Also if you look very closely there’s a bit of roughness to the phosphors in the first photo, owing to the lcd pixel structure, whereas the real phosphors are completely smooth. It’s very subtle.
It’s very impressive overall.
Here is a shot from my Sony Trinitron, as good as it gets with a cellphone camera. Nintendo Wii driving the Trinitron with an RGB scart. RetroArch and snes9x
I noticed these two qualities as well, however the first one has a more intense glow and saturation. The image is also slightly more smeared and out of focus which can easily be mistaken for analog bleeding and blending.
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.
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.
Unfortunately, it isn’t
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
RxxxxGxxxxBxRxxxxGxxxxBxRxxxxGxxxxBxRxxxxGxxxxBx
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:
RxxWxGxWxxBWRxxWxGxWxxBWRxxWxGxWxxBW
Still a mess.
RYCB:
RxxWRGxWxGBWxxBWRxxWRGxWxGBWxxBWRxxWRGxWxGBWxxBW
etc…