我的 Perlin 噪声函数(以 0.75 持久性将 3D 单纯形的 6 个八度音阶相加)生成double
s 的 2D 数组数组。
这些数字每个都归一化为 [-1, 1],平均值为 0。我将它们钳制以避免异常,我认为这是由于浮点精度问题,但我相当确定我的缩放因子足够好在理想情况下,将噪声输出限制在这个邻域。
无论如何,这就是所有细节。关键是,这是一个 256×256 的噪声数组:
正常拟合的直方图如下所示:
Matlablillietest
是一个应用 Lilliefors 检验来确定一组数字是否来自正态分布的函数。我的结果反复是 1,这意味着这些数字不是正态分布的。
我想要一个函数f(x)
,当应用于我的噪声函数的值列表时,结果看起来是均匀分布的。
我希望这个函数可以在 C# 中实现,并且不需要几分钟即可运行。
再一次,数字来自哪里并不重要(问题是关于将一种分布转换为另一种分布,特别是将正常分布转换为均匀分布)。尽管如此,我的噪声函数实现是基于this和this。您可以在此处找到上述值数组。