lilToon - ステンシル
https://gyazo.com/423f515c4f528e5198b3a4949a97b338
複数のマテリアル間でマスク処理をおこなうのに使える機能。1つのマテリアルで完結するマスク処理はテクスチャでやれば良いけど、マテリアル同士でマスク処理をしたい場合はステンシルを使う。 仕組み的には、画面上の各ピクセルに0~255の整数値で保存されるステンシル値とよばれる値があり、それを使ってそのピクセルに描画するかどうか決めますよ~みたいな話っぽい。
ちなみに、この画面の各ピクセルのステンシル値を保存している場所をステンシルバッファと呼ぶ。
基本的にRef / Comp / Pass / Render Queue のみいじればOK。
Refがステンシル処理に使われるID。ピクセル上でこの値とステンシル値を比較して、描画するかどうかを決めたり、そのピクセルのステンシル値を更新するかどうかなどを決められる。
https://gyazo.com/809288c8a3e66eb6b69b8111b71c7b3c
使用例
代表的なのは、顔パーツを髪の上から描画させるパターンかな?
使い方次第で、髪マテリアルを不透明と半透明の2つ用意して、顔パーツの上だけ半透明の髪マテリアルで描画する・レンズ越しにしか見えないオブジェクトを描画させるなどが可能だとか。公式ドキュメント参照。