即使在自定义深度蒙版着色器 UNITY 中进行 z 测试后,某些模型也可见



在使用某些 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 它只会绘制深度)。

相关内容

  • 没有找到相关文章

最新更新