著名的柏林噪声在数学、物理学、计算机图形学中都很有名气,是生成有一定规律的随机图形的一种理论依据。现在,很多游戏中随机地图的生成都有柏林噪声的贡献。
本文将以一个有趣的生成随机图片的例子里演示一下有趣的柏林噪声直观化的结果。
例子代码使用了Go语言(Golang)来生成柏林噪声(Perlin Noise)并绘制对应随机的图形。柏林噪声算法被广泛用于生成游戏或影视动画中的地图、各种波形纹理效果等,代码中做了必要的注释,大家可以看看通过该算法生成的随机图像能够达到什么效果。
代码 15‑17 image6/image6.go
代码 15‑17运行后,用浏览器访问本机8837端口可以看到生成的图片,不断刷新页面可以看到每次都会生成不一样的随机图片,下面是几个生成的图片示例。
柏林噪声算法中,使用了多个因子来控制图形的生成,可以达到色彩上、密度上、聚簇颗粒度等精细的控制并保证足够的随机性,深入的应用我们找机会再细说。