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