在使用某些 3D 模型时,具有 z 测试的深度遮罩着色器需要正常运行,如屏幕截图1 所示
截图1
但它给出的结果显示了需要隐藏的 3D 模型部分的灰度轮廓。[参考截图2]
截图2
我们尝试将 ZTest 从 LEqual 更改为 Always,这稍微解决了这个问题,但对象再次部分可见。
Shader "Custom/mask" {
SubShader {
Tags {
"Queue" = "Geometry+10"
"RenderType" = "Opaque"
}
Lighting Off
ZTest LEqual
Cull Back
ZWrite On
ColorMask 0
Blend One One
Pass {Fog {Mode Off}}
} }
似乎您从遮挡网格中进行了早期的Z通道,我猜这是重建或运动跟踪的面部? 所以眼镜是用标准材料渲染的,对吗?
遮罩材料需要尽早绘制,因此队列应该是 Geometry-10 或其他东西。除颜色掩码 0 外,所有其他标记都不相关。
照明和雾已弃用,混合没有用,因为您无论如何都不会绘制到颜色缓冲区(使用 ColorMask 0 它只会绘制深度)。