Thanks for all this it’s fantastic to have your wealth of knowledge to help me get up to speed. Ok I’ll have a read of these links and further my understanding of it. My biggest problem is that I don’t have access to an OLED to test ideas out on.
I’m merely a spectator in most of the discussions by the much more learned folks around here that I’ve linked to but I would have read and remembered plus I have my own experience with my OLED TV which (unfortunately?) is down at the moment. The thing with me is that I tend to remember things.
I’m no shader creation expert like yourself but perhaps you can experiment with a greyscale version of whatever RGB Mask you currently use and see if it looks as it should on your display and TV? Remember to assess it at a normal viewing distance as well as close-up.
I’m sure the growing OLED user community would appreciate your efforts in this regard.
I personally don’t see what would be gained by adding the BW mask to this shader. The experience for OLED users wouldn’t be any better than what GDV already offers, unless I’m missing something.
I think this is probably likely. The way this shader works to use individual lcd sub-pixel elements to light up per shader pixel would probably be undone by having a BW mask. With a BW mask you don’t use the lcd sub pixels and each lcd element would be outputting red, green and blue, rather than individual lcd sub elements.
Small adjustment to Horizontal Sharpness: 1.9, Horizontal Attack: 0.9 makes the horizontal accuracy slightly better but its still not quite there. Maybe I need to split out the horizontal attributes into the three channel beams, like I did for the vertical channels (probably).
CRT Photo: OnePlus 8 Pro Camera: Pro Mode, ISO 100, WB 5000K, Aperture Speed 1/60, about 10cm from the screen, 48MPixel JPEG.
LCD Photo: OnePlus 8 Pro Camera: Pro Mode, ISO 200, WB 5000K, Aperture Speed 1/60, about 10cm from the screen, 48MPixel JPEG.
That’s really fantastic. Nothing more to say
Yes split the channels, my god split the channels, I’m always for splitting the channels
Ik I sound facetious but fr, split the channels, it’s easier to dial in subtle effects this way imho
I’ve got to say, this is really fantastic!
The magic 8 ball is telling me there is a PVM HDR shader integrated in the Mega Bezel in the near future
I would be humbled - that would be absolutely amazing!
I do feel like I’m going on a bit and you’re right channels is the way to go!
I hear you (and @Cyber) but it might be trying to hit a square peg through a round hole as @Nesguy says. I will try to understand it though as tbh I still don’t know how this WOLED mask works.
To my understanding, it’s just a grey mask. Just different shades of grey, to not make the subpixels mad I guess. (via artifacting?)
It’s the same as an already existing mask we use, it’s just grey instead of “colors”
The simplistic way to think of it imo, is as an “rgb-neutral mask pattern overlay”.
Toggling the RGB/BGR doesn’t appear to change anything for me. The image looks dull not matter what I tweak but I’m guessing it’s because the RGB/BGR is not changing for me.
You’re absolutely right I’ve broken it. I’ll get a fix to you asap. However I’m not sure changing to BGR is going to fix dullness. You haven’t got a close up picture of your display for me so I might be able to see what’s going on?
Have you considered expanding the scope of the shader to include other subpixel-accurate masks?
We can get a subpixel-accurate dotmask pattern using this pattern. This is the type of mask used in the vast majority of crt computer monitors.
The holy grail for a lot of folks is the slotmask crt, used in all arcade monitors and the vast majority of televisions. It’s the hardest one to emulate, unfortunately.
At 4K, the closest we can get is this pattern, which greatly exaggerates the horizontal black space between triads:
It’s really going to take 8K to do this in a way that approaches the accuracy seen in your HDR PVM shader.
(All images taken from @hunterk’s fantastic write-up here)
Now I’m wondering if there’s a slotmask based on RGBX that might work at 4K.
There’s phosphor layout 11 in the subpixel function, which is just:
rgbx
bxrg
or, 2 offset layers of the rgbx mask. It’s known as delta_1_4x1_rgb in the mame mask pngs. (for the record, I don’t know why it’s named like that because it’s clearly 4x2)
EDIT: maybe try the TATE mask, too:
{green, magenta, green, magenta},
{black, blue, green, red},
{green, magenta, green, magenta},
{green, red, black, blue}
So I obviously missed a thread/post. What is RGBX?
EDIT: Nevermind, I think it means RGBK(black) or RYCB
Ok right I think I’m done!
I broke out the horizontal axis attributes into channels and tried matching up how they merge into the blacks. After a while this becomes a game of whack a mole as I think the resolutions don’t quite match up and so what you gain on one side of the black pixels you lose on the other. This isn’t progressing much in terms of accuracy and there are other things to look at with all this like the masks and colours again.
I’ve checked this into GitHub as v2.2.
CRT Photo: OnePlus 8 Pro Camera: Pro Mode, ISO 100, WB 5000K, Aperture Speed 1/60, about 10cm from the screen, 48MPixel JPEG.
LCD Photo: OnePlus 8 Pro Camera: Pro Mode, ISO 200, WB 5000K, Aperture Speed 1/60, about 10cm from the screen, 48MPixel JPEG.