MRが楽しい

MRやVRについて学習したことを書き残す

Shader Graphを使ってシェーダを作成する

本日は Unity の小ネタ枠です。
Shader Graph を使ってシェーダを作成する手順を記事にします。

Shader Graph

Shader Graph はシェーダーを視覚的に構築するためのツールです。Unity 2018.1 以降の Unity で使用できます。
URP(ユニバーサルレンダーパイプライン)やHDRP(HDレンダーパイプライン)などのスクリプタブルレンダーパイプラインをインストールすると、自動的にプロジェクトにインストールされます。
docs.unity3d.com

Unityプロジェクトの作成

Shader Graph は URP または HDRP 環境のプロジェクトで利用できます。
今回は[3D Sample Scene]をサンプルシーンに選択して Unity プロジェクトを新規作成しました。

ShaderGraphの作成

新規に Shader Graph でシェーダを作成する場合は、Asset フォルダで右クリックから[Create -> Shader -> Blank Shader Graph]を選択します。

ファイルが生成されるのでダブルクリックで選択すると Shader Graph の編集画面が開きます。

初めにターゲットのレンダーパイプラインを指定します。
[Graph Inspector]の[Graph Settings -> Active Targets]の[+]ボタンから[Universal]を選択します。

デフォルトの Lit Shader Graph が生成されます。
編集画面右上の[Save Asset]で Shader Graph の変更内容を保存します。

Materialへの設定とシーンへの反映

作成したシェーダを元にマテリアルを作成し、シーンに反映してみます。
Asset フォルダで右クリックから[Create -> Material]を選択します。

作成したマテリアルを選択して[Shader]項目から作成した Shader Graph のシェーダを選択します。

これでシェーダを利用したマテリアルが作成できました。
[Scene]画面を開き、マテリアルを反映したいオブジェクトに直接ドロップすることでマテリアルをシーンに反映できます。

ShaderGraphの編集

この状態で Shader Graph を編集してシーンへの変化を確認してみます。
再び Shader Graph の編集画面を開きます。[スペースキー]または右クリックから[Create Node]を選択して Node を追加します。

今回はシェーダのベースカラーを変更してみます。
[Color]ノードを選択して追加します。

追加された[Color]ノードの[Out]スロットから接続ラインをドラッグして[Fragment]ノードの[Base Color]に接続します。

[Color]ノードのカラーバーをクリックして、カラーピッカーからベースカラーとしたい色を選択します。

変更内容を保存します。編集画面右上の[Save Asset]をクリックします。

シーンを確認すると、設定したマテリアルの見た目が変化しています。

参考ページ

docs.unity3d.com