nVidia's FXAA mode (anti-aliasing)

Discussion in 'Videocards - NVIDIA GeForce Drivers Section' started by TheHunter, Jul 20, 2011.

  1. utilizer

    utilizer Member

    Messages:
    40
    Likes Received:
    0
    GPU:
    MSI 660GTX Twin Frozr OC
    It appears that NVIDIA FXAA less blurry with 306.23 drivers. I notice that as well. But maybe i'm wrong....can anybody confirm this?
     
  2. XRyche

    XRyche Member

    Messages:
    19
    Likes Received:
    0
    GPU:
    MSI AMD R7 265 OC 2GB
    It looks less blurry to me as well, but........it looks like they just cut down on the intensity of the blur and didn't really actually improve it. SMAA still trumps FXAA as far as I'm concerned.
     
  3. CeeJay.dk

    CeeJay.dk Master Guru

    Messages:
    689
    Likes Received:
    8
    GPU:
    Radeon 6870
    Pattern 8 uses the same convolution kernel as pattern 2, only it uses 9 point samples to do this, instead of the 5 linear samples that pattern 2 uses.
    It's not really that slow .. only slower in comparison to pattern 2.

    They *should* produce the exact same result, and in SweetFX (using the InjectSMAA injector) they do.
    In MPC-HC they do not .. or at least they did not, because I suspect that this problem might have been fixed in the latest MPC-HC. Try upgrading MPC-HC and compare the two patterns.

    Pattern 9 uses the same kernel as pattern 4, but again is slower for the same reason.

    I created pattern 8 and 9 because I suspected that they might work better for MPC-HC.

    If you were wondering what pattern 32 and pattern 33 are - they are comparisons between the other filters - I calculate 2 patterns and subtract one from the other and then display the difference.
    No difference is black and the brighter the pixel the bigger the difference.

    I was trying to find the best strength modifiers to make pattern 1 and 3 be as close as possible in strength to pattern 2.

    I often like to implement something more than once so I can compare the solutions.
    Especially if I'm trying to find a faster implementation of something.
    I take the result of the old implementation and subtract the result of my new (hopefully faster) implementation and if I see a completely black result then I know there was no difference in the output. It's a sanity check

    The different luma coefficients in the developer settings calculate the luma (grey) acording to different color spaces.

    It has nothing to do with 6 vs 8 bit monitors.
     
  4. Valken

    Valken Ancient Guru

    Messages:
    1,715
    Likes Received:
    178
    GPU:
    Forsa 1060 3GB Temp GPU
    Love this injector. I am using your black_mesa settings only with sharpen and vibrance for now. I turned off SMAA and use Radeon Pro to force 8xEQAA with SSAA on. Looks incredible but drops down to 30 FPS with my setup.
     

  5. Mineria

    Mineria Ancient Guru

    Messages:
    4,228
    Likes Received:
    136
    GPU:
    Asus RTX 2080 Super
    By creating a symbolic link to the dll, you can then link to any dx dll version with just a link.
    If the user chooses to use another version the app can check for and remove any current link and replace it with a new one too.
    Just needs a bit more coding with some if/else checks or a case switch.
    Code:
    namespace ConsoleApplication
    {
        class Program
        {
            [DllImport("kernel32.dll")]
            static extern bool CreateSymbolicLink(
            string lpSymlinkFileName, string lpTargetFileName, int dwFlags);
    
            static void Main(string[] args)
            {
                string symbolicLink = @"c:\somegame\d3d9.dll";
                string fileName = @"c:\sweetfx\d3d9.dll";
    
                using (var writer = File.CreateText(fileName))
                {
                    writer.WriteLine("d3d9 symboliclink added");
                }
    
                CreateSymbolicLink(symbolicLink, fileName, 0);
            }
        }
    }
    
    Although, it would be even better to inject it as a driver that checks an ini for games that the user want's to use sweetfx upon.
     
    Last edited: Sep 17, 2012
  6. CeeJay.dk

    CeeJay.dk Master Guru

    Messages:
    689
    Likes Received:
    8
    GPU:
    Radeon 6870
    You could do that now, without a GUI to create the symbolic links, but I fear that it might be confusing to a lot of users.
    Copying files they understand, and as long as the injector and it's files take up so little space it's no big deal with an install for each game.

    It would be better to have a tool to create symbolic links for all the superfluous directx redistributables that seem to follow every game these days - or maybe just delete them. Those things take up over 100mb each.

    EDIT : BTW did you notice that Peter Thoman aka Durante just released the source code for dsfix - his Dark Souls specific injector?
    If that could be made to work with all directx9 games and not just Dark Souls that could be very interesting.
    As you've probably gathered the current InjectSMAA limits me in many ways.

    I've never programmed an injector before and have very little experience with C however I had no experience with hlsl until last December, and I think I've come pretty far already.
     
    Last edited: Sep 18, 2012
  7. butterwaach

    butterwaach Master Guru

    Messages:
    848
    Likes Received:
    5
    GPU:
    ASUS ROG STRIX 3080
    is it possible to run sweetfx with world of warcraft? i played around with it a little but didn't manage to achieve any results. could it be because i'm using the 64bit client (but then again trying the 32bit client didn't change anything)

    best regards and thx for the help :)
     
  8. Mineria

    Mineria Ancient Guru

    Messages:
    4,228
    Likes Received:
    136
    GPU:
    Asus RTX 2080 Super
    I might get some time to look at it in a few weeks.
    I didn't look much into how you arranged sweetfx, is it far from fxaa injection tool?
    If not it shouldn't take me long to add a GUI either.
     
  9. TFL Replica

    TFL Replica Master Guru

    Messages:
    384
    Likes Received:
    2
    GPU:
    NVIDIA GTX 970
    SweetFX_settings.txt is very similar to injFxaaSettings.h, a lot of the variable names are the same.
     
  10. METAVISOR

    METAVISOR Member

    Messages:
    20
    Likes Received:
    0
    GPU:
    R7850 MSI Twin Frozer /oc
    Hi all....
    Can be used with movies?Windows media player?im using it in l4d,crysis 1&2,dead space,arma2,darksiders,metro2033,GTA4,dolphin(wii emulator)smaa injector most,tried SweetFX but lumasharp is to "sharp"for my taste can it be lowered?
    im am a big fan of Enbseries too, Smaa Injector+Enbseries=awesome!:banana:
    thanks to everyone developing these(fxaa,smaa injector,SweetFX) for us the gamer BIG thank you.:rock:
     
    Last edited: Sep 18, 2012

  11. CeeJay.dk

    CeeJay.dk Master Guru

    Messages:
    689
    Likes Received:
    8
    GPU:
    Radeon 6870
    I've deliberately kept it very similar to FXAA injection tool, because it would make it much easier to port effects from one to the other, in case you or someone else wanted to collaborate with me.

    The new shaders and new function have new variables naturally, but the rest of the variable names are the same (I've changed some of the code behind them though, but the names have not been touched.)
     
  12. CeeJay.dk

    CeeJay.dk Master Guru

    Messages:
    689
    Likes Received:
    8
    GPU:
    Radeon 6870
    I have only tried to get an earlier version of lumasharpen (before SweetFX existed) to work with VLC , without luck. VLC have been updated many times since then so maybe it could be made to work now. A way to make it use Direct3D is needed though.

    I have not tried to use another media player with the injector - it might work - it might not.

    I have however ported Vibrance and Lumasharpen to work directly in Media Player Classic - Home Cinema using it's support for shaders.
    See the posts between XRyche and myself earlier in this thread. The ported shaders are here

    The default settings for LumaSharpen are too sharp for my taste too. The strength is set a little high, so people using high resolutions wouldn't complain that they didn't see any difference.

    To lower it:
    1) Open settings
    2) Find the LumaSharpen section
    3) Lower the sharp_strength value
    4) Save the settings

    I'm currently playing Black Mesa with a sharp_strength of 0.5
     
  13. CeeJay.dk

    CeeJay.dk Master Guru

    Messages:
    689
    Likes Received:
    8
    GPU:
    Radeon 6870
    I don't have WoW installed but I looked other other peoples experiences with other shader injectors and found the solution.

    1) Install SweetFX to the main World of Warcraft directory (the is the normal way to install SweetFX)
    2) Run the 32bit client
    3) Set Multisampling to 1x on this screen

    DX9 or DX11 is up to you - SweetFX works with both. Wow should run faster in DX11 but the only way to be sure is to benchmark it.
     
  14. lowenz

    lowenz Master Guru

    Messages:
    309
    Likes Received:
    3
    GPU:
    GeForce GTX 750Ti
    As the "old" SMAA, SweetFX doesn't work with STALKER Clear Sky and STALKER Call of Pripyat (either with DX9 rendering path)

    Any solutions for the future?
     
  15. Prag

    Prag Master Guru

    Messages:
    253
    Likes Received:
    0
    GPU:
    MSI GTX 780 TwinFrozr
    Is Timothy Lottes still working on FXAA 4?
     

  16. TFL Replica

    TFL Replica Master Guru

    Messages:
    384
    Likes Received:
    2
    GPU:
    NVIDIA GTX 970
    Copy dlls to the bin folder and put everything else in the main folder.
     
  17. CeeJay.dk

    CeeJay.dk Master Guru

    Messages:
    689
    Likes Received:
    8
    GPU:
    Radeon 6870
    injector.ini always goes in the same directory as the dlls.
     
  18. CeeJay.dk

    CeeJay.dk Master Guru

    Messages:
    689
    Likes Received:
    8
    GPU:
    Radeon 6870
    No he has abandoned that.
     
  19. XRyche

    XRyche Member

    Messages:
    19
    Likes Received:
    0
    GPU:
    MSI AMD R7 265 OC 2GB

    Ah, i understand now. I am using JanWilliem32 "MPC-HC tester builds for internal renderer fixes" last relatively stable release , which is deviated from MPC-HC 5050, as my default player.

    I mentioned the bit depth of my monitor since 6 and 7 bit monitors would just dither up to full RGB.

    Anyway I was wondering if you could perhaps modify your vibrance shader to dynamically modify contrast like you have for saturation. Nvidia has a feature that's called "Digital Vibrance" that does just that. The only problem is that it does it for everything (desktop, video player, applications...everything). Needless to say it can be very distracting when running general applications and such. Nvidia has similar features just to use for video but it has no affect when outputting RGB. I would guess you could probably do the contrast similarly to the way you have done the saturation.

    Sorry for talking video on a primarily gaming forum.
     
    Last edited: Sep 20, 2012
  20. AUTh0r1ty

    AUTh0r1ty Member

    Messages:
    10
    Likes Received:
    0
    GPU:
    nvidia 680
    @CeeJay.dk
    I think that the SweetFX Injector deserves it's own thread. Would be great to have always the latest version/changelog in the first post.

    How do you feel about that? :)
     

Share This Page