GLSL表达式smoothstep 的用法

GLSL表达式smoothstep 的用法

将返回一个 0 到 1 的值,该值表示参数在最小值和最大值之间的成比例距离。smoothstep 函数将用于在一段时间范围内逐渐但非线性地增加属性,例如,“不透明度”(Opacity)从 0 增加到 1。

smoothstep 函数与 linstep 函数的工作方式类似,不过其将在最小值和最大值之间的中间值附近更快地增加值。该函数使用最小值和最大值之间的 hermite 插值。

float smoothstep(float start, float end, float parameter)

起点和终点将指定最小值和最大值。

参数为要用于生成 smoothstep 数的值。

如果参数小于起点,linstep 将返回 0。

如果参数大于终点,linstep 将返回 1。

下图将根据时间顺序比较 smoothstep 和 linstep 返回的值:

smoothstep 在glsl中很常见


genType smoothstep (genType edge0,genType edge1,genType x),genType smoothstep (float edge0,float edge1,genType x)

如果x <= edge0,返回0.0 ;如果x >= edge1 返回1.0;如果edge0 < x < edge1,则执行0~1之间的平滑埃尔米特差值。如果edge0 >= edge1,结果是未定义的。


    • Related Articles

    • GLSL内建函数介绍

      OpenGL ES着色语言为标量和向量操作定义了一套内建便利函数。有些内建函数可以用在多个类型的着色器中,有些是针对固定硬件的,所以这部分只能用在某个特定的着色器上。        内建函数基本上可以分为一下三类: (1)它们使用一些简便的方式提供必要的硬件功能,如材质贴图。这些函数单独通过着色器是无法模拟出来的。 (2)它们展示了一些可以常简单的写入的繁琐操作(clamp, ...
    • Kanzi 是否可以做出来高斯模糊的效果?

      可以的,需要自定义材质, 写 GLSL 的高斯模糊的脚本。