【发布时间】:2015-06-30 05:27:21
【问题描述】:
我正在尝试实现一个基本的 perlin 噪声函数(我知道有一个库可以做到这一点,我只是想尝试我自己的),我对用于生成确定性噪声的整数到噪声函数有一些问题来自整数输入。
我试图实现的功能在那里定义: http://libnoise.sourceforge.net/noisegen/index.html#continuousnoise
到目前为止,我的代码如下所示:
noise2d :: (Int32, Int32) -> Double
noise2d (x, y) =
let m = x + y * 57
n = (shiftR m 13) ^ m
j = (n * (n * n * 15731 + 789221) + 1376312589) .&. 0x7fffffff
in 1.0 - (fromIntegral j / 1073741824.0)
代码可以编译,但对于任何输入,我都会得到相同的结果,因为 n 被评估为 0。
有更好的方法吗?
【问题讨论】:
标签: haskell noise perlin-noise