找到两个混合噪声值的导数

问题描述

为了改进我的程序贴图生成,我一直在详细了解生成噪声的实际工作原理。

考虑到这一点,我一直在对 this tutorial series 进行有关噪声和噪声导数的 Python 改编。所以我想我会基于 ANLlibnoise 构建一个节点/模块系统,至少在我完成后对其他人有用。

我一直在将这个 Javascript version of libnoise 翻译成 Python,因为我之前使用过它并且很熟悉它,并针对 1D 和 4D 噪声进行了调整(除了它已经做过的 2D 和 3D)和衍生品。

原始教程中使用的导数加法、减法和乘法涵盖了很多模块函数,但我已经介绍了更复杂的函数,我正在努力弄清楚应该如何处理导数。

我在 Blend 模块,它接受三个不同的噪声输入,并用第三个作为 lerp 函数中的 alpha/时间值对其中的两个进行插值,如下所示;

def get1D(self,x):
        a = self.sourceModules[0].get1D(x)
        b = self.sourceModules[1].get1D(x)
        alpha = self.sourceModules[2].get1D(x)

        return lerp(a,b,alpha)

我有点不知该如何处理。我应该丢弃噪声的导数并根据插值计算一个新的导数吗?对于每个轴都有多个导数的更高维度,这将如何工作?

或者我是否将旧的噪声导数插入到新的导数中?

原始版本也对 alpha 噪声变量进行了某种缓和处理,我从计算噪声导数的理解是,这肯定需要有一个导数版本,但是如果该噪声的导数在最终版本中发挥任何作用混合?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)