Opaque のシェーダ に対して アルファを入れても無視されてしまう
fixed4 frag (v2f i) : SV_Target { if (i.uv.x < 0.2 || i.uv.x > 0.8 || i.uv.y < 0.2 || i.uv.y > 0.8) { return fixed4(0, 0, 0, 1); } return fixed4(1, 1, 1, 0); }
clip
を利用することでその問題を解決できます
clip関数 は 引数に 0未満の値を渡すことで描画をスキップしてくれます
そのため先程の処理にclipを追加すると、このように真中をくり抜いてくれます
fixed4 frag (v2f i) : SV_Target { if (i.uv.x < 0.2 || i.uv.x > 0.8 || i.uv.y < 0.2 || i.uv.y > 0.8) { return fixed4(0, 0, 0, 1); } clip(-0.1); return fixed4(1, 1, 1, 0); }