Welcome, Guest.
Username: Password: Remember me

TOPIC: YACA request: option to apply evenly across screen

YACA request: option to apply evenly across screen 11 months 22 hours ago #1

I love the visual effect of YACA, but what I don't like is how it's stronger in the corners/edges. I would like to apply it at a fairly low amount across the entire screen, but the curve slider only allows a minimum of 0.5.
The administrator has disabled public write access.

YACA request: option to apply evenly across screen 11 months 2 hours ago #2

  • Marty McFly
  • Marty McFly's Avatar
  • Offline
  • We've tried nothing and we're all out of ideas!
  • Posts: 609
  • Thank you received: 716
That's radially not possible. The chroma shift is caused by a stretching of the image in different directions. But the center never moves. Logically the areas near the screen center move the least. If I shift everything in the screen outside with the same amount, there would be a "hole" in the screen center.
The administrator has disabled public write access.

YACA request: option to apply evenly across screen 10 months 4 weeks ago #3

Yeah, I actually got to thinking about that after I posted. As an aside, how bad would it look if the curve was able to be set to 0.1? I guess what I really want would be similar to what another poster has requested in another thread: a slight overall gaussian blur/softening effect. One of the main things that kills realism in games is the very thing that seems to make them look so much better as hardware progresses: the sharpness of everything. The FXAA and SMAA can only go so far, and HQ4X doesn't help with highly detailed games like GTA V.
The administrator has disabled public write access.

YACA request: option to apply evenly across screen 10 months 4 weeks ago #4

  • brussell
  • brussell's Avatar
  • Offline
  • Posts: 139
  • Thank you received: 113
I've tried to achieve some blur on the whole image recently. I still use an edited version of MasterEffect, so some conversion is necessary if you want to try the following code with the framework. It's based on GaussBlur22, but I've simplified the code for performance reasons. While the qualtiy is lower than that of GaussBlur22, it gives good results when the multiplier isn't set too high.
#define USE_BLUR        1 //[0 or 1] 

...

#define BlurMult        1 //[0.0 to 1.5] Multiplicator of Blur 

...

float4 Blur(float2 coord, sampler tex, float mult, bool isBlurVert)
{
        float2 axis = (isBlurVert) ? float2(0, 1) : float2(1, 0);

        float4 sum = 0.333*(tex2Dlod(tex, float4(coord.xy + axis.xy * -1.0 * PixelSize * mult,0,0))
                   + tex2Dlod(tex, float4(coord.xy,0,0))
                   + tex2Dlod(tex, float4(coord.xy + axis.xy * 1.0 * PixelSize * mult,0,0)));

        return sum;
}

float4 PS_BlurH(VS_OUTPUT_POST IN) : COLOR
{
        return Blur(IN.txcoord.xy, SamplerLDR, BlurMult, 0);
}

float4 PS_BlurV(VS_OUTPUT_POST IN) : COLOR
{
        return Blur(IN.txcoord.xy, SamplerLDR, BlurMult, 1);
}

...

technique MasterEffect < bool enabled = 1; toggle = MASTEREFFECT_TOGGLEKEY; >
{

...

#if(USE_BLUR == 1)
        pass BlurH
        {
                VertexShader = VS_MasterEffect;
                PixelShader = PS_BlurH; 
                
        }
        pass BlurV
        {
                VertexShader = VS_MasterEffect;
                PixelShader = PS_BlurV; 
                
        }
#endif

...

}
Credits: MartyMcFly
Last Edit: 10 months 4 weeks ago by brussell.
The administrator has disabled public write access.