Beautify addon
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
#ifndef EDGE_FUSION_BLEND_PASS_INCLUDED
|
||||
#define EDGE_FUSION_BLEND_PASS_INCLUDED
|
||||
|
||||
#include "EdgeFusionBlendLibrary.hlsl"
|
||||
|
||||
float4 FragBlendEdges(EFVaryings i) : SV_Target
|
||||
{
|
||||
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
|
||||
float2 uv = UnityStereoTransformScreenSpaceTex(i.texcoord);
|
||||
|
||||
float4 c0 = SampleColor(uv);
|
||||
|
||||
float2 uvSurfaceB;
|
||||
float edgeFactor = FindEdgeNeighbour(uv, uvSurfaceB);
|
||||
if (edgeFactor <= 0.0) return c0;
|
||||
|
||||
#if EDGE_FUSION_MSAA_EDGE_FIX
|
||||
float2 dir = normalize(uvSurfaceB - uv) * _SrcColorTexture_TexelSize.xy * MSAA_FIX_POWER;
|
||||
c0 = SampleColor(uv - dir);
|
||||
float4 surf0 = SampleColor(uvSurfaceB + dir);
|
||||
#else
|
||||
float4 surf0 = SampleColor(uvSurfaceB);
|
||||
#endif
|
||||
|
||||
float fallOff = 2;
|
||||
|
||||
// screen-edge "vignette" fade
|
||||
float2 distUV = min(uv, 1.0 - uv);
|
||||
float edgeFade = min(distUV.x, distUV.y);
|
||||
float2 distUVB = min(uvSurfaceB, 1.0 - uvSurfaceB);
|
||||
float edgeFadeB = min(distUVB.x, distUVB.y);
|
||||
edgeFade = min(edgeFade, edgeFadeB);
|
||||
edgeFade = 1 - smoothstep(0, 0.05, edgeFade);
|
||||
fallOff += edgeFade * 4.0;
|
||||
|
||||
// avoid brightening shadows
|
||||
float lumaBase = GetLuma(c0.rgb);
|
||||
float invLuma2 = rcp(lumaBase * lumaBase + 1e-6);
|
||||
fallOff += clamp( SHADOW_PROTECTION * invLuma2, 0, 16);
|
||||
|
||||
// apply falloff
|
||||
float blendAmount = pow(edgeFactor, fallOff);
|
||||
|
||||
// blend
|
||||
blendAmount *= GLOBAL_INTENSITY * 0.5;
|
||||
float3 blended = ColorLerp(c0.rgb, surf0.rgb, blendAmount);
|
||||
|
||||
return float4(blended, c0.a);
|
||||
|
||||
}
|
||||
|
||||
#endif // EDGE_FUSION_BLEND_PASS_INCLUDED
|
||||
Reference in New Issue
Block a user