繁体   English   中英

2d Perlin噪音。 为什么我必须取位移和梯度矢量的点积?

[英]2d Perlin noise. Why do i have to take the dotproduct of displacement and gradientvector?

考虑到这一点 ,我不明白为什么我必须考虑梯度矢量的点积和指向该点的位移。 谁能解释我为什么要这样做? 我实际上理解了教程,在教程中,他们只是进行了简单的模糊处理以计算网格点的值(称为平滑噪声)。 在这两种情况下,线性插值对我都很清楚。 那么谁能解释我为什么要在第一个教程中采用位移的点积和所谓的“梯度向量”呢? 有什么作用?

好吧,我现在想通了。 第一个教程的噪声是所谓的梯度噪声,而第二个教程的噪声是值噪声。 ken的经典Perlin噪声是梯度噪声(质量和性能更好),而值噪声则更容易理解。 但是在这两种情况下,八度都加了n次(梯度噪声不能代替此过程)。 看到:

http://en.m.wikipedia.org/wiki/Value_noise

http://en.m.wikipedia.org/wiki/Gradient_noise

渐变噪声为长度为1的随机向量的网格设置了种子。这些向量彼此之间的距离为1。 取位移矢量从4个最近的网格点到我想要的点的点积,以及在这4个点处播种的梯度矢量,对于这4个点中的每一个,结果将在-1和1之间。 然后可以对这些值进行插值以获得实际的点值。

值噪声为每个网格点实时生成随机值,它们之间的距离为1。这些值是通过种子生成的,允许我一遍又一遍地获得相同的值。 当我选择要获取的点周围的平方根时,我会根据所传递的坐标实时生成随机值(可以在第二个tut中看到此类生成器的算法),然后使用周围的网格点对其进行模糊处理以获得平稳的声音。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM