【发布时间】:2017-12-05 15:50:10
【问题描述】:
我尝试使用 Rust 语言制作 2D Perlin 噪音,如下所述:https://en.wikipedia.org/wiki/Perlin_noise
我的随机梯度函数如下:
fn random_gradient_vector(rng : &mut rand::Rng) -> (f64, f64)
{
let theta = rng.next_f64() * 2.0 * 3.1415926536;
return (theta.cos(), theta.sin());
}
我的插值函数:
fn interpolate(a : f64, b : f64, x : f64) -> f64
{
let mut w = x*x*x*(x*(x*6.0 - 15.0) + 10.0);
return a * (1.0-w) + b * (w);
}
结果,充其量:
我做错了什么导致清晰可见的网格线?我想到了三种解决方法:
1) 我的代码中有一个错误我需要找到。 2)尝试在噪声中添加不同的八度音阶,也许每个八度音阶都经过变换以消除伪影。 3) 尝试不同的噪声算法。
史蒂夫
【问题讨论】:
标签: perlin-noise