Returns a packed "FadeParams" vector for a shader. The standard packing format is:
| Component | Value |
|---|---|
| x | near |
| y | 1 / (far - near) |
| z | (unused) |
| w | (unused) |
public static Vector4 GetFadeParams(float near, float far) => new Vector4(near, 1.0F / (far - near), 0.0F, 0.0F);
In your shader gui, pass a packed vector to Material.SetVector:
var cameraFadeParams = FadeParams(1.0F, 2.0F);
material.SetVector("_CameraFadeParams", cameraFadeParams);
Then, access the vector in the shader. Canonically,
#define CAMERA_NEAR_FADE _CameraFadeParams.x
#define CAMERA_INV_FADE_DISTANCE _CameraFadeParams.y
float cameraFade = saturate((x - CAMERA_NEAR_FADE) * CAMERA_INV_FADE_DISTANCE);