Perlin noise
一、 背景介绍
分形:
分形,具有以非整数维形式充填空间的形态特征。通常被定义为“一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状”,即具有自相似的性质。分形(Fractal)一词,是芒德勃罗创造出来的,其原意具有不规则、支离破碎等意义。1973年,芒德勃罗(B.B.Mandelbrot)在法兰西学院讲课时,首次提出了分维和分形的设想。(百度百科)
分形在自然界中随处可见:


生成方式:
Perlin noise 就是一种非常有用强大的算法,常用于生成看似杂乱而又有序的内容。尤其特别适合用于游戏和其他视觉媒体,如电影。它的创始人Perlin也因为最先运用此技术而获得奥斯卡奖。
| 噪音维数 | 原始噪音 (Grayscale) | 实例 |
|---|---|---|
| 1维 | ![]() |
![]() Using noise as an offset to create handwritten lines. |
| 2维 | ![]() |
![]() By applying a simple gradient, a procedural fire texture can be created. |
| 3维 | ![]() |
![]() Perhaps the quintessential use of Perlin noise today, terrain can be created with caves and caverns using a modified Perlin Noise implementation. |
二、原理

对一维,如上图,先分配随机的散点,再对这些点进行插值获得连续的曲线。此处需要注意的是需要控制波长,否则可能导致Aliasing(不知道中文应该如何翻译这个词,因为其并不代表锯齿)。
此处细节Prof. James给我的邮件答复内容:
Because the wavelength is about the size ofthe lattice. Therefore the frequency is also narrowly limited. You are going to add a number of thesesignals to get the 1/f noise. You need to know the frequency you are about toadd in order to be able to sample at the Nyquist limit.
对二维
- 定义一个晶格结构,每个晶格的顶点有一个“伪随机”的梯度向量。对于二维的Perlin噪声来说,晶格结构就是一个平面网格,三维的就是一个立方体网格。
- 输入一个点(二维的话就是二维坐标,三维就是三维坐标,n维的就是n个坐标),我们找到和它相邻的那些晶格顶点(二维下有4个,三维下有8个,n维下有

本文介绍了Perlin Noise的概念和用途,特别是在计算机图形学中的应用。Perlin Noise是一种用于生成看似随机但有序内容的算法,常见于游戏和视觉效果中。文章详细阐述了一维和二维Perlin Noise的生成原理,包括晶格结构、梯度向量和缓和曲线,并解释了为何选择特定的梯度向量。最后,文中提到了使Perlin Noise无缝衔接的两个关键步骤,即周期性设置和频率控制。






最低0.47元/天 解锁文章
160

被折叠的 条评论
为什么被折叠?



