所以,我试图绘制使用openGL随时间变化的抽象形状。为此,我想使用Perlin噪声函数。这个代码(http://www.sorgonet.com/linux/noise_textures/)对我来说是一个完美的开始,除了这里发现的函数只有两个坐标。我想要一个需要两个空间坐标和第三个空间坐标,随着时间的推移。从2D功能制作3D perlin噪声功能
我的问题是:是否有可能使这个函数适用于多一个坐标?
所以,我试图绘制使用openGL随时间变化的抽象形状。为此,我想使用Perlin噪声函数。这个代码(http://www.sorgonet.com/linux/noise_textures/)对我来说是一个完美的开始,除了这里发现的函数只有两个坐标。我想要一个需要两个空间坐标和第三个空间坐标,随着时间的推移。从2D功能制作3D perlin噪声功能
我的问题是:是否有可能使这个函数适用于多一个坐标?
怎么样三维珀林噪音? http://webstaff.itn.liu.se/~stegu/aqsis/DSOs/DSOnoises.html
对于几何体使用2个坐标,一个用于时间。
是的,这是可能的。
您可以将时间维度作为空间维度处理,而不会有任何问题。
对于2D噪音,您将使用2D插值这样,使用双线性作为一个例子,但这个想法应该与双立方等:
第一步工作:
你有4点以外的值,并在他们的内部获得价值。
+ +
x
+ +
第二步:
插值在Y轴上。
+-+--+
x
+-+--+
第三步:
插值在Y轴上。
+-+--+
|
x
|
|
+-+--+
现在我们有插值了。
现在,要添加第三个维度,我们从8个值开始并添加一个额外的步骤:在Z轴上插值。这将扩展到任意多个维度。
这种方法比单工噪声慢,并且产生更多(对于大多数用途而言较小)伪影;) – Monkey 2012-04-19 01:55:24
@Monkey:是的,但OP要求佩林噪声,所以我不想混淆他。 – 2012-04-19 11:47:50