15

函数 lerp() 是编程语言中的常用函数:

lerp(a, b, t) = a + t * (b - a).

现在对于很多情况,我有一个反函数:

fraction(x, a, b) = (x - a) / (b - a).

这个函数是这样构建的

lerp(a, b, fraction(x, a, b)) == x

fraction(lerp(a, b, t), a, b) == t

但是我对“分数”这个名字不满意。这个函数有通用名称吗?

4

1 回答 1

11

GLSL

GLSL 的内置函数包括:

mix(),它就像你的lerp()函数一样工作。
smoothstep(),它的工作原理类似于您的反 lerp 函数与 Hermite 平滑和x = clamp(x, 0.0, 1.0).

您可以考虑linearstep()实施的名称。

统一引擎

Unity 的 API 包括:

Lerp()/ ,这正是你的逆 lerp 函数所做的。LerpUnclamped()
InverseLerp()


注意:我不会使用这个名字fraction()——它似乎很容易与fract()/混淆frac(),后者的作用完全不同。

于 2016-01-05T00:35:32.067 回答