我目前正在了解改进的柏林噪音。我完全理解这个理论,但是,我对其常见实现的一个方面感到困惑,例如this。
我的问题是, grad() 函数如何返回归一化向量(梯度和方向)的点积?我的意思是,归一化向量的点积的范围为 -1 到 1,这是将所有点积混合(淡入淡出)在一起后 Perlin 噪声的正常输出。但是进行点积的向量没有标准化(梯度函数和方向向量都不是)。那么,输出如何落在-1到1的范围内呢?
我唯一的猜测是梯度向量的大小均为根 2,并且方向向量的所有轴都在 -1 到 1 的范围内。因此,我认为这就是 Perlin 噪声输出最终落在 -1 范围内的原因至 1 范围。这是为什么吗?有人能证明或找到证据吗?
多谢你们
我正在尝试创建一个递归参数包函数,如下所示:
template <class T, class ... Ts>
void myFunction()
{
execute<T>();
myFunction<Ts...>();
}
Run Code Online (Sandbox Code Playgroud)
这不会编译并出现错误:
error C2672: 'Test::myFunction': no matching overloaded function found.
Run Code Online (Sandbox Code Playgroud)
有谁知道如何做我想要实现的目标?谢谢