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