A little guide to preset setting tweaking will be very helpful (noob friendly)
I was trying the various interlaced modes a bit, looks great, and noticed that “Scanline Saturation” (param.scans) doesn’t seem to do anything when interlaced mode is active. Is that right?
For consistency when games switch in and out of interlace I would love if the scans parameter would work the same in interlaced modes as in normal mode.
Tested with the “hires” shader btw, maybe that makes a difference.
I second this request tbh, consistency is important tbh.
There is some bad news also, namely if i use the same parameter as for scanline saturation, then it will show up only under interlacing options, because this shader is prior in the chain. A separate parameter is an option otoh.
That wouldn’t be too much of an issue, imho anyway.
I do think some scanline settings for the interlacing modes could be interesting, but the interlacing code hurts my head so idk the feasibility of that.
A separate parameter wouldn’t be a real issue for me either.
New Release Version (14.05.2021-r1):
Notable changes:
- Interlacing saturation option added.
- Deconvergence codepath enable bug fixed, parameter step adjustments
Download link:
https://mega.nz/file/0o5nAC7D#JGMb6KPuiG14dMygXK5hkcuLEBSIeB9LbAiBCXoI1pw
Hi I was trying this out and the Horizontal deconvergence seems to be working, but the vertical doesn’t
Here’s what I mean, here’s the horizontal convergence
And here’s the Vertical
It’s fixed now. Vertical deconvergence worked only in you also added a notch of horizontal deconvergence to trigger the codepath. Stilly a silly bug.
I have been playing a bit with a new fast curvature function, but it looks like more opinions could be helpful. Compared with quadratic curvature in ‘GDV’ this one does a bit more curving on edges.
Old:
Experimental:
Anyway, here is the experimental warp function:
vec2 Warp(vec2 pos)
{
pos = pos*2.0-1.0;
pos = mix(pos, vec2(pos.x/sqrt(1.0-0.5*pos.y*pos.y), pos.y/sqrt(1.0-0.5*pos.x*pos.x)), vec2(warpX,warpY));
return pos*0.5 + 0.5;
}
Parameter range has to be increased though due slower curving.
I like that new one much better. And just a mix() and a sqrt() is very impressive!
I think it can be optimized a bit further:
vec2 Warp(vec2 pos)
{
pos = pos*2.0-1.0;
pos = vec2(pos.x/sqrt(1.0-pos.y*pos.y*warpX), pos.y/sqrt(1.0-pos.x*pos.x*warpY));
return pos*0.5 + 0.5;
}
It can be quite radial with increased settings:
I prefer the new curvature too.
New Release Version (17.05.2021-r1):
Notable changes:
- New curvature implementation, another parameter added for shape control.
- Vignette parameter range and defaults tweaks.
- Some code cleanup.
Download link:
https://mega.nz/file/8lhUWaJT#crlu9kbcvc6AF0c9v9RD5hMrGyzeNnsEp96bIlEq7L0
This is really nice I like the more rounded results, great stuff!
Is there a way to make the mask (mask 0 and 7) darker over bright pixels and lighter over dark pixels? This might be more accurate/might look good, I think.
A similar approach is used in the shader, it’s got an extra parameter though for ‘curve progression’. The deficit of many fast implementation can be that when the curve is adjusted it tends to bend the edges, leaving the middle more or less almost linear.
It can be done with masks 5 (can look same as 0), 6 and 7 if you adjust the ‘low strength’ to like 0.30 and increase the mask ‘0, 5-8 strength’ to like 0.70.
The parameters guest mentioned above aren’t in the Mega bezel, could they be added?
Hi, these are from GDV-Advanced, which isn’t integrated yet. So when it’s in, these parameters will be in too.