Dege wrote on 2023-05-24, 19:40:Thanks! […]
Show full quote
vlbastos wrote on 2023-05-24, 01:08:Hello! First of all, thank you very much for this excellent wrapper! It solves SO MANY problems with DX9 games and ReShade, it's […]
Show full quote
Hello! First of all, thank you very much for this excellent wrapper! It solves SO MANY problems with DX9 games and ReShade, it's a real life saver! Now all my pre-DX11 games are DX11 games! 🤣
I would like to suggest a new form of antialiasing: proper SSAA with SMAA all-in-one combo.
I know you can set dgVoodoo to a custom resolution (like 2x), and it kinda works like a SSAA . I tested with Prince of Persia: Warrior Within, and things looked way jaggier than it should: maybe it's missing a better downsampling method? I wouldn't know, I can't code shaders and wrappers and such. And I know you can get SMAA from ReShade, which by the way got even better with the newest Marty McFly shader (iMMERSE SMAA).
BUT, what about getting this method of antialiasing instead:
1. render internally at 2x resolution
2. apply SMAA in the internal 2x image
3. downsample it with a good algorithm
That would be the best quality possible for antialiasing, I think. And I think no one did it before, you could be the first! 😉
Thanks!
Well, it's something that could already be done with the D3D12 output. Ok, you said you're not a programmer, but there is a Sample addon for dgVoodoo that hooks and alters the output. 😀
It could be modified to apply SMAA with an alternate downsampling algorithm to the internally scaled 2x resolution image.
As for SMAA and shaders like that, I'm not that familiar with them, so I could just copy-paste the shader code from somewhere either, but that's not my style.
But anyway, I might do it (I mean, the addon) sometime and so it could be tested at least.
Will definitely try to do something with it. Found the topic, will take a look. Also, there is mrhaandi's injectSMAA, which I think might work as well. Do you know any way I can take a screenshot of the internal resolution image before the downsampling? That would help evaluate the usefulness of SMAA in a 3840 x 2160 image. From my head, I think it would eliminate ANY leftover jaggie in a resolution so high.
EDIT: forget about SMAA, I just tested Warrior Within @ 3840 x 2160 in my 4k TV. The winner is: FXAA with preprocessor quality preset 39 (ReShade shader). SMAA takes about 0.950ms in 4k, FXAA 39 takes 1ms. Here are the comparison screenshots:
original.png
iMMERSE SMAA.png
FXAA 39.png
iMMERSE SMAA+FXAA 39.png
In this scene, there's virtually no difference between SMAA+FXAA and FXAA only. Had to test with the original DX9 renderer, because dgVoodoo2 was giving me a textureless-white-washed render, dunno why. It works in 1080p.
So, after rendering internally @ 4k and applying FXAA 39, that would be the best image quality for a downsample, which would remove ANY jaggies in the final result. I know, downsampling from 4k-only virtually removes all jaggies, but we can see in those screenshots that if you zoom hard enough, you still can see improvement with FXAA/SMAA turned on.
About the texture blurring of post processing/temporal antialiasing methods: proper SMAA doesn't blur like the other methods. Even FXAA, if set with a high enough quality, won't blur that much: you can test it with ReShade's own old FXAA method (EDIT: set preprocessing FXAA_QUALITY__PRESET variable to 39, and the blur will be almost non existant). You can get an overkill antialiasing method in ReShade turning on SMAA and FXAA at the same time (SMAA first, FXAA after). It does work, performance hit is minimal (EDIT: on 1080p: both SMAA and FXAA are only 0.350ms or so each, total about 0.700ms), and you won't notice any blurring unless you're looking really, really hard. Also, this blurring can be easily countered with iMMERSE Sharpen or AdaptiveSharpen (great sharp shader, but old and obsolete now after iMMERSE). SMAA+FXAA first, sharpen after.