【发布时间】:2021-06-30 12:15:38
【问题描述】:
我试图从视觉的角度理解 2D Perlin 噪声,我想在这里问几个问题,以确保我走在正确的轨道上。我使用 WebGL 并编写自定义着色器进行渲染。
我首先计算单元格中心的位置向量和一个垂直向量之间的一个网格单元格的点积,然后得到下面的梯度(红色为正值,蓝色为负值)。如果我旋转矢量,它会旋转渐变:
Q1:关于“梯度噪声”的维基百科说“......随机梯度的格子,然后对其点积进行插值......”。这不正确,这里创建实际梯度的是点操作本身,“梯度”向量只是法线向量,对吧?
以下是 4 个随机向量和从每个单元格的每个角计算的 4 个位置向量之间的 4 个点积的 3 种不同插值,第一个是简单平均,第二个是双线性插值,第三个是双线性与平滑步长。
Q2:那么,Perlin 噪声具有有机的、流动的外观和感觉的原因是插值方法,而不是梯度,特别是双线性插值不是线性的而是二次的这一事实?
谢谢!
【问题讨论】:
标签: interpolation noise perlin-noise