While i was trying to do something that could look similar to the screen to handheld devices, i ended up with something other.
With this new “Low level Phosphor grid”, one can shape single r,g,b phosphors, by deciding how they grow in width and height.
This function superseeds and is NOT compatible with any other mask option already in place like rgb masks, aperture grille, slot mask or scanlines, but, being able to draw phosphors on core coordinates (to emulate handheld devices screens) or screen coordinates, you can effectively emulate scanlines and aperture grille screens with good, if not better, results.
This is an handleld screen that looks like a dot matrix screen because you can choose how “tight” the phosphors are, and in the following screen there is maximum tightness, which results in them to blend each other and gice a rounded look.
pgrid1.slangp
In the following image, i lowered the “tightness” of the phosphors and removed any luminosity boost feature; you should be able to see how phosphors morph, and probably it would even look good if you burn your oled screen:
pgrid2.slangp
When drawing phosphors on core coordinates, they have the size of the source pixel, not the size of the screen one.
I thought it would come handy a function to multiply and divide the phosphor size by an integer value, and in the next screen you can see how it looks when dividing the X size by 2.
I suspect that it would look on 4k display, but i couldn’t tried that.
pgrid2.slangp
(with size divider)
In this picture, the phosphors are still at core resolution, and to my surprise they look good even when emulating arcade games.
Note that no scanline function has been used, just the new pixelgrid function. the scanline gaps are not drawn at all. you see them because the phosphors shape changes depending on the pixel luminosity.
pgrid3.slangp
This is what happens when leaving the y resolution at core size (you see scanlines), but you set the x resolution to screen size (you see something like aperture grille):
pgrid4.slangp
…finally the final result i was working for, handhelds screen emulation; in the following shot the integer scaling has been set to 5x:
pgrid7.slangp
…there are other presets i added to the development repo, all named pgrid*.slangp for you to try and for which i forgot to take a screenshot.
What do you think?