linearstep
#数学 #GLSL
https://gyazo.com/753c67c7023d7fb783804867ba707a60
Heaviside step functionのつなぎ目が線形に補間されるもの
Smoothstepのスムースじゃない版
宗派によっては linstep
a から b の間の値 t を 0 から 1 の範囲にマッピングする
指定した範囲を外れた場合はclampする
clampされないものはinverseLerpと呼ばれる
登場作品
Maya 🔗
用例
時間が特定の区間内でAnimationを行う
progress = linearstep(start, end, t)
2D Signed Distance FieldのAnti-aliasing
shape = linearstep(1.0 / resolution.y, -1.0 / resolution.y, d)
https://www.shadertoy.com/view/dlKBDt
GLSL
Cマクロをつかって定義すると任意の次元に対応できて便利
code:glsl
#define saturate(x) clamp(x,0.,1.)
#define linearstep(a,b,t) saturate(((t)-(a))/((b)-(a)))