地形的Perlin噪声生成
我正在尝试实现我在网上找到的一些源代码,使用Perlin Noise生成高度图。我已成功设法使用noise3函数获取高度图,第三个坐标是随机“种子”,以允许随机高度贴图。
我的问题是产生的地形相当沉闷 - 我想要山脉,我正在滚动草原。我已经完成了对Perlin Noise的阅读(主要是在这里)。由于源代码我发现显然没有考虑到可读性和我对Perlin Noise概念的一般掌握,我无法弄清楚我需要在代码中调整什么(幅度和频率?)到创造更加激烈的地形。
有关使用Perlin Noise,Perlin Noise,甚至更多可解码代码生成高度贴图的更多信息也将受到欢迎。
编辑:我理解(有点)Perlin Noise的工作原理,例如关于振幅和频率,我只是想知道在上面链接的代码中要改变哪些变量,这些变量用于这两个方面。
没有找到相关结果
已邀请:
4 个回复
妊辽剁茧
PerlinNoise.cpp
闪票仇门韧
...... 结果总和可能经常在-1到1的范围之外,因此您必须在值有用之前对结果进行标准化。我想建议设置因子系列(1,1 / 2,1 / 4等),以保证你保持在[-1,1]范围内,这可以通过渐进式加权来完成,具体取决于多少'octaves'你用。 (但我不知道这是否真的是最有效的方法。) 四个八度音程的示例:
然后,使用“湍流噪声”归一化取总和并使其成为
(即,使用abs功能)。这将使地形具有明确的角谷脊,而不是平滑地滚动。 我正在研究SimplexNoise可视化工具,希望最终在GitHub上开源,作为Java项目。可以通过java-gaming.org上的这篇文章找到并运行可视化器的初稿: http://www.java-gaming.org/topics/simplex-noise-experiments-towards-procedural-generation/27163/view.html 对初稿的重点是更多教程,生成代码示例(但它们是Java)。 关于SimplexNoise如何工作的伟大文章(和Perlin vs Gradient背景): http://staffwww.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf Stefan Gustavson做得非常好!
苏髓骗撩
靛取糕奖穿