深度清除

有些模型多层需要深度写入和深度测试才能正常显示,但是又不去希望这个深度去影响到其他物体,就可以写多一个pass清除深度

例如模型上的ui,在3D相机下,UI不希望有偏移,只用sortorder去控制下

Pass {
    Name "Z Clear"
    ColorMask 0
    ZWrite On
    ZTest Always
 
    CGPROGRAM
    #pragma vertex vert
    #pragma fragment frag
    #include "UnityCG.cginc"
 
    float4 vert (float4 vertex : POSITION) : SV_Position
    {
        float4 pos = UnityObjectToClipPos(vertex);
    #if defined(UNITY_REVERSED_Z)
        pos.z = 1.0e-9f;
    #else
        pos.z = pos.w - 1.0e-6f;
    #endif
        return pos;
    }
 
    void frag() {}
    ENDCG
}



首页 我的博客
粤ICP备17103704号