【发布时间】:2012-11-10 23:16:43
【问题描述】:
我似乎在理解this Perlin Noise 文章时遇到了一些问题。我需要一些帮助来理解如何计算每个边界点的伪随机梯度。作者给出的函数:
g(xgrid, ygrid) = (gx, gy)
然后他给出了图像:
我理解文章的其余部分,但我不知道他是如何从每个边界点生成这些随机梯度的。协助将不胜感激。谢谢!
【问题讨论】:
标签: random vector gradient noise perlin-noise
我似乎在理解this Perlin Noise 文章时遇到了一些问题。我需要一些帮助来理解如何计算每个边界点的伪随机梯度。作者给出的函数:
g(xgrid, ygrid) = (gx, gy)
然后他给出了图像:
我理解文章的其余部分,但我不知道他是如何从每个边界点生成这些随机梯度的。协助将不胜感激。谢谢!
【问题讨论】:
标签: random vector gradient noise perlin-noise
但我不知道他是如何从每个边界点生成这些随机梯度的。
从文章中,它使用了一个总是相同种子的伪随机数生成器,并且总是在同一个网格上计算它,所以
我们的意思是g具有随机性的外观,但有重要的考虑 它总是为同一个网格点返回相同的梯度,每次它 计算出来的。同样重要的是,每个方向都有平等的机会 采摘。
所以它可能会做类似的事情
srand(CONSTANT_VALUE);
for (y = 0; y < GridHeight; y++)
{
for (x = 0; x < GridWidth; x++)
{
r1 = rand();
r2 = rand();
gradient[y][x] = some_function(r1, r2);
}
}
所以每个点的梯度是伪随机的,对于相同的 x 和 y,它总是相同的,并且分布均匀。然后它访问矩阵gradient 来运行其余的计算。
【讨论】: