【Ray Tracing The Next Week 超详解】 光线追踪2-4 Perlin noise
Preface 为了得到更好的纹理,很多人采用各种形式的柏林噪声(该命名来自于发明人 Ken Perlin) 柏林噪声是一种比较模糊的白噪声的东西:(引用书中一张图) 柏林噪声是用来生成一些看似杂乱无章其实有些变换规律的图形(更加贴近自然),比如海水、地形、雾等 当然这里面的原理涉及分形几何等相关的知识 例如,2D柏林噪声可以生成 以及一些网上的总结: 还有一些其他的图 是不是看起来自然多了 那么今天,我们就来 领略一下随机技术带来的自然之美~ Chapter 4:Perlin Noise 柏林噪声有2个关键的特点: 第一,输入相同的3D点,总能返回相同的随机值 第二,简单快捷,使用一些hack的方法,达到快速近似的效果。 关于随机数: 许多人在他们的程序中使用“随机数产生器”,以使得物体的运动行为更加自然,或者用来生成纹理。随机数产生器在一些情况下很有用,比如用在模拟自然物体的地方,如地形,海水等。 自然物体通常是分形的,有各种各样的层次细节,比如山的轮廓,通过高度区分就有高山(mountain,高度变化大)、山丘(hill,高度变化适中)、巨石(高度变化小) 、石头(高度变化很小)等。另外,比如草地、海浪、跑动的蚂蚁、摇晃的树枝、风、大理石的花纹等等,这些都呈现出了或大或小的细节变化。Perlin噪声函数通过噪声函数来模拟这些自然景观。 要构造一个Perlin函数,首先需要一个