You need to actually sample the texture somewhere and call it ‘conColor’. Put this line right above the //overscan mask line: vec3 conColor = texture(Source, vTexCoord).rgb;
still working on it guys, don’t worry. I’m gonna release the new version in both formats, cg and slang.
and here we go. without further ado, here is the new version in slang and cg!
still need to do some code cleanup and create some of the other presets.
here are the noteworthy changes:
- completely redesigned the weight function which determines the strength of an interpolation candidate. with it scalefx is now able to interpolate anti-aliased edges and at the same time limits itself in a smart way, so you can pretty much crank up the threshold value without creating much artifacts.
(due to the now more advanced weight function I needed to make use of full float frame buffers for the first two passes. if this should be a problem I could merge the first three passes together, which would result in a bigger kernel though and would have an impact on performance)
in hybrid mode ScaleFX and reverseAA are more intertwined now which minimizes the artifacts seen in previous versions. for the first time this should be a real option for games with prerendered graphics.
another thing: with the hybrid-preset ScaleFX is automatically DISabling the new “Filter AA” option, which is really the only time you wanna deactivate it. this way reverseAA can handle AA edges while ScaleFX is handling the rest. when using ScaleFX on its own, you wanna leave this option enabled.
new option “Filter Corners”. pixel corners that are not part of a staircase pattern can be left alone by disabling this option. this way the image is overall less smooth and rounded which one might prefer.
and here is an example of the hybrid mode in action:
whoa, that looks really great O_O
I’ll update the repo ASAP. I look forward to playing around with it!
here are some examples in motion.
Damn this looks gorgeous! Now I am struggling in the decision of whether keep using my old-school CRT looks, or switch to this eyegasm setting.
I have all my shaders setup in presets to resolve this problem.
That way I get everything set up by ‘connection’ type.
RF Composite S-Video RGB Component HDMI
Most of those are favorites from the analogue shader pack
I use this Scale3nx as my HDMI preset though lol
Alright, should be up-to-date in the repos. I moved the old shaders and presets into scalefx/shaders/old, in case anyone depended on them for presets.
Thanks! Does the retroarch exe need to be updated again from 2 months ago in order to use (just got out of the slammer)? And Games like Final Fantasy 9 have flickering pixels on the video credits screen. Has that issue been solved (not a big deal though)?
Oof, sucks about the jailtime. Welcome back
You shouldn’t need to update RetroArch, I don’t think, but you’ll want to update your shaders via the online updater.
I doubt the pixel flickering has changed but it’s worth checking, I guess.
Thanks I’m having trouble telling from the pics which is the best version of scalefx with the updates. What visual differences does hybrid have over the original? I’ve wondered that for quite some time.
Hybrid is better for blended/antialiased stuff (think: PS1 background images), while regular is better for hard-edged cartoony stuff, like Super Mario Bros.
Ahh, ok. I see now. Thanks!
I’ve updated some of my scalefx presets (located in the cgp folder). New scalefx version is really better, congrats spookyfox for the great work.
I have also became a fan of the Hyllian’s jinc shader, gives a very nice touch to the colors.
shaders = 8 shader0 = ../scalefx/shaders/scalefx-pass0.cg filter_linear0 = false scale_type0 = source scale0 = 1.0 float_framebuffer0 = true shader1 = ../scalefx/shaders/scalefx-pass1.cg filter_linear1 = false scale_type1 = source scale1 = 1.0 float_framebuffer1 = true shader2 = ../scalefx/shaders/scalefx-pass2.cg filter_linear2 = false scale_type2 = source scale2 = 1.0 shader3 = ../scalefx/shaders/scalefx-pass3.cg filter_linear3 = false scale_type3 = source scale3 = 1.0 shader4 = ../scalefx/shaders/scalefx-pass4.cg filter_linear4 = false scale_type4 = source scale4 = 3.0 shader5 = ../stock.cg filter_linear5 = false scale_type5 = source scale5 = 2.0 shader6 = ../anti-aliasing/shaders/aa-shader-4.o-level2/aa-shader-4.o-level2-pass1.cg filter_linear6 = true scale_type6 = source scale6 = 1.0 shader7 = ../anti-aliasing/shaders/aa-shader-4.o-level2/aa-shader-4.o-level2-pass2.cg filter_linear7 = true scale_type7 = source scale7 = 1.0 parameters = "SFX_CLR;SFX_SAA" SFX_SAA = 0.00 SFX_CLR = 0.60
shaders = 10 shader0 = ../windowed/shaders/jinc2-sharper.cg filter_linear0 = false scale_type0 = source scale0 = 1.0 shader1 = ../scalefx/shaders/scalefx-pass0.cg filter_linear1 = false scale_type1 = source scale1 = 1.0 float_framebuffer1 = true shader2 = ../scalefx/shaders/scalefx-pass1.cg filter_linear2 = false scale_type2 = source scale2 = 1.0 float_framebuffer2 = true shader3 = ../scalefx/shaders/scalefx-pass2.cg filter_linear3 = false scale_type3 = source scale3 = 1.0 shader4 = ../scalefx/shaders/scalefx-pass3.cg filter_linear4 = false scale_type4 = source scale4 = 1.0 shader5 = ../scalefx/shaders/scalefx-pass4.cg filter_linear5 = false scale_type5 = source scale5 = 3.0 shader6 = ../blurs/sharpsmoother.cg filter_linear6 = false scale_type6 = source scale6 = 1.0 shader7 = ../stock.cg filter_linear7 = false scale_type7 = source scale7 = 2.0 shader8 = ../anti-aliasing/shaders/aa-shader-4.o-level2/aa-shader-4.o-level2-pass1.cg filter_linear8 = true scale_type8 = source scale8 = 1.0 shader9 = ../anti-aliasing/shaders/aa-shader-4.o-level2/aa-shader-4.o-level2-pass2.cg filter_linear9 = true scale_type9 = source scale9 = 1.0 parameters = "JINC2_AR_STRENGTH;JINC2_WINDOW_SINC;JINC2_SINC;SFX_SAA;SFX_CLR" JINC2_AR_STRENGTH = 0.30 JINC2_WINDOW_SINC = 0.55 JINC2_SINC = 0.95 SFX_SAA = 0.00 SFX_CLR = 0.60
Yeah, JINC is really interesting. It works really well for texture filtering in cores, since it’s fast and simple, but it really makes a nice difference compared with bilinear or nearest.
EDIT: FYI, I got these presets (and the missing shaders they use) converted to glsl and slang formats and pushed up to their respective repos.
Cheers and tyvm!
The hybrid version also looks awesome with some games, it’s worth exploring it’s potential:
I will explore some scalefx9-hybrid combos, maybe they’ll look very nice. It’s definitely much better then the old hybrid.
thanks! I’m still not that happy with some artifacts that occur with the hybrid-combination. scalefx and reverseAA don’t perfectly mix. I though about a postpass reverseAA variant that works on the already upscaled image but I haven’t came up with a good solution.still definitely better than the previous versioin. and I’d use some blur or smooth filter anyways in the case of using hybrid.
can anything be done shader wise with scalefx x9 with vulkan and psx beetle core to prevent retroarch from crashing when rez is set above x1?
In case anybody is wondering I’ve confirmed that this shader works on a Snapdragon 625 powered Android phone at full speed.