【Unity】Keywordsを使用してShaderGraphでシェーダーバリアントを作成する

はじめに

今回はKeywordsを使用してシェーダーバリアントを作成していきます。

シェーダーバリアントについてはこの方に記事が参考になります

qiita.com

環境は Unity 2019.4.1f1

Universal Render Pipeline(テンプレートのプロジェクトです)

UnlitGraph を使用しています

シェーダー作成

Keywordはプロパティの追加からKeyword→各種Keywordを作成できます。

f:id:Brave345:20201027155135p:plain

Keywordsのプロパティ詳細はこちら

docs.unity3d.com

ノードは複数のグラデーションを切り替えられるようなシェーダーにしました。

f:id:Brave345:20201027155102p:plain

注意点としてDisplay NameとReference Suffixは同じ名前にしないとうまく切り替えできないです。(少なくとも自分はそうでした)

完成

プロパティから複数のグラデーションを切り替えれるようになりました。

これくらいならブーリアンでもいいのですが、シェーダーバリアントだとブーリアンと比べてコンパイル時間がかかる代わりに実行速度が早いのでケースバイケースで使い分ければいいと思います

f:id:Brave345:20201027155154g:plain