既知の制約
サーフェスシェーダーにおける Alpha Test pragma について
Built-in Render Pipeline を使用するプロジェクトで、サーフェス シェーダーを使用するオブジェクトをレンダリングする場合 alphatest pragma を使用すると、Render ノードがそれらのオブジェクトのアルファ値を正しく出力しないことがあります。 これは Compositor Graph 内の後続のノードに影響します。
このようなシェーダーの一例として、Unity の Tree Editor で使用されているリーフシェーダーがあります。
この問題を回避するためには、現時点では、シェーダーファイルを変更してalphatest
を clip
に置き換える必要があります。
以下のコードスニペットを参照してください。
float _Cutoff;
void surf (Input IN, inout SurfaceOutput o) {
half4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
o.Albedo = c.rgb;
o.Alpha = c.a;
clip(o.Alpha - _Cutoff);
}