One of my favorite things about these new pixel killer shaders… They look great with GBA games!
SFII, WoW
They are beautiful, with fantastic colors and shadows…
Was that used in gba a vanilla preset or ypu made some tweaks? Asking because I don’t remember one with core-sized green magenta phosphors, (but that means nothing :))
Looking good, btw!
Kakashi preset seems to need some love on the sharp side; do you agree? I could just tweak it in place or make a sharp variation.
So it’s not just me!
Indeed, I found the colors to be very balanced too.
Somehow pushing the mask to a deeper level and balancing that with an input gain did some magic i need to investigate, unfortunately moire on curvature still plagues it (sf2 is unaffected by nature, lol)
Yesterday I merged that new ultramask parameter amd that preset to:
presets-ng/Safe-to-use/Monitor-ScreenLevel_Hmask-Corelevel_SlotMask-Overmask.slangp
Four things I learned about dealing with moire patterns:
-
Lighten Scanlines or Lighten Mask until it goes away.
-
Increase TVL (lower Mask Size) until it goes away.
-
Having more pixels can help too. So the lower the resolution, the higher the TVL/lower the Mask size needed to be rendered properly without moire.
-
Scaling - Integer Scaling helps. If using non-Integer Scaling, then there would be a sweetspot probably equivalent to or close to the Integer Scale value where the moire patterns will be least visible or invisible.
I know about those tricks, but they all imply compromises and tradeoffs, so I want to think to new approaches to the problem.
ultramask preset has no visibe moire, but just because it carries the even/odd staggering workaround on the whole picture; moire plagues it in that sense.
Wanna try at least to get a moire map/mask to be used to apply mitigations (lighter mask, veftical staggering) locally/where needed so that at least the big part of the look is preserved.
That, along the other gazillion things piling up
We can always count on you to think outside the box.
I think it was pgrid-naked-slotmask-for-1080p-Hinnits-experimental. I changed the mask to 2 or 3.
Kakashi is sharp enough for me. I made it unsharp on purpose to see dracula’s eyes blend together.
Ah got it, if I remember right, it uses screen coords, zoomed; you can have perfect match by zooming it to 1 and switch from screen to core coords.
Some explainations on the latest commits:
-
In the glow section there was once a logic that for sharp values near 0.0 would automatically set the sharpening/blur radius according to the parameter of the glow spread amount.
Sounds complicated? I agree, ditched. If you ever used that feature, now you need to set the blur radius, I think it is not a big deal, code and workflow are simpler. -
Since the halo is applied later in the chain, it depends on the input signal gain you set earlier, this was the default behaviour, but now there is an option in the halo section, named Pre-attenuate input signal gain to 1x that does exactly that, it applies the halo to the un-gained image; you may want to prefer that to avoid cascading effects, so that halo power stay the same and does not depend on the input gain anymore.
-
Halo itself gained an output gamma control, leave it to 1.0 to get the old behaviour.
Edit-
Also, i would like to share this little trick i just found:
The mask used is green magenta, this gives higher TVL, but since the phosphor are staggered by deconvergence, you can actually still see r,g and b, neat!
rgb overlapped to position x=0, staggering r and b to the opposite position y +/- 0.60, mask done with 2 slots, second empty, so rgb are vertically aligned lol:
So, what would those settings look like in the shader preset?
Sorry too much cryptic.
in phosphor grid-> Horizontal mask:
mask type preset set to manual (0.0)
“mask done with 2 slots”
…means phosphors gap count set to 2
“rgb overlapped to position x=0” and "“second empty”
…means r,g and b phosphors position set to 0.0
“second empty”
…means nothing goes outside that, all to 0.0.
“staggering r and b to the opposite position y +/- 0.60”
…means deconvergence y r set to -0.6 and deconvergence y b set to +0.6
Many thanks.
30 char…
I did not understand how to do it I will wait for the update lol
It is not difficult, set the mask preset to 0 (manual), then set the mask size to 2, then manually set the horizontal phosphors position (all of them, r,g,b) to 0.0, so that at position 0, you have rgb overlapped and at position 1 you have a blank space:
If you set something like this, instead, you would have green at first position 0 and r+b overlapped at position 1.
Now, when you enable the vertical devconvergence in the scanline section:
You are staggering the phosphors, so while they still are on the same x position, they do not fully overlap anymore over the y position, because red goes slighlty up and blue down.
This is the result of the second example, green lies alone on his 0.0 position, while blue and red shares the position one, vertical overlapping slightly:
Glow sharpness x/y parameters now can go down to -2.0; this allow you to go to a full unsharp setting instead of blurring, which could came handy…
…if you want to cheat and use FXAA
The following pictures are indeed using FXAA, but his blurriness is reverted with glow x and set to -1.05
glow y set to -1.05 too to help with vertical sharpening:
Monitor-FXAA-sharp-Aperturegrille.slangp
Newbie question: what is the difference between the various ntsc presets (e.g., tv-NTSC-1 vs tv-NTSC-2)? Tks, this is awesome shader!
Thanks,
Ntsc artifacts emulation is nowhere complete, it is good for Megadrive emulation, but lacks for other systems. NTSC-2 is meant to look better (although not accurate), for snes and friends.
The effect is this:
vs this:
This one blends artifacts more: tv-NTSC-1-selective.slangp
While this is the new work in progress preset (found in WIP subdirectory in dev builds) which selectively blurs artifacts and uses antialiasing, meant to look good, not accurate:
presets-ng/WIP/Tv-NTSC-Selective-Balanced.slangp
Underlying vignette implementation has been switched from length()+smoothstep() to a dumber cos(x)*cos(y), which looks the same, but is a bit faster.
However custom presets needs to be updated, please divide vignette size by 2.5.
So that if you used, say, 3.0 as vignette size, set it now to 3.0/2.5 = 1.2
Thanks to @oldpainless for providing the base preset which is the base for this new one:
Monitor-Screen_Hmask_Overlapped-oldpainless.slangp
It overlaps and y-staggers phosphors; this mask configuration has also turned into a preset parameter here, number 7, wx, means white(r+g+b)+gap:
Also, an excuse to show some Amiga games