SweetFX Shader Suite release and discussion thread #4

Discussion in 'Games, Gaming & Game-demos' started by CeeJay.dk, Sep 30, 2013.

Thread Status:
Not open for further replies.
  1. Galahir950

    Galahir950 Guest

    Messages:
    1
    Likes Received:
    0
    GPU:
    Kingston XMP 8GB 1600MHz
    What value in the "Vibrance.h" File would I need to change to increase the amount of saturation it can do? I boosted it all the way in the Preset file, but there is only a little difference.

    EDIT: Ignore this, I was not using the Configure program and for some reason, my changes wouldnt show up. I fixed it.
     
    Last edited: Feb 26, 2014
  2. Zomgerd

    Zomgerd Guest

    Messages:
    304
    Likes Received:
    0
    GPU:
    Asus R9 280X DC2T
    I'll say partial support, the eFX injector is still alpha and the porting to that injector is not complete nor up to date far as I recall. eFX injector is also hit or miss on if it works with a given title. The only full support for sweetFX available is RadeonPro's implementation.
     
  3. -Tj-

    -Tj- Ancient Guru

    Messages:
    18,097
    Likes Received:
    2,603
    GPU:
    3080TI iChill Black
    what does this mean

    full path: D:\Steam\steamapps\common\Resident Evil 6\
    redirecting CreateDevice
    initialising shader environment
    redirecting CreateDevice
    initialising shader environment
    D3DXCreateEffectFromFile failed
    D:\Steam\steamapps\common\Resident Evil 6\resource\d3d9.fx(39,10): error X1507: failed to open source file: 'SweetFX_preset.txt'


    I tested a few sweet fx 1.5 versions (wanted Cromatic FX) and none appear to be working anymore, 1.4 also.

    Before I had some v1.4 for SMAA, sharpen and that worked but now I can't find it anymore:eyes:
     
  4. K-putt

    K-putt Guest

    Messages:
    472
    Likes Received:
    0
    GPU:
    GTX 1080Ti
    "failed to open source file: 'SweetFX_preset.txt"

    Are you sure you've put the settings file in the right place?
     

  5. vejn

    vejn Maha Guru

    Messages:
    1,002
    Likes Received:
    0
    GPU:
    MSI 7870 TF3
    How to change keyboard shortcuts for Printscreen, Delete,Insert and Pause in Bolotaur's version of Swfx Injector 20130601?
    I'm using other injector for Dark Souls and now they are overlaping.
    I want to change it.
    Also how to use FXAA with this version and which are best settings?
     
    Last edited: Feb 27, 2014
  6. JPulowski

    JPulowski Guest

    Messages:
    84
    Likes Received:
    0
    GPU:
    NVIDIA GeForce GTX 690
    In order to change keybindings open up SweetFX_settings.txt with a text editor. At the end of the file there is a section named Key settings:
    Code:
       /*-----------------------------------------------------------.
      /                  Key settings                               /
      '-----------------------------------------------------------*/
    // This is the section where you can define your own key mapping
    // See the following URL to find out what keycode a key has:
    // http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes
    
    // key_toggle_sweetfx = 45 ; 45 = Einfg
    // key_screenshot     = 35 ; 35 = Ende->
    // key_reload_sweetfx = 46 ; 46 = Entf
    Then you can change it by following instructions.

    Also as far as I know there are no optimal settings, just activate FXAA then change the values until you like what you see. I couldn't find it right now but some time ago K-putt has shared his personal settings for FXAA, you might also want to take a look at them.

    Edit: BTW, CeeJay I have a question. Is it possible to integrate some madVR features such as debanding and upsampling into SweetFX/eFX? I think they are just some custom shaders, right?
     
    Last edited: Feb 27, 2014
  7. -Tj-

    -Tj- Ancient Guru

    Messages:
    18,097
    Likes Received:
    2,603
    GPU:
    3080TI iChill Black
    That's the error with 1.5.x, its in base folder by the rest (shaders fx, 2 files in resource folder)
    [​IMG]


    Edit:

    With v 1.4 I had to move all sweetFX txt and whole sweetFX folder to resources directory and all ok now

    hm, but with
    SweetFX version: 1.5/Boulotaur2024 Injector. +Chromatic Aberration Shader.

    I get this when I enable Chromatic

    [18:06:46] Redirecting CreateDevice : successful (width: 1920, height: 1080)
    [18:06:46] Initializing SMAA (width: 1920, height: 1080)...
    [18:06:46] Unable to load 'SMAA_DX9.fx': Main.h(87,14): error X1507: failed to open source file: 'SweetFX\Shaders\ChromaticAberration.h'


    Edit2: ok nvm i used std 1.5.1 version with injector files and then added chromatic extra in shaders folder + by settings txt.
    [​IMG]
    :)
     
    Last edited: Feb 27, 2014
  8. BornDownUnder

    BornDownUnder Guest

    Messages:
    4
    Likes Received:
    0
    GPU:
    6970 2GB @ 950/1475
    Any idea for Elder Scrolls Online Beta? The game is 32-bit, dx11.

    I've tried 1.4, 1.5, 1.5.1 to no avail...

    It chains successfully, starts to initialize smaa then the game hangs, no error in log file, no error other than dxgi.dll error reported by game itself.

    Would post sweetfx log file though it literally just starts to initialize smaa then nothing else in the log file.

    As for the error output by the game itself it just points to dxgi.dll as the source of the crash, whichever version of sweetfx is used.
     
  9. kasper93

    kasper93 Guest

    Messages:
    53
    Likes Received:
    1
    GPU:
    Radeon R9 390
    If someone is interested here is latest LumaSharpen ported for MPC-HC :)

    Code:
    /*
    _____________________
    
    LumaSharpen 1.4.1
    _____________________
    
    by Christian Cann Schuldt Jensen ~ CeeJay.dk
    
    It blurs the original pixel with the surrounding pixels and then subtracts this blur to sharpen the image.
    It does this in luma to avoid color artifacts and allows limiting the maximum sharpning to avoid or lessen halo artifacts.
    
    This is similar to using Unsharp Mask in Photoshop.
    
    Compiles with 3.0
    */
    
    /*-----------------------------------------------------------.
    /                      User settings                          /
    '-----------------------------------------------------------*/
    
    #define sharp_strength 0.65
    #define sharp_clamp 0.035
    #define pattern 8
    #define offset_bias 1.0
    #define show_sharpen 0
    
    /*-----------------------------------------------------------.
    /                      Developer settings                     /
    '-----------------------------------------------------------*/
    #define CoefLuma float3(0.2126, 0.7152, 0.0722)      // BT.709 & sRBG luma coefficient (Monitors and HD Television)
    //#define CoefLuma float3(0.299, 0.587, 0.114)       // BT.601 luma coefficient (SD Television)
    //#define CoefLuma float3(1.0/3.0, 1.0/3.0, 1.0/3.0) // Equal weight coefficient
    
    /*-----------------------------------------------------------.
    /                          Main code                          /
    '-----------------------------------------------------------*/
    
    float4 p0 :  register(c0);
    sampler s0 : register(s0);
    
    #define px (1.0 / p0[0])
    #define py (1.0 / p0[1])
    
    float4 main(float2 tex : TEXCOORD0) : COLOR0
    {
        // -- Get the original pixel --
        float3 ori = tex2D(s0, tex).rgb;       // ori = original pixel
        float4 inputcolor = tex2D(s0, tex);
    
            // -- Combining the strength and luma multipliers --
            float3 sharp_strength_luma = (CoefLuma * sharp_strength); //I'll be combining even more multipliers with it later on
    
            /*-----------------------------------------------------------.
            /                       Sampling patterns                     /
            '-----------------------------------------------------------*/
            //   [ NW,   , NE ] Each texture lookup (except ori)
            //   [   ,ori,    ] samples 4 pixels
            //   [ SW,   , SE ]
    
            // -- Pattern 1 -- A (fast) 7 tap gaussian using only 2+1 texture fetches.
    #if pattern == 1
    
            // -- Gaussian filter --
            //   [ 1/9, 2/9,    ]     [ 1 , 2 ,   ]
            //   [ 2/9, 8/9, 2/9]  =  [ 2 , 8 , 2 ]
            //   [    , 2/9, 1/9]     [   , 2 , 1 ]
    
            float3 blur_ori = tex2D(s0, tex + (float2(px, py) / 3.0) * offset_bias).rgb;  // North West
            blur_ori += tex2D(s0, tex + (float2(-px, -py) / 3.0) * offset_bias).rgb; // South East
    
        //blur_ori += tex2D(s0, tex + float2(px,py) / 3.0 * offset_bias); // North East
        //blur_ori += tex2D(s0, tex + float2(-px,-py) / 3.0 * offset_bias); // South West
    
        blur_ori /= 2;  //Divide by the number of texture fetches
    
        sharp_strength_luma *= 1.5; // Adjust strength to aproximate the strength of pattern 2
    
    #endif
    
        // -- Pattern 2 -- A 9 tap gaussian using 4+1 texture fetches.
    #if pattern == 2
    
        // -- Gaussian filter --
        //   [ .25, .50, .25]     [ 1 , 2 , 1 ]
        //   [ .50,   1, .50]  =  [ 2 , 4 , 2 ]
        //   [ .25, .50, .25]     [ 1 , 2 , 1 ]
    
    
        float3 blur_ori = tex2D(s0, tex + float2(px, -py) * 0.5 * offset_bias).rgb; // South East
            blur_ori += tex2D(s0, tex + float2(-px, -py) * 0.5 * offset_bias).rgb;  // South West
        blur_ori += tex2D(s0, tex + float2(px, py) * 0.5 * offset_bias).rgb; // North East
        blur_ori += tex2D(s0, tex + float2(-px, py) * 0.5 * offset_bias).rgb; // North West
    
        blur_ori *= 0.25;  // ( /= 4) Divide by the number of texture fetches
    
    #endif
    
        // -- Pattern 3 -- An experimental 17 tap gaussian using 4+1 texture fetches.
    #if pattern == 3
    
        // -- Gaussian filter --
        //   [   , 4 , 6 ,   ,   ]
        //   [   ,16 ,24 ,16 , 4 ]
        //   [ 6 ,24 ,   ,24 , 6 ]
        //   [ 4 ,16 ,24 ,16 ,   ]
        //   [   ,   , 6 , 4 ,   ]
    
        float3 blur_ori = tex2D(s0, tex + float2(0.4*px, -1.2*py)* offset_bias).rgb;  // South South East
            blur_ori += tex2D(s0, tex + float2(-1.2*px, -0.4*py) * offset_bias).rgb; // West South West
        blur_ori += tex2D(s0, tex + float2(1.2*px, 0.4*py) * offset_bias).rgb; // East North East
        blur_ori += tex2D(s0, tex + float2(-0.4*px, 1.2*py) * offset_bias).rgb; // North North West
    
        blur_ori *= 0.25;  // ( /= 4) Divide by the number of texture fetches
    
        sharp_strength_luma *= 0.51;
    #endif
    
        // -- Pattern 4 -- A 9 tap high pass (pyramid filter) using 4+1 texture fetches.
    #if pattern == 4
    
        // -- Gaussian filter --
        //   [ .50, .50, .50]     [ 1 , 1 , 1 ]
        //   [ .50,    , .50]  =  [ 1 ,   , 1 ]
        //   [ .50, .50, .50]     [ 1 , 1 , 1 ]
    
        float3 blur_ori = tex2D(s0, tex + float2(0.5 * px, -py * offset_bias)).rgb;  // South South East
            blur_ori += tex2D(s0, tex + float2(offset_bias * -px, 0.5 * -py)).rgb; // West South West
        blur_ori += tex2D(s0, tex + float2(offset_bias * px, 0.5 * py)).rgb; // East North East
        blur_ori += tex2D(s0, tex + float2(0.5 * -px, py * offset_bias)).rgb; // North North West
    
        //blur_ori += (2 * ori); // Probably not needed. Only serves to lessen the effect.
    
        blur_ori /= 4.0;  //Divide by the number of texture fetches
    
        sharp_strength_luma *= 0.666; // Adjust strength to aproximate the strength of pattern 2
    #endif
    
        // -- Pattern 8 -- A (slower) 9 tap gaussian using 9 texture fetches.
    #if pattern == 8
    
        // -- Gaussian filter --
        //   [ 1 , 2 , 1 ]
        //   [ 2 , 4 , 2 ]
        //   [ 1 , 2 , 1 ]
    
        half3 blur_ori = tex2D(s0, tex + float2(-px, py) * offset_bias).rgb; // North West
            blur_ori += tex2D(s0, tex + float2(px, -py) * offset_bias).rgb;     // South East
        blur_ori += tex2D(s0, tex + float2(-px, -py)  * offset_bias).rgb;  // South West
        blur_ori += tex2D(s0, tex + float2(px, py) * offset_bias).rgb;    // North East
    
        half3 blur_ori2 = tex2D(s0, tex + float2(0, py) * offset_bias).rgb; // North
            blur_ori2 += tex2D(s0, tex + float2(0, -py) * offset_bias).rgb;    // South
        blur_ori2 += tex2D(s0, tex + float2(-px, 0) * offset_bias).rgb;   // West
        blur_ori2 += tex2D(s0, tex + float2(px, 0) * offset_bias).rgb;   // East
        blur_ori2 *= 2.0;
    
        blur_ori += blur_ori2;
        blur_ori += (ori * 4); // Probably not needed. Only serves to lessen the effect.
    
        // dot()s with gaussian strengths here?
    
        blur_ori /= 16.0;  //Divide by the number of texture fetches
    
        //sharp_strength_luma *= 0.75; // Adjust strength to aproximate the strength of pattern 2
    #endif
    
        // -- Pattern 9 -- A (slower) 9 tap high pass using 9 texture fetches.
    #if pattern == 9
    
        // -- Gaussian filter --
        //   [ 1 , 1 , 1 ]
        //   [ 1 , 1 , 1 ]
        //   [ 1 , 1 , 1 ]
    
        float3 blur_ori = tex2D(s0, tex + float2(-px, py) * offset_bias).rgb; // North West
            blur_ori += tex2D(s0, tex + float2(px, -py) * offset_bias).rgb;     // South East
        blur_ori += tex2D(s0, tex + float2(-px, -py)  * offset_bias).rgb;  // South West
        blur_ori += tex2D(s0, tex + float2(px, py) * offset_bias).rgb;    // North East
    
        blur_ori += ori.rgb; // Probably not needed. Only serves to lessen the effect.
    
        blur_ori += tex2D(s0, tex + float2(0, py) * offset_bias).rgb;    // North
        blur_ori += tex2D(s0, tex + float2(0, -py) * offset_bias).rgb;  // South
        blur_ori += tex2D(s0, tex + float2(-px, 0) * offset_bias).rgb; // West
        blur_ori += tex2D(s0, tex + float2(px, 0) * offset_bias).rgb; // East
    
        blur_ori /= 9;  //Divide by the number of texture fetches
    
        //sharp_strength_luma *= (8.0/9.0); // Adjust strength to aproximate the strength of pattern 2
    #endif
    
    
        /*-----------------------------------------------------------.
        /                            Sharpen                          /
        '-----------------------------------------------------------*/
    
        // -- Calculate the sharpening --
        float3 sharp = ori - blur_ori;  //Subtracting the blurred image from the original image
    
    #if 0 //New experimental limiter .. not yet finished
            float sharp_luma = dot(sharp, sharp_strength_luma); //Calculate the luma
        sharp_luma = (abs(sharp_luma)*8.0) * exp(1.0 - (abs(sharp_luma)*8.0)) * sign(sharp_luma) / 16.0; //I should probably move the strength modifier here
    
    #elif 0 //SweetFX 1.4 code
            // -- Adjust strength of the sharpening --
            float sharp_luma = dot(sharp, sharp_strength_luma); //Calculate the luma and adjust the strength
    
        // -- Clamping the maximum amount of sharpening to prevent halo artifacts --
        sharp_luma = clamp(sharp_luma, -sharp_clamp, sharp_clamp);  //TODO Try a curve function instead of a clamp
    
    #else //SweetFX 1.5.1 code
            // -- Adjust strength of the sharpening and clamp it--
            float4 sharp_strength_luma_clamp = float4(sharp_strength_luma * (0.5 / sharp_clamp), 0.5); //Roll part of the clamp into the dot
    
            //sharp_luma = saturate((0.5 / sharp_clamp) * sharp_luma + 0.5); //scale up and clamp
            float sharp_luma = saturate(dot(float4(sharp, 1.0), sharp_strength_luma_clamp)); //Calculate the luma, adjust the strength, scale up and clamp
        sharp_luma = (sharp_clamp * 2.0) * sharp_luma - sharp_clamp; //scale down
    #endif
    
        // -- Combining the values to get the final sharpened pixel	--
        //float4 done = ori + sharp_luma;    // Add the sharpening to the original.
        inputcolor.rgb = inputcolor.rgb + sharp_luma;    // Add the sharpening to the input color.
    
        /*-----------------------------------------------------------.
        /                     Returning the output                    /
        '-----------------------------------------------------------*/
    #if show_sharpen == 1
        //inputcolor.rgb = abs(sharp * 4.0);
        inputcolor.rgb = saturate(0.5 + (sharp_luma * 4)).rrr;
    #endif
    
        return saturate(inputcolor);
    }
     
    Last edited: Feb 28, 2014
  10. BetA

    BetA Ancient Guru

    Messages:
    4,526
    Likes Received:
    479
    GPU:
    G1-GTX980@1400Mhz
    hmmm, interesting..
    did u test it?
    with madvr?

    is it better then "sharpenComplex2" or is it even?

    greetz BetA
     

  11. Amazerath

    Amazerath Guest

    Messages:
    3
    Likes Received:
    0
    GPU:
    8GB
    I'm trying to make SweetFX work with Dungeon Siege 3 but it refuses to load even though I'm pretty sure I placed it in the correct folder. There is no "log.log" file but the game also does not crash.

    Things I've tried so far:
    - Turned AA and all other possible video options off.
    - Gave admin permissions to the game.
    - Tried different versions of SweetFX (including 64-bit one, even though that makes no sense).
    - Tried to put SweetFX in all of the game's sub-folders.
    - Removed d3d9 SweetFX files, leaving only the dxgi ones.
    - Removed dxgi SweetFX files, leaving only the d3d9 ones.
    - Disabled all of the "SweetFX_settings.txt" shaders, leaving only monochrome enabled.

    I have no OSDs running (that I'm aware of) and SweetFX works fine for other games such as Skyrim. Also, I'm pretty sure the game is not OpenGL since it comes with DirectX files. Anyone sees anything I might have missed? I'm starting to think the game simply despises SweetFX altogether.
     
  12. Scarecrow7

    Scarecrow7 Guest

    Messages:
    233
    Likes Received:
    0
    GPU:
    HIS R9 280X / 3GB
    wow!
    I have an old version of it, thanks for this!
    I'm away from home for some weeks, but fukken saved. :)

    @BetA, It is way better than SharpenComplex2 IMHO.
    I also use it with a port of Vibrance shader together with madVR, and works fine.
     
  13. kasper93

    kasper93 Guest

    Messages:
    53
    Likes Received:
    1
    GPU:
    Radeon R9 390
    I was just curious how it work. In theory it should be better or rather different, you can adjust setting to your needs. You need to decide yourself what do you need better.

    I'm not a big fan of sharpening, but I use it for specific content that need it. And it's fine.
     
  14. kens30

    kens30 Maha Guru

    Messages:
    1,225
    Likes Received:
    93
    GPU:
    RTX 3070 GAMING OC
    I just bought Resident evil 4 HD edition as i have never played it before,great game BTW.
    I am no expert in using sweet fx what i want to achieve is to remove the overdone yellow orange tint in the game to make it look more natural.
    If someone knows how can they please suggest what to values to change.
    Better yet if someone has the game and has created a custom profile i would really appreciate it if they can post their settings.
     
  15. Amazerath

    Amazerath Guest

    Messages:
    3
    Likes Received:
    0
    GPU:
    8GB
    I did something similar with RE: Revelations. I think your best bet is Tonemap. The settings I used for Tonemap on Revelations are:

    #define Gamma 1.200
    #define Exposure 0.200
    #define Saturation 0.150
    #define Bleach 0.000
    #define Defog 0.100
    #define FogColor float3(0.00, 0.50, 0.00)

    Don't know how it will look on RE4, though.
     

  16. K-putt

    K-putt Guest

    Messages:
    472
    Likes Received:
    0
    GPU:
    GTX 1080Ti
  17. CeeJay.dk

    CeeJay.dk Guest

    Messages:
    691
    Likes Received:
    14
    GPU:
    Radeon 6870
    Oh yes, it's much better.
    I wrote LumaSharpen because I was unsatisfied with SharpenComplex2.

    It started out as just a modification of SharpenComplex2, but have since been completely rewritten.

    It can best SharpenComplex2 in both quality and performance.
     
  18. Psychor

    Psychor Member

    Messages:
    40
    Likes Received:
    0
    GPU:
    pc.thedigitalfoundry.com
    CeeJay.dk any chance you could add custom screenshot path name support? I know eFX now supports it but I can't get SMAA to work in eFX. Thanks.
     
  19. Boulotaur2024

    Boulotaur2024 Guest

    Messages:
    142
    Likes Received:
    0
    GPU:
    AMD HD7950
    Speaking of MadVR, be sure to download the latest version. It includes NNEDI3 resizing which is the absolute best algo ever for resizing low-res videos up to x8 their original size, if your cpu can handle it. NNEDI requires sharpening after resizing so yeah, it is a good idea to use SharpenComplex2 or better : LumaSharpen (in reasonable amount of course)
     
  20. kens30

    kens30 Maha Guru

    Messages:
    1,225
    Likes Received:
    93
    GPU:
    RTX 3070 GAMING OC
    Thanks for your help i haven't got around to try it yet.So you believe i should be adjusting tonemap only?
    What about Lift Gamma Gain? I have used this setting only in the past to remove the blue tint in Battlefield 3 just by lowering slightly the blue value on all 3 rows.
    I think i will have to experiment some more with a combination using the 2 settings above because so far i have not managed to get the resaults i am looking for.


    I had no idea that this was your preset. I downloaded that yesterday although i couldn't get it to work in Windows 8.1.Luckily i have a dual boot of Win 7 as well so i will give it a try later.

    Thanks for helping guys i will post back later if i accomplish the results i am looking for.
     
Thread Status:
Not open for further replies.

Share This Page