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