噪波纹理着色器节点

Note

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

噪波纹理着色器节点。

噪声纹理*节点在输入纹理坐标处评估一个分形佩林噪声。

输入

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

矢量

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

W

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

比例|缩放

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

细节

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

粗糙度

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

畸变

畸变量。

属性

规格尺寸

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

1D

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

2D

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

3D

在三维空间中,在输入的*维度上评估噪声。

4D

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

Note

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

输出

系数

分形

颜色

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

示例

../../../_images/render_shader-nodes_textures_noise_example.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

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