假设我正在使用Perlin噪声(或单工噪声或任何类似噪声)生成某些纹理。然后我生成mipmaps以获得该纹理的缩小版本...

我的问题是,是否有可能直接(快速)在给定位置上计算所述噪声的较低LOD版本,而无需执行任何步骤首先生成高频噪声,然后生成Mipmap。

经常使用的不同频率和幅度的噪声总和又如何呢?

评论

您的意思是不是以每mip的新比例值再次直接采样任何组合噪声?目标是加快生成MIP?

#1 楼

我会用一个小星号说是。

当生成Perlin噪声纹理时,如您所说的那样,使用多个八度的噪声,增加较高的八度(较高的频率,较低的幅度)是为了在噪声中添加高频细节。

在制作纹理的mipmap时,重点是要删除在该mip贴图级别的分辨率下会引起混叠的高频内容。

因此,当对多个倍频程perlin噪声纹理进行特定的mip级别时,您可以找出导致混叠的频率,并仅使用直至(但不包括)该点的所有倍频程。

结果将是您具有合理的技巧。

但是,星号小有一些原因:


您得到的结果不会就像您对具有最高频率内容的图像进行剪切一样。这可能不一定是一件坏事,因为制作mips的通常方法会引起一些模糊(模糊是低通滤波器),因此您不会有mips附带的模糊。但是,较高的八度音阶可能会添加比您期望的低一些的频率内容。您较低的mips可以处理此频率,不幸的是,这些数据会丢失。
您的八度音阶可能无法与各种mip级别可以处理的频率完美对齐。例如,如果一个八度音阶仅略高于奈奎斯特频率,您将错过该八度音阶给您的某些频率分量。

由于这两个点,它可能会更多正确地处理每个mip级别的所有八度音,但是要对通过nyquist的八度音进行低通滤波。

比在截止点只删除八度音要昂贵得多( :