深度表达式

处理所渲染像素的深度的表达式。

Choose your operating system:

Windows

macOS

Linux

DepthFade

DepthFade(深度消退) 表达式用来隐藏半透明对象与不透明对象相交时出现的不美观接缝。

项目

说明

属性

消退距离(Fade Distance)

这是应该发生消退的全局空间距离。未连接 FadeDistance(FadeDistance)输入时,将使用此距离。

输入

不透明(Opacity)

接收深度消退前对象的现有不透明度。

FadeDistance(消退距离)

这是应该发生消退的全局空间距离。

深度消退前

深度消退后

网络(单击可查看大图)

PixelDepth

PixelDepth(像素深度) 表达式输出当前所渲染像素的深度,即该像素与摄像机之间的距离。

此表达式支持正数,不支持负数。这是因为在现代硬件上,渲染器依赖于保守深度优化来维持良好的性能。这就带来了额外的一点好处:如果深度可以 远离 摄像机,硬件深度抑制(hardware depth rejection)可以通过顶点着色器输出重复使用。否则,如果允许像素深度偏移 移向 摄像机,就可能导致对象戳穿一切,这样无论像素是否使用像素深度偏移进行遮挡,像素着色器都会处理这些像素。

PixelDepthExample.png

结果

节点网络(单击可查看大图)

在此示例中,已将材质网络应用于地板。请注意当地板后退 2048 个以上单位时,线性插值在两种颜色之间是如何进行混合的。使用了 Power(幂)表达式来加强这两种颜色之间的对比,并产生更有意义的视觉效果。

SceneDepth

SceneDepth(场景深度) 表达式输出现有的场景深度。这类似于 PixelDepth(像素深度) ,但是 PixelDepth(像素深度)只能在当前所绘制像素处进行深度取样,而 SceneDepth(场景深度)可以在 任何位置 进行深度取样。

只有半透明材质可以利用 SceneDepth(场景深度)。

项目

说明

输入

UVs

接收 UV 纹理坐标,用来确定对"纹理"进行取样的深度。

SceneDepthExample.png

结果

节点网络(单击可查看大图)

在本示例中,我们已将材质网络应用于一个半透明球体。请注意,SceneDepth(场景深度)节点将读取该球体背后的像素,而不是读取球体表面的像素。

产生的规范化深度是 0.0 到 1.0 范围内的线性深度。

欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。
填写问卷调查
取消