Questions tagged «noise»

1
原始的Perlin噪声是否比单纯形噪声有任何优势?
Perlin噪声是最流行的程序噪声功能之一。Perlin后来开发了Simplex噪声,此噪声改善了Perlin噪声的一些缺点,尤其是在较大尺寸和方向性伪像上效率低下(Wikipedia列出了Simplex噪声的五个优点)。尽管如此,Perlin噪声似乎仍被广泛使用。我可以想象到,主要原因是从概念上讲,单工噪声在概念上更加难以理解,但是到目前为止,应该有足够的实现方式,因此您不必自己重新实现它。 Perlin噪声是否比Simplex噪声有任何优势?选择噪声函数时,我会选择Perlin而不是Simplex吗?

1
为什么我的Perlin Noise看起来“块状”?
我尝试仅凭理论自己实现Perlin Noise (遵循flafla2.github.io/2014/08/09/perlinnoise.html)。不幸的是,我无法获得“原始” Perlin Noise的外观。 下面的代码呈现Perlin Noise的块状版本的原因是什么? 我应该改进/更改代码中的哪些内容,以使其呈现出没有伪影的Perlin Noise? 我怀疑插值方式或grads向量中可能存在问题。该grads载体包含(晶格点随机向量)和(大小矢量)的点产品-适用于所有4个附近的格点。(随机向量和大小向量在第一个链接中进行了描述。) GLSL沙箱:http://glslsandbox.com/e#32663.0 float fade(float t) { return t * t * t * (t * (t * 6. - 15.) + 10.); } vec2 smooth(vec2 x) { return vec2(fade(x.x), fade(x.y)); } vec2 hash(vec2 co) { return fract (vec2(.5654654, -.65465) * dot …
21 glsl  noise  artifacts 

1
如何在球体上产生程序噪声?
我想在球体表面上产生程序性噪音(例如,程序性地产生行星或大理石纹理的球)。当然,我可以采用一种标准的噪声算法并将其映射到球体上,但这存在将平面投影到球体上的所有问题,例如极点或其他地方的变形。 我想我可能会产生体积噪声并“切出”球体,但这似乎不必要地效率低下-并且,如果该噪声具有一些基于网格的伪像,则这些伪像仍不会均匀地出现在球体上。此外,至少在单工噪声的情况下,从3D噪声中切出2D切片通常看起来与立即生成2D噪声不同。 有什么方法可以避免这些问题,例如通过在球体上自然产生噪声?噪声至少应具有Perlin噪声的质量,理想情况下应具有Simplex噪声的质量。

1
佩林噪声对价值噪声的好处
在研究Perlin噪声的内部工作原理时,我想知道为什么要使用Perlin噪声而不是简单值噪声。据我了解正确,以下内容适用: Perlin噪声是一种基于晶格的噪声函数,可为基础噪声空间中的每个点分配一个n维梯度(对于原始实现是随机的,对于改进的实现是固定的)。现在,您可以通过计算距离矢量和梯度矢量之间的点积来查询空间中每个点的值。之后,您将计算出的所有值取平均值并获得查询的值。 但是,如果不使用梯度矢量,而是使用随机值,值噪声不是一样吗?由于我也在值噪声中的值之间进行插值,因此无法通过在Perlin噪声中使用附加的计算步骤(点积)来看到任何好处。 那么,为什么我要用Perlin噪声代替价值噪声呢?为什么Perlin噪音如此受欢迎?
14 noise 

1
所有基于网格的噪声都不可避免地是各向异性的吗?
我对这也适用于更大数量的尺寸很感兴趣,但是对于这个问题,我将只关注2D网格。 我知道Perlin噪声不是各向同性的(方向不变),并且下面的正方形网格显示出来足以识别其方向。单纯形噪声对此有所改善,但是其下面的等边三角形网格仍然没有完全被遮盖。 我的直觉是,任何试图在电网上产生特定频率的噪声的尝试都会导致在未对准电网的方向上产生较低的频率。因此,尽管可以进行掩盖,但原则上讲噪声不能是各向同性的,除非在不参考网格的情况下生成噪声,否则平均频率在所有方向上都相同。 例如,对于一个无噪声的正方形网格,其边长为,水平或垂直顶点的频率为,而45度(通过正方形的相对角)的顶点的频率为。ññn1个ñ1个ñ\frac1n1个2√ñ1个2ñ\frac1{\sqrt{2}n} 是否可以应用随机分布来抵消顶点位置,从而导致频率在所有方向上都相同?我怀疑没有这样的分布,但是我没有办法证明任何一种。 简而言之,有没有一种方法可以使给定频率的噪声完全基于网格,或者我应该专注于其他方法(基于非网格的噪声或伪装伪影的方法)吗?
14 noise  grid 

1
为什么制作可以平铺的噪波功能要贵两倍?
我已经在几个地方看到,要使Perlin噪声循环无缝发生,就需要以略有不同的方式对它进行两次计算,并对两个结果求和。 此Perlin噪声数学常见问题解答给出了一个公式: F升Ò Ò p(x ,y,ž)= (t − z)⋅ ˚F(x ,y,ž)+ z⋅ ˚F(x ,y,ž− t )ŤFloop(x,y,z)=(t−z)⋅F(x,y,z)+z⋅F(x,y,z−t)tF_{loop}(x, y, z) = \frac{ (t - z) \cdot F(x, y, z) + z \cdot F(x, y, z - t) }{ t} 使噪声函数沿方向循环。它还提到将其扩展为在2维中循环将对进行4个评估,在3维中循环将对进行8个评估。ž ˚F ˚FFFFžzzFFFFFF 我了解这可以使图块之间实现无缝连接,这种连接不仅连续而且可以连续微分,但直觉上希望是这样的情况:如果仅对噪声函数进行一次评估,并以所需的图块大小为模减少网格点。如果噪声函数仅基于紧邻的网格点(2D噪声为4,3D噪声为8),那么当要计算的点超过图块的右边缘时,一定要使用最左边的网格点与其他栅格点之间的噪声质量相同吗? 由于我已经在多个地方看到了这种多重计算方法,因此我认为它必须具有一定的优势,但是我很难看到缺点,当网格点太大时,只需将网格点重新包装回起点即可。我想念什么?
13 algorithm  noise 

1
图像的2D傅立叶变换如何工作?
我了解1D傅立叶变换如何将信号分成其分量频率,但是我很难理解2D傅立叶变换如何影响2D图像。 在另一个问题上,约翰·卡尔斯贝克(John Calsbeek)链接到一篇有关测量噪声函数质量的有趣论文。这显示了各种噪声函数和每个函数的傅立叶变换。 这是像素数据的离散变换,还是用于在任意点生成噪声的连续插值函数的连续变换? 环形形状是否类似于在每个可能的角度对通过图像中心的线进行一维傅立叶变换?还是在整个2D空间中而不是仅沿着穿过中心的线也测量了每个可能角度的变换?我正在尝试使输入图像中的哪些变化与傅立叶变换中的哪些变化相对应。

3
消除抖动噪声的正确方法是什么?
当减小色彩深度并以2位噪声抖动(n =] 0.5,1.5 [并且output = floor(input *(2 ^ bits-1)+ n))时,值范围的两端(输入0.0和1.0 )很吵。希望它们是纯色的。 例如:https://www.shadertoy.com/view/llsfz4 (上图是shadertoy的屏幕截图,描绘了一个渐变,并且两端分别应为纯白色和黑色,但噪声较大) 当然,可以通过压缩值范围来解决问题,以便两端始终取整为单个值。不过,这感觉有点骇人听闻,我想知道是否有办法“适当地”实现此功能?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.