I recently looked into hyllians warp shaders. they have a nice effect but what I didn’t liked is that with dilation the picture often looks like it is overexposed. so I made a adaptive version of it.
ok, let me explain first how the morphing works. one looks at the neighborhood of a pixel E (including itself) and determines the brightest (or darkest) one X which then replaces E. instead of doing that we interpolate them both based on their luma difference. here is a quick screenshot comparison, original picture uses xbr-hybrid + ddt (original, sp00kyfox, hyllian):
there are several parameters to change the strength of the effect, you can also set it to behave like hyllian’s variant. here is a gallery in full resolution, check out the graph which explains the user parameters (which are also commentated in code):
download: common-shaders repository
recommended shader combination:
2xbr-hybrid-v5-gamma (nearest, 2x) ddt-extended (nearest, 2x) smart-morph (nearest, 1x)