14 public float FadeDistanceStart = 0.85f;
15 public float FadeDistanceEnd = 0.5f;
17 public bool NearPlaneFadeOn =
true;
19 private const string FadeKeywordOn =
"_NEAR_PLANE_FADE_ON";
21 private int fadeDistancePropertyID;
25 fadeDistancePropertyID = Shader.PropertyToID(
"_NearPlaneFadeDistance");
29 private void OnValidate()
34 private void UpdateShaderParams()
36 FadeDistanceStart = Mathf.Max(FadeDistanceStart, 0);
37 FadeDistanceEnd = Mathf.Max(FadeDistanceEnd, 0);
38 FadeDistanceStart = Mathf.Max(FadeDistanceStart, FadeDistanceEnd);
40 if (FadeDistanceStart != FadeDistanceEnd)
42 float rangeInverse = 1.0f / (FadeDistanceStart - FadeDistanceEnd);
43 var fadeDist =
new Vector4(-FadeDistanceEnd * rangeInverse, rangeInverse, 0, 0);
44 Shader.SetGlobalVector(fadeDistancePropertyID, fadeDist);
49 Shader.EnableKeyword(FadeKeywordOn);
53 Shader.DisableKeyword(FadeKeywordOn);