YACA request: option to apply evenly across screen
- phexitol
- Topic Author
Less
More
8 years 2 months ago #1
by phexitol
YACA request: option to apply evenly across screen was created by phexitol
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.
Please Log in or Create an account to join the conversation.
- Marty McFly
Less
More
8 years 2 months ago #2
by Marty McFly
Replied by Marty McFly on topic YACA request: option to apply evenly across screen
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.
Please Log in or Create an account to join the conversation.
- phexitol
- Topic Author
Less
More
8 years 2 months ago #3
by phexitol
Replied by phexitol on topic YACA request: option to apply evenly across screen
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.
Please Log in or Create an account to join the conversation.
- brussell
Less
More
8 years 2 months ago - 8 years 2 months ago #4
by brussell
Replied by brussell on topic YACA request: option to apply evenly across screen
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.
Credits: MartyMcFly
#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
...
}
Last edit: 8 years 2 months ago by brussell.
Please Log in or Create an account to join the conversation.