0
在我的项目之一,我用下面的smoothstep()
功能:如何优化这个smoothstep功能?有其他选择吗?
float smoothstep(float a, float b, float m, int n)
{
for(int i = 0 ; i < n ; i++)
{
m = m * m * (3 - 2 * m);
}
return a + (b - a) * m;
}
它的伟大工程,但是,它有两个缺点:
- 它很慢(尤其是对
n
大值) - 它并不对非整数值的工作(如:
n = 1.5
)
为T这里有一个替代方案(不包括预先计算的点,然后插值)提供更好的性能(和相同的行为),或另一个函数给出了很好的近似值?