帮助使用perlin噪声库libnoise

时间:2011-05-22 22:40:09

标签: c++ terrain procedural-generation minecraft perlin-noise

当我用x,y和z作为整数调用libnoise的getvalue函数时,结果总是得到0。这是正常的吗?当我在教程http://libnoise.sourceforge.net/tutorials/tutorial2.html中尝试1.25,0.75,0.5时,我得到了预期的结果0.686347。具体来说,我已经尝试过20岁以下的整数。我只是不明白这是如何工作的?

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:5)

enter image description here

虽然Oli Charlesworth是正确的,但你在整数值处得到零,因为所有零都出现在整数值处。请参阅上图以获得简单的可视化演示!零作为整数出现的原因是由于相干噪声被规定为平滑(与锯齿相反),并且实现这一目的的一种非常简单的方法是在整数处设置零并在它们之间插入伪随机数。平滑噪音的好处在于它本质上是有机和现实的。

比较这种相干噪声函数:

enter image description here

使用这种非相干噪声函数:

enter image description here

哪一座山最容易看起来像? :)

答案 1 :(得分:1)

根据http://libnoise.sourceforge.net/noisegen/index.html#gradientnoise,整数坐标处的值始终为零。