柏林噪音
柏林噪声是生成一系列缓慢变化的随机值的算法,这些值的行为就像生物活动的参数。这是21计算机图形学最常用的算法之一。它用于随机对象运动,纹理生成等。本书中的许多例子基本上都是基于使用柏林噪音。在这个附录中,我们将找出什么是Perlin噪音,以及如何在openFrameworks项目中使用它;我们将涵盖以下主题:
柏林噪声基础
使用ofNoise()函数
空间相干噪声
柏林噪声基础
柏林噪声是一种计算伪随机函数值的算法,它平滑地依赖于伪随机函数的参数。它最初是由KenPerlin在1982年开发的,并以他的名字命名。今天,它被称为古典噪音。2001年,KenPerlin对算法进行了改进,称之为单纯噪声。单纯噪声比经典噪声工作得更快,但结果有所不同。
现在这两种噪声都被广泛使用。在给定的情况下,使用哪种算法通常并不重要;这就是为什么我们将它们都称为Perlin噪声。
对于开发人员来说,ofNoise(t)的Perlin噪声函数取值范围[0,1],取决于参数t。相关性是平滑的,即输入参数t的值的一个小小的变化就会导致输出结果的一个小小的变化。但是,不像任何其他数学函数,例如sin(t)或exp(t),Perlin噪声不是周期性的,也不是不断增加的。它具有复杂的、非重复的行为,称为伪随机行为。
也就是说,一方面它是一个看似随机的函数,另一方面它是固定的。不管你对给定的t计算ofNoise(t)多少次,你都会得到完全相同的结果。
与普通的伪随机数生成器random(a,b)相比,Perlin噪声的主要优点是可控的平滑度。事实上,如果我们考虑不同t值的浮点数A0=ofNoise(t),A1=ofNoiser(t+0.01),A2=ofNoist(t+0.1),我们会发现