无意中找到的,关于随机生成技术中柏林噪音的解释,原文很长,而且有大量配图,就不贴了,想看的直接点我
以下摘录开头部分——
如有转载,请注明:
http://www.azure.com.cn
原文链接:http://freespace.virgin.net/hugo.elias/models/m_perlin.htm
翻译:azure
发布:GameRes.com
Perlin Noise
柏林噪声
Many people have used random number generators in their programs to create unpredictability, make the motion and behavior of objects appear more natural, or generate textures. Random number generators certainly have their uses, but at times their output can be too harsh to appear natural. This article will present a function which has a very wide range of uses, more than I can think of, but basically anywhere where you need something to look natural in origin. What’s more it’s output can easily be tailored to suit your needs.
很多人在他们的程序中使用随机数生成器去创造不可预测,使物体的行为和运动表现的更加自然,或者生成纹理。随机数生成器当然是有他们的用途的,但是它们似乎过于苛刻。这篇文章将会展示一个用途十分广泛的功能,甚至其用途比我想到的还要广泛,其结果可以轻易的适合你的需求。
If you look at many things in nature, you will notice that they are fractal. They have various levels of detail. A common example is the outline of a mountain range. It contains large variations in height (the mountains), medium variations (hills), small variations (boulders), tiny variations (stones) . . . you could go on. Look at almost anything: the distribution of patchy grass on a field, waves in the sea, the movements of an ant, the movement of branches of a tree, patterns in marble, winds. All these phenomena exhibit the same pattern of large and small variations. The Perlin Noise function recreates this by simply adding up noisy functions at a range of different scales.
如果你观察自然界中很多事物,你会注意到它们是分形的。它们有着很多层次细节。最平常的例子是山峰轮廓。它包含着高度上的很大变化(山峰),中等变化(丘陵),小的变化(砾石),微小变化(石头)…你可以继续想象。观察几乎所有事物:片状分布于田间草,海中的波浪,蚂蚁的运动方式,树枝的运动,大理石的花纹,风。所有这些现象表现出了同一种的大小的变化形式。柏林噪声函数通过直接添加一定范围内,不同比例的噪声函数来重现这种现象。
To create a Perlin noise function, you will need two things, a Noise Function, and an Interpolation Function.
为了创建一个柏林噪声函数,我们需要两个东西,一个噪声函数和一个插值函数。
Introduction To Noise Functions
噪声函数介绍
A noise function is essentially a seeded random number generator. It takes an integer as a parameter, and returns a random number based on that parameter. If you pass it the same parameter twice, it produces the same number twice. It is very important that it behaves in this way, otherwise the Perlin function will simply produce nonsense.
一个噪声函数基本上是一个种子随机发生器。它需要一个整数作为参数,然后返回根据这个参数返回一个随机数。如果你两次都传同一个参数进来,它就会产生两次相同的数。这条规律非常重要,否则柏林函数只是生成一……