向行进的多维数据集添加噪音不会影响地形

时间:2019-05-23 23:01:15

标签: c# noise perlin-noise marching-cubes

我正在使用行进立方体和3D噪声生成可修改/有趣的地形。为什么我的噪音没有应用到行进的多维数据集?

请记住,我遵循了GPU Gems的实现以消除噪音。

我尝试使用2D噪声获得至少某种效果,但是我遇到了同样的问题。我的问题是,一切都显得平坦。除了不使用着色器外,我正在跟踪多维数据集上的GPU宝石。我将点等值设置为-point.y(位置),并获得正常的平坦地形。然后,我用内置于perlin噪声中的单位添加噪声,然后变得平坦。顺便说一句,我的iso水平是0。我添加了3D perlin噪波方法并使用了它,但仍然一无所获。我不确定自己在做什么错。

这是我用于统一处理3D噪声的代码:

 float Perlin3D(float x, float y, float z)
    {
        float AB = Mathf.PerlinNoise(x, y);
        float BC = Mathf.PerlinNoise(y, z);
        float AC = Mathf.PerlinNoise(x, z);

        float BA = Mathf.PerlinNoise(y, x);
        float CB = Mathf.PerlinNoise(z, y);
        float CA = Mathf.PerlinNoise(z, x);

        float ABC = AB + BC + AC + BA + CB + CA;

        return ABC / 6.0f;
    }

这是我用来将等值应用于点的代码:

isovalue = -transform.position.y + Perlin3D(transform.position.x * 0.9f,transform.position.y * 0.9f,transform.position.z * 0.9f);

我的iso级别设置为0。

我的行进立方体似乎运行良好。我尝试了很多不同的方法,但是我自己编辑点以检查是否获得正确的输出,并且可以。不知道该怎么办或我做错了。

我希望这会有所帮助。没有看到错误消息,我认为可能唯一的问题是噪声本身。因为我前进的多维数据集中的其他所有内容都按预期运行。谢谢!

1 个答案:

答案 0 :(得分:0)

感谢所有停下来阅读的人!我已经在项目中完全实现了行进多维数据集。那比我想的要简单得多。尽管添加“好看”的噪音是一项艰苦的工作,但我仍然没有添加这个惊人的地形。只有好的噪音。考虑到噪声的正确实施,这可能会令人惊讶。对于任何寻求答案的人,我发现增加一些噪音的地方就是将噪声的输出相乘。它看起来不太好,但是它是一个开始。谢谢!

相关问题