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);