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