diff --git a/Assets/Resources/Shaders/FairyGUI-BMFont.shader b/Assets/Resources/Shaders/FairyGUI-BMFont.shader index 694ccd52..d7b636ef 100644 --- a/Assets/Resources/Shaders/FairyGUI-BMFont.shader +++ b/Assets/Resources/Shaders/FairyGUI-BMFont.shader @@ -127,10 +127,11 @@ Shader "FairyGUI/BMFont" #endif #ifdef SOFT_CLIPPED - float2 factor; - float2 condition = step(i.clipPos.xy, 0); - float4 clip_softness = _ClipSoftness * float4(condition, 1 - condition); - factor.xy = (1.0 - abs(i.clipPos.xy)) * (clip_softness.xw + clip_softness.zy); + float2 cond = step(i.clipPos.xy, 0); + float2 softnessRT = float2(_ClipSoftness.z, _ClipSoftness.y); + float2 softnessLB = float2(_ClipSoftness.x, _ClipSoftness.w); + float2 softness = softnessRT + cond * (softnessLB - softnessRT); + float2 factor = (1.0 - abs(i.clipPos.xy)) * softness; col.a *= clamp(min(factor.x, factor.y), 0.0, 1.0); #endif #ifdef CLIPPED diff --git a/Assets/Resources/Shaders/FairyGUI-Image.shader b/Assets/Resources/Shaders/FairyGUI-Image.shader index f00edb81..aea05dc1 100644 --- a/Assets/Resources/Shaders/FairyGUI-Image.shader +++ b/Assets/Resources/Shaders/FairyGUI-Image.shader @@ -139,10 +139,11 @@ Shader "FairyGUI/Image" #endif #ifdef SOFT_CLIPPED - float2 factor; - float2 condition = step(i.clipPos.xy, 0); - float4 clip_softness = _ClipSoftness * float4(condition, 1 - condition); - factor.xy = (1.0 - abs(i.clipPos.xy)) * (clip_softness.xw + clip_softness.zy); + float2 cond = step(i.clipPos.xy, 0); + float2 softnessRT = float2(_ClipSoftness.z, _ClipSoftness.y); + float2 softnessLB = float2(_ClipSoftness.x, _ClipSoftness.w); + float2 softness = softnessRT + cond * (softnessLB - softnessRT); + float2 factor = (1.0 - abs(i.clipPos.xy)) * softness; col.a *= clamp(min(factor.x, factor.y), 0.0, 1.0); #endif diff --git a/Assets/Resources/Shaders/FairyGUI-Text.shader b/Assets/Resources/Shaders/FairyGUI-Text.shader index 31b58bc8..bfad791e 100644 --- a/Assets/Resources/Shaders/FairyGUI-Text.shader +++ b/Assets/Resources/Shaders/FairyGUI-Text.shader @@ -125,10 +125,11 @@ Shader "FairyGUI/Text" #endif #ifdef SOFT_CLIPPED - float2 factor; - float2 condition = step(i.clipPos.xy, 0); - float4 clip_softness = _ClipSoftness * float4(condition, 1 - condition); - factor.xy = (1.0 - abs(i.clipPos.xy)) * (clip_softness.xw + clip_softness.zy); + float2 cond = step(i.clipPos.xy, 0); + float2 softnessRT = float2(_ClipSoftness.z, _ClipSoftness.y); + float2 softnessLB = float2(_ClipSoftness.x, _ClipSoftness.w); + float2 softness = softnessRT + cond * (softnessLB - softnessRT); + float2 factor = (1.0 - abs(i.clipPos.xy)) * softness; col.a *= clamp(min(factor.x, factor.y), 0.0, 1.0); #endif diff --git a/Assets/Scripts/Extensions/TextMeshPro/Shaders/FairyGUI-TMP.shader b/Assets/Scripts/Extensions/TextMeshPro/Shaders/FairyGUI-TMP.shader index 5a91338e..4dadd0d1 100755 --- a/Assets/Scripts/Extensions/TextMeshPro/Shaders/FairyGUI-TMP.shader +++ b/Assets/Scripts/Extensions/TextMeshPro/Shaders/FairyGUI-TMP.shader @@ -459,10 +459,11 @@ SubShader { #endif #ifdef SOFT_CLIPPED - float2 factor; - float2 condition = step(input.mask.xy, 0); - float4 clip_softness = _ClipSoftness * float4(condition, 1 - condition); - factor.xy = (1.0 - abs(input.mask.xy)) * (clip_softness.xw + clip_softness.zy); + float2 cond = step(i.clipPos.xy, 0); + float2 softnessRT = float2(_ClipSoftness.z, _ClipSoftness.y); + float2 softnessLB = float2(_ClipSoftness.x, _ClipSoftness.w); + float2 softness = softnessRT + cond * (softnessLB - softnessRT); + float2 factor = (1.0 - abs(i.clipPos.xy)) * softness; faceColor.a *= clamp(min(factor.x, factor.y), 0.0, 1.0); clip(faceColor.a - 0.001); #endif