因此,我正在尝试使用 openGL 绘制随时间变化的抽象形状。为此,我想使用 Perlin 噪声函数。这段代码(http://www.sorgonet.com/linux/noise_textures/)对我来说是一个完美的开始,除了这里找到的函数只需要两个坐标。我想要一个需要两个空间坐标的,第三个会随时间变化的。
我的问题是:是否可以调整此功能以使用更多坐标?
因此,我正在尝试使用 openGL 绘制随时间变化的抽象形状。为此,我想使用 Perlin 噪声函数。这段代码(http://www.sorgonet.com/linux/noise_textures/)对我来说是一个完美的开始,除了这里找到的函数只需要两个坐标。我想要一个需要两个空间坐标的,第三个会随时间变化的。
我的问题是:是否可以调整此功能以使用更多坐标?
对的,这是可能的。
您可以将时间维度视为空间维度,没有任何问题。
对于 2D 噪声,您将使用像这样的 2D 插值,以双线性为例,但这个想法应该适用于双三次等:
第一步:
您有 4 个外部值,其中一个点可以获取其值。
+ +
x
+ +
第二步:
在 Y 轴上插值。
+-+--+
x
+-+--+
第三步:
在 Y 轴上插值。
+-+--+
|
x
|
|
+-+--+
现在我们有了插值。
现在,要添加第三个维度,我们从 8 个值开始并添加一个额外的步骤:在 Z 轴上插值。这将扩展到任意多个维度。
3d perlin 噪声呢? http://webstaff.itn.liu.se/~stegu/aqsis/DSOs/DSOnoises.html
为您的几何图形使用 2 个坐标,一个用于时间。