【问题标题】:Coherent Spherical Noise?相干球面噪声?
【发布时间】:2013-06-13 19:36:23
【问题描述】:

有谁知道我如何能够产生以下噪音?

  • 三输入,三输出
  • 输出必须始终产生相同大小的向量
  • 如果它接收到与其他时间相同的输入,它必须返回相同的输出
  • 它必须是连续的(最好是平滑的,像柏林噪声)
  • 它必须显得相当随机

编辑:如果它是各向同性的也很好,但这并不完全必要。

【问题讨论】:

  • 连续是什么意思?由于输入平滑变化,输出也必须平滑变化吗?好像这些坐标是醉汉步行算法中的时间参数还是什么?
  • 是的,我只是说函数关于每个输入的一阶和二阶导数是连续的。如果我们随着时间的推移平滑且随机地更改每个输入,我希望输出向量会有点漂移,但很平滑。更像是醉汉的“感知重力”向量。

标签: random noise


【解决方案1】:

我找到了一种方法,它可能不是很快,但它可以完成工作(这是一种类似 c 的伪代码,旨在使移植到其他语言变得容易)。

vec3 sphereNoise(vec3 input, float radius)
{
    vec3 result;
    result.x = simplex(input.x, input.y); //could use perlin instead of simplex
    result.y = simplex(input.y, input.z); //but I prefer simplex for its speed
    result.z = simplex(input.z, input.x); //and its lack of directional artifacts

    //uncomment the following line to make it a spherical-shell noise
    //result.normalize();
    result *= radius;
    return result;
}

【讨论】:

    猜你喜欢
    • 2011-09-27
    • 1970-01-01
    • 2015-08-22
    • 2014-02-22
    • 1970-01-01
    • 2015-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多