Eri*_*pen 6 terminology function naming-conventions inverse linear-interpolation
函数lerp()是编程语言中的常用函数:
lerp(a, b, t) = a + t * (b - a).
Run Code Online (Sandbox Code Playgroud)
现在对于很多场景,我有一个反函数:
fraction(x, a, b) = (x - a) / (b - a).
Run Code Online (Sandbox Code Playgroud)
这个功能是这样构建的
lerp(a, b, fraction(x, a, b)) == x
Run Code Online (Sandbox Code Playgroud)
和
fraction(lerp(a, b, t), a, b) == t
Run Code Online (Sandbox Code Playgroud)
但是我对名称"分数"不满意.这个功能有一个共同的名称吗?
Sli*_*son 11
GLSL 的内置函数包括:
mix(), 就像你的lerp()函数一样。
smoothstep(),它的工作原理就像您的逆 lerp 函数结合 Hermite 平滑和x = clamp(x, 0.0, 1.0).
您可以考虑实现的名称linearstep()。
Unity 的 API 包括:
Lerp()/ ,这正是您的逆 lerp 函数所做的。LerpUnclamped()
InverseLerp()
注意:我不会使用这个名字fraction()——它似乎很容易与fract()/混淆frac(),后者做一些完全不同的事情。