SATURATE(3Cg)

NAME
saturate - returns smallest integer not less than a scalar or each vector component.

SYNOPSIS
  float  saturate(float x);
  float1 saturate(float1 x);
  float2 saturate(float2 x);
  float3 saturate(float3 x);
  float4 saturate(float4 x);

  half   saturate(half x);
  half1  saturate(half1 x);
  half2  saturate(half2 x);
  half3  saturate(half3 x);
  half4  saturate(half4 x);

  fixed  saturate(fixed x);
  fixed1 saturate(fixed1 x);
  fixed2 saturate(fixed2 x);
  fixed3 saturate(fixed3 x);
  fixed4 saturate(fixed4 x);

PARAMETERS

x   Vector or scalar to saturate.

DESCRIPTION
Returns x saturated to the range [0,1] as follows:

•   1) Returns 0 if x is less than 0; else

•   2) Returns 1 if x is greater than 1; else

•   3) Returns x otherwise.

For vectors, the returned vector contains the saturated result of each element of the vector x saturated to [0,1].

REFERENCE IMPLEMENTATION
saturate for float scalars could be implemented like this.

  float saturate(float x)
  {
    return max(0, min(1, x));
  }

PROFILE SUPPORT
saturate is supported in all profiles.

saturate is very efficient in the fp20, fp30, and fp40 profiles.

SEE ALSO
clamp, max, min