Image processing 单纯形噪声与柏林噪声
我想知道为什么柏林噪音在单纯形问世后的今天仍然如此流行。单纯形噪声是由Ken Perlin自己制造的,它被认为将取代他的旧算法,该算法对于更高维度和更好的质量(没有可见的伪影)来说速度较慢 Simplex noise于2001年问世,在这10年中,我只看到人们在为地形生成高度贴图、创建程序纹理等方面谈论柏林噪音 谁能帮我一下吗,单工噪音有什么坏处吗?我听说柏林噪声在一维和二维噪声中更快,但我不知道这是真是假Image processing 单纯形噪声与柏林噪声,image-processing,textures,perlin-noise,simplex-noise,Image Processing,Textures,Perlin Noise,Simplex Noise,我想知道为什么柏林噪音在单纯形问世后的今天仍然如此流行。单纯形噪声是由Ken Perlin自己制造的,它被认为将取代他的旧算法,该算法对于更高维度和更好的质量(没有可见的伪影)来说速度较慢 Simplex noise于2001年问世,在这10年中,我只看到人们在为地形生成高度贴图、创建程序纹理等方面谈论柏林噪音 谁能帮我一下吗,单工噪音有什么坏处吗?我听说柏林噪声在一维和二维噪声中更快,但我不知道这是真是假 谢谢 我还没有使用过单纯形噪声,但我可以考虑以下几个原因: 也许是因为我们习惯了正方形
谢谢 我还没有使用过单纯形噪声,但我可以考虑以下几个原因:
- 也许是因为我们习惯了正方形和90度角?正方形、立方体,。。。比三角形、四分体或超四分体更自然
- 柏林噪波中的每一层都只是一个简单的位图
- 柏林噪声的输出是易于平铺的正方形。纹理通常是平铺的正方形
- 通常使用低维噪声。根据我的经验,2D和3D是最常见的
- 单纯噪声更难理解和实现
- 图形卡中的采样器可能可以对perlin噪波中使用的正交位图进行插值,但不能对单纯形噪波中使用的60度角位图进行插值。(这一点可能是错误的,我已经有几年没有使用图形卡了)
看看是否有人能告诉你为什么Simplex更好。“它更快,并扩展到多个维度”和“单纯形噪声试图降低高维噪声函数的复杂性”是我发现的。我们中的大多数人都在二维或三维空间中工作,如果我们足够幸运,可以利用时间做一些事情的话,可能是4维空间
我认为可以公平地说,柏林的实时使用很少,处理速度太慢,对于大多数目的来说,标准柏林噪音就足够了。在预渲染中(如电影行业中使用的),时间并不重要,因为渲染速度很慢;在实时模拟中,我们有足够的方法来减少正在进行的处理的范围,使您不太可能每隔几纳米/毫秒生成大量的噪声贴图——这只是基本的实时优化。对于经典柏林噪声的一些偏好可能来自于能够使用已知的值,从而产生已知的视觉特征,而不是投入所需的时间来找到所需的输入参数,以便使用单纯形噪声获得等效输出 [simplex noise]的视觉特性稍有不同,因此它并不总是经典noise的直接插件替代品。依赖于经典噪声的详细特征的应用程序,如精确的特征大小、值的精确范围或更高阶的统计信息,可能需要进行一些修改,以便在使用单纯形噪声时看起来更好。
斯特凡·古斯塔夫森
只是一些轶事的经验,我使用经典柏林噪声的原因是因为Ken Perlin有一个经典柏林噪声的概念,同时提供了一个改进的柏林噪声的概念。听起来可能很傻,但经典的柏林噪音更容易复制并粘贴到我的程序中,所以我使用了它。我一直打算着手移植那个Java实现,但经典的Perlin似乎工作得很好,所以我从不费心添加它
肯·佩林为他的单纯形噪声算法申请了专利。就我所知,他的经典算法并没有获得专利。我会直截了当地回答这个问题,我会说,这是因为柏林噪声非常容易让你动脑。另一方面,单纯形噪声是一种更为复杂和复杂的噪声。建立和运行柏林实现比单纯形容易得多,因此得到了更多的使用。这对simplex的情况没有帮助,因为两者在视觉效果上非常相似(特别是在你稍微操纵噪音之后) Kenneth Perlin自己为基于硬件的实现设计了算法,因此做出了设计决策,使之更容易实现。这方面的一个例子可以在这个专利中看到 对表内存的需求:原始的Noise算法依赖于大量的表查找,这在软件实现中是相当合理的,但在硬件实现中是昂贵的,并且构成了成本瓶颈,特别是当需要多个Noise函数实例并行时。理想情况下,噪波实现不应依赖于大量表的存在
单纯形噪音看起来更糟糕,很多人认为它在更高的维度上看起来“越来越糟糕”。对于大多数应用,我仍然推荐它而不是柏林,因为大多数应用不会只使用原始的单纯形,而是它的倍频程,它看起来与柏林的倍频程大致相同,倍频程要快得多。Hmm,好吧,我将试着用我目前对柏林噪声、单纯形噪声和分数布朗运动的知识来解决这个问题。下面我的观点可能是错误的,所以如果我说的不正确,请纠正我。陈述1:可能是真的,但人们总是可以修改噪声的输出,使其看起来有90度角的方形。声明2:Afaik,fbm使用噪声,无论是柏林噪声、单纯形噪声还是任何其他噪声,它都会产生一层八度音阶。Simplex和perlin只是一种噪音,与层无关。陈述3:与我的答案相同