噪波纹理

Note

这个节点是由着色器节点移植过来的。手册和图片参考的是该节点的着色器版本。这个节点接受字段输入和输出。当没有连接时,矢量输入有一个隐含的 位置 属性值。

噪波纹理节点。

The Noise Texture node evaluates a fractal Perlin noise at the input texture coordinates. It can be used for a single Perlin noise evaluation, or for combining multiple octaves (layers) with increasingly finer detail.

输入

输入是动态的,下面的输入端口会在选择的节点属性需要时出现。

矢量

纹理坐标到样本纹理;如果接口未连接,则默认生成纹理坐标。

W

用于计算噪波的空间维度。

比例|缩放

在树缩放基础上对半径的缩放。

细节

噪声的八度数。输入的小数部分乘以最高倍频的幅度。更高的八度数对应于更高的渲染时间。

粗糙度

在更平滑的噪波模式和更粗糙的尖锐峰值之间进行混合。

间隙度

每两个连续八度的音阶之间的差异。较大的数值对应于较高的八度音阶。

偏移量

每个八度的偏移量,决定了最高八度将出现的水平。

增益

一个额外的乘法器来调整八度的大小。

畸变

畸变量。

属性

维度

用于计算噪波的空间维度。

1D:

在输入 W 处评估一维空间的噪声。

2D:

在二维空间中评估输入 矢量 的噪声。Z分量被忽略。

3D:

在三维空间中评估输入 矢量 的噪声。

4D:

在4D空间中评估输入 矢量 和输入 W 作为第四维的噪声。

Note

更高的维度对应着更高的渲染时间,所以除非有必要使用更高的维度,否则应该使用更低的维度。

规格化

如果启用,将确保输出值位于0.0至1.0范围内。如果禁用,输出值将在-1.0至1.0范围内。

类型

Type of Noise texture, with different ways to combine octaves.

FBM:

Fractal Brownian motion, produces a homogeneous and isotropic result. Values from octaves are added together.

多重分形:

More uneven, varying by location similar to real terrain. Values from octaves are multiplied together.

混合式多重分形:

Creates peaks and valleys with different roughness values, like real mountains rise out of flat plains. Combines octaves using both addition and multiplication.

脊状多重分形:

创造尖锐的山峰。计算噪点的绝对值,创建 "峡谷" 效果,然后将表面颠倒翻转。

异向地形:

类似于 混合式多重分形,可创建异质的地形,但具有河道的相似性。

输出

系数

分形噪波的值。

颜色

每个分量中具有不同分形噪声的颜色。

示例

../../../_images/render_shader-nodes_textures_noise_example.jpg

高细节噪波纹理效果。

使用相同参数的不同噪波类型效果。
../../../_images/render_shader-nodes_textures_musgrave_example-type-fbm.jpg

fBM (分形布朗运动)。

../../../_images/render_shader-nodes_textures_musgrave_example-type-multifractal.jpg

多重分形。

../../../_images/render_shader-nodes_textures_musgrave_example-type-hybrid.jpg

混合多分形。

../../../_images/render_shader-nodes_textures_musgrave_example-type-terrain.jpg

异向地形。

../../../_images/render_shader-nodes_textures_musgrave_example-type-ridged.jpg

脊状多重分形。

注意

虽然噪波在本质上是随机的,但它遵循某种模式,在某些配置中可能不会评估为随机值。例如,考虑以下配置,一个网格中的物体有一个材质,在它们的位置上评估一个噪波纹理。人们可能期望这些物体有随机值,因为它们的位置不同,但情况并非如此。

../../../_images/render_shader-nodes_textures_noise_issue-constant-value.png

噪声评估为常数的配置实例。

似乎所有的对象都有一个 0.5 的值。为了理解为什么会发生这种情况,让我们看看下面这个 1D 噪波纹理的图。

../../../_images/render_shader-nodes_textures_noise_1d-noise-plot.png

一个具有零细节和零失真的一维噪声的图。

水平线表示0.5的值,垂直线表示整数,假设噪声比例为1。可以看出,噪声总是与0.5线相交于整数。由于上述对象分布在一个网格上,并且有整数的位置,它们都被评估为0.5。这就解释了眼前的问题。

一般来说,在噪波尺度倒数的整数倍上对噪波进行的任何不连续评估将总是评估为 0.5。这也说明,更接近的评价将有接近 0.5 的值。在这种情况下,几乎总是首选使用白噪波纹理。

不管怎么说,人们可以通过一些方式来缓解这个问题:

  • 调整噪声的比例,以避免噪声与评价域对齐。

  • 在纹理坐标上增加一个任意的偏移,以打破与评估域的对齐。

  • 在更高的维度上评估噪声,并调整额外的维度,直到达到满意的结果。

../../../_images/render_shader-nodes_textures_noise_issue-constant-value.png

通过与任意数值相加来缓和问题。

../../../_images/render_shader-nodes_textures_noise_solution1-constant-value.png

通过拿掉Z轴来缓和问题。

../../../_images/render_shader-nodes_textures_noise_solution2-constant-value.png

通过与任意数值相加来缓和问题。

../../../_images/render_shader-nodes_textures_noise_solution3-constant-value.png

通过从更高维度进行评估来缓解问题。

同样,在其他配置中,人们可能会在噪声中遇到一些带状模式,其中有高对比度区域的带状,然后是低对比度区域的带状。例如,沿其中一个轴线略微倾斜的平面将有这样的带状模式。

../../../_images/render_shader-nodes_textures_noise_issue-banding.png

一个噪声具有带状模式的配置实例。

发生这种情况是因为沿其中一个轴的轻微倾斜导致沿垂直轴的数值变化非常缓慢,使得噪声的网格结构更加明显。缓解这个问题的最简单方法是将坐标旋转一个任意的量。

../../../_images/render_shader-nodes_textures_noise_solution-banding.png

通过将坐标旋转任意量来缓解此问题。