【Unity】【Shader Graph】サーフェスオプションがマテリアルプロパティとして扱えるようになった話 (Unity2021.2から)

Unity2021.2からUnityのシェーダグラフでURPのサーフェスオプションがマテリアルプロパティとして扱えるようになった話です。

Unity 2021.2.3f1
URP 12.1.1

はじめに

今までのシェーダグラフでは、不透明/半透明描画の選択やカリングの設定などがシェーダグラフのGraph Settingsからしか変更できませんでした。
したがって例えば全く同じ処理を持つ不透明のシェーダと半透明のシェーダを作りたい場合には、シェーダグラフのアセット自体を二つ作る必要がありました。

Unity2020.1.15のシェーダグラフ

Unity2021.2からは、この辺りの項目をサーフェスオプションという形でマテリアルのプロパティとして設定できる様になりました。
つまり、マテリアルプロパティを変えることにより、同じシェーダで不透明描画と半透明描画の両方を行えるようになりました。
他にも下図の様にカリングの設定やZWrite、ZTestなどの設定もマテリアルからできる様になりました。

サーフェスオプション

やり方

やり方は簡単で、Graph SettingsAllow Material Override にチェックを入れるだけです。

Allow Material Override

このシェーダを使ったマテリアルを作成すると、マテリアルプロパティとしてサーフェスオプションが表示されていることが確認できます。

参考

blog.unity.com