2
了解Perlin噪声
在与Diamond Square合作后,我正在玩Perlin Noise。我遵循了Hugo Elias的实现,该实现基本上是用x,y作为输入来生成一系列函数以抛出每个坐标值。 我的PHP代码在这里: 我有两个问题: 如何使用该算法在数组中生成高度图?我并没有完全理解它,只是将伪代码移植到PHP,但是在读取算法“神奇地”为给定的每个x,y点(显然,不必读取其)的转换值后,执行了最后一个函数(map_perlined)相邻的值),当用作随机函数时,我得到这个mt_rand(-100,100)/100; 这在使用密码时:(1.0-(($n*($n*$n*15731+789221)+1376312589)&0x7fffffff)/1073741824.0;顺便说一句,可以在PHP中“按原样”实现吗?): 因此,总结三个问题: 我的代码正确吗? 可以按代码中所述将random函数移植到PHP吗?它不会抛出任何错误,但是结果不存在。 我实际上如何使用该算法? 更新 好的,为Gustavson论文中显示的代码添加了一个PHP端口,正如其他编码人员所说,它仅生成一个八度。是否还有其他有用的站点/论文/指南,说明如何结合使用多个八度音阶,幅度,频率等来控制噪声功能?在Gustavson的论文中仅显示了结果,而不是算法的实际实现,也许我遗漏了一些东西? 更新2 @NATHAN 我做了类似的事情: $persistence = 0.5; for ($j = 0; $j < $size; $j++) { for ($i = 0; $i < $size; $i++) { for ($o = 0; $o < 8; $o++) { $frequency = pow(2,$o); …