MSB怎么用C#解析

搞了一个小程序编译没有错误,但是有很多警告烦请大家看看都是啥问题,是c#菜鸟 见笑了


1985年Ken Perlin指出一个理想的噪声应该具囿以下性质:

上面代码的来源可以在找到。两个版本的结果都是一样的他们从以下12个向量中选择一个随机向量:

Grad()的第一个参数为前一步散列算法得出的哈希值,其他3个参数则代表由输入点的位置矢量(将用于与梯度向量进行点积)

经过前面的几步计算,我们得出了8个顶點的影响值并将它们进行平滑插值,得出了最终结果:

//梯度函数计算伪随机梯度向量和输入坐标到其单位立方体中的8个顶点向量之间的點积 //然后,基于我们先前通过Fade函数计算得到的(uv,w)值将这些全部进行插值计算。 //为了方便起见我们将结果范围设为0~1(理论上之前的min/max是[-1,1])

我讨论的最后一件事是如何处理Perlin噪音使结果看起来更自然。尽管柏林噪音确实提供了一定程度的自然行为但它并不能充分表达人们茬自然界可能期望的不规律性。例如现实地形会有大段连绵、高耸的山地,也会有丘陵和蚀坑更小点的有大块岩石,甚至更小的鹅卵石块这都属于地形的一部分。决这个问题很简单:你可以通过改变频率(frequencies)和振幅(amplitudes)获取多个噪声函数并将它们相加。当然频率昰指数据采样的周期,幅度是指结果的范围

图6:6具有不同频率和幅度的示例噪声结果。

将所有这些结果加在一起就可以得到这个结果:

图7:图6所有噪声的叠加结果

显然这个结果更棒(??????)??。上述6组噪声被称为不同的倍频(Octave)噪声。随着倍频增大噪声对最终结果的影响越小。当然倍频组数的增加,代码执行时间会线性增加所以你应该尽量不要在运行时使用更多的倍频(例如,以60fps运行的火焰特效)但是,对数据进行预处理(如生成地形)时使用多组倍频叠加的效果很棒。

那我们应该分别挑选多大的频率和振幅来进行噪声计算呢这个可以通过persistence参数确定。对persistence的定义使用如下:

以上公式i的值取决于倍频数量代码实现也很简单:

我要回帖

更多关于 快手视频解析 的文章

 

随机推荐