Worley Noise (三)

来源:互联网 发布:淘宝宠物狗 编辑:程序博客网 时间:2024/06/01 10:40

一、不同距离算法下的Worley变种

  在前面学习中,我们学过三个图形学中常用的距离量算方法(欧几里得距离(euclidean Distance),曼哈顿距离(Manhattan Distance),切比雪夫距离(Chebyshev Distance)),在Worley噪声生成算法中,也使用了距离量算,因此很自然就会用三种不同的Worley变种算法,下图展示了采用不同距离量算方法生成的噪声。

这里写图片描述

上图为采用欧氏距离得到的噪声图

这里写图片描述

上图为采用曼哈顿距离得到的噪声图

这里写图片描述

上图为采用切比雪夫距离得到的噪声图

二、不同距离返回值及其组合变种

  在数学上,对任一位置x,定义F1(x)为x到其最近特征点的距离。当x变化时,F1平滑变化(因为x是平滑变化的),但在特定端点,x可能会与2个特征点的距离相等。我们用
F2(x)表示x与第2近的特征点的距离。同样,可定义Fn(x)为x到第n近的特征点的距离。F函数有如下有趣的特征:
1. Fn总是连续的;
2. Fn是非减函数:0<=F1(x)<=F2(x)<=F3(x)…,通常Fn(x)<=Fn+1(x);
3. Fn的梯度为从第n最近特征点到x的单位方向向量。
  前面我们都是计算的F1(x),如果不使用最小距离,使用其他距离会有什么样的效果?如F2(x)和F3(x)。或者是两者或三者等的组合C1F1+C2F2+C3F3+C4F4。
下图是使用不同系数对最小的F1到F4的对比图,这对我们想要效果可以作为一定参考。

这里写图片描述

  前面我的使用的都是灰度,还可以对结果进行着色,产生的效果如下图所示:

这里写图片描述

这里写图片描述

这里写图片描述

三、代码下载

VS2015平台下C#实现的WorleyNoise:
VS2015_C#_WorleyNoise

参考文献

1、用GPU实现Cellular Texture