2011 Khronos Group
smoothstep 3G
smoothstep perform Hermite interpolation between two values

## Declaration

genType `smoothstep` genType edge0 genType edge1 genType x genType `smoothstep` float edge0 float edge1 genType x genDType `smoothstep` genDType edge0 genDType edge1 genDType x genDType `smoothstep` double edge0 double edge1 genDType x

## Parameters

edge0

  Specifies the value of the lower edge of the Hermite function.

edge1

  Specifies the value of the upper edge of the Hermite function.

x

  Specifies the source value for interpolation.

## Description

`smoothstep` performs smooth Hermite interpolation between 0 and 1 when edge0 < x < edge1. This is useful in cases where a threshold function with a smooth transition is desired. `smoothstep` is equivalent to:

        genType t;  /* Or genDType t; */
        t = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);
        return t * t * (3.0 - 2.0 * t);

Results are undefined if edge0 ≥ edge1.

## Version Support

#VARTABLECOLS#
#FUNCTABLEHEADER#
smoothstep (genType)#newin13#
smoothstep (genDType)#newin40#

## See Also

mix, step

## Copyright

Copyright 2011 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.