[Add] All in one shader

This commit is contained in:
2026-02-23 22:01:07 +07:00
parent ec0aa86ac2
commit 4f942cd7c0
806 changed files with 401510 additions and 33 deletions
@@ -0,0 +1,73 @@
#ifndef ALLIN13DSHADER_ALPHA_EFFECTS
#define ALLIN13DSHADER_ALPHA_EFFECTS
#ifdef _FADE_ON
//<EffectsCode id=FADE>
//<EffectVersion kw=_FADE_BURN_ON suffix=Burn>
float4 Fade(float4 inputColor, float2 uv)
{
float4 res = inputColor;
float2 fadeUV = SIMPLE_CUSTOM_TRANSFORM_TEX(uv, _FadeTex);
float fadeSample = SAMPLE_TEX2D(_FadeTex, fadeUV).r;
fadeSample = pow(saturate(fadeSample), ACCESS_PROP_FLOAT(_FadePower));
#ifdef _FADE_BURN_ON
float fadeAmount = lerp(ACCESS_PROP_FLOAT(_FadeAmount) - ACCESS_PROP_FLOAT(_FadeTransition) - ACCESS_PROP_FLOAT(_FadeBurnWidth), 1.0, ACCESS_PROP_FLOAT(_FadeAmount));
float fade = smoothstep(fadeAmount, fadeAmount + ACCESS_PROP_FLOAT(_FadeTransition), fadeSample);
float fadePlusBurn = smoothstep(fadeAmount + ACCESS_PROP_FLOAT(_FadeBurnWidth), fadeAmount + ACCESS_PROP_FLOAT(_FadeBurnWidth) + ACCESS_PROP_FLOAT(_FadeTransition), fadeSample);
float diff = saturate(fade - fadePlusBurn);
float3 burnColor = diff * ACCESS_PROP_FLOAT4(_FadeBurnColor).rgb;
res.rgb += burnColor;
#else
float fadeAmount = lerp(ACCESS_PROP_FLOAT(_FadeAmount) - ACCESS_PROP_FLOAT(_FadeTransition), 1.0, ACCESS_PROP_FLOAT(_FadeAmount));
float fade = smoothstep(fadeAmount, fadeAmount + ACCESS_PROP_FLOAT(_FadeTransition), fadeSample);
#endif
res.a *= fade;
return res;
}
//</EffectsCode>
#endif
#ifdef _INTERSECTION_FADE_ON
float4 IntersectionFade(float4 inputColor, float sceneDepthDiff)
{
float4 res = inputColor;
res.a *= saturate(ACCESS_PROP_FLOAT(_IntersectionFadeFactor) * sceneDepthDiff);
return res;
}
#endif
#ifdef _FADE_BY_CAM_DISTANCE_ON
//<EffectsCode id=FADE_BY_CAM_DISTANCE>
float4 FadeByCamDistance(float4 inputColor, float camDistance, out float camFadeDistanceNormalized)
{
float4 res = inputColor;
float t = 0;
#ifdef _FADE_BY_CAM_DISTANCE_NEAR_FADE
t = 1 - smoothstep(ACCESS_PROP_FLOAT(_MinDistanceToFade), ACCESS_PROP_FLOAT(_MaxDistanceToFade), camDistance);
#else
t = smoothstep(ACCESS_PROP_FLOAT(_MinDistanceToFade), ACCESS_PROP_FLOAT(_MaxDistanceToFade), camDistance);
#endif
res.a = lerp(res.a, 0, t);
camFadeDistanceNormalized = t;
return res;
}
//</EffectsCode>
#endif
#endif