深度表达式

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

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 范围内的线性深度。

Tags
Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback