夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

Unity でShaderGraphを使う 導入

ここまでShaderを理解するためにコードを読んでいましたが、UnityではGUIベースでShaderを作成できるShaderGraphと呼ばれる機能があります。

今回ShaderGraphを導入し使用していきます。

〇新しいプロジェクトを作成する

 今回はUnity2019.2.9f1を使用しています。

 f:id:Holomoto-Sumire:20200524094230j:plain

 Shader Graphを使用するためには[3D]ではなく[LWRP Template]のテンプレートを選択します。

 プロジェクトの名前と保存場所を設定し作成します。

 f:id:Holomoto-Sumire:20200524094647j:plain

 

This template is a good starting point for developers focused on performance,The Lighteright Render Pipeline offers both real-time lighting and baked lighting in a single-pass forward renderer, This decreases the a mount od necessary draw calls, making LWRP idea for projects that must scale across platforms,including mobile hardware.

このテンプレートは、パフォーマンスを重視する開発者のための良い出発点です。Lighteright Render Pipelineは、シングルパスのフォワードレンダラでリアルタイムライティングとベイクドライティングの両方を提供しています。

[3D]テンプレートと異なりUnityが開いたらすぐにサンプルシーンが開きます。

f:id:Holomoto-Sumire:20200524094647j:plain

[PackageManager]を開くと[Lightweight RP]がすでに導入されていることがわかります。これによってカスタムShaderを作成することができます。

〇マテリアルを作成する

Shaderを作成してUnityで表示させ見るためにまずはマテリアルを作成します。

Assets/Materials内で右クリックから[Create]で新規のマテリアルを作成します。

f:id:Holomoto-Sumire:20200524105952j:plain

ここで[3D]テンプレートの場合DefaultShaderがデフォルトで設定されますが、ここでは[Lightwaight Render Pipline/Lit]がデフォルトで設定されます。

f:id:Holomoto-Sumire:20200524110210j:plain

〇Shaderを作成する

では本題のShaderを作成します。

 マテリアル同様Assets/Materials内で右クリックから[Create]で新規のShaderを作成します。

 ここでは[Standard SurfaceShader]ではなくShaderGraphを使用するために[PBR Graph]を選択します。

f:id:Holomoto-Sumire:20200524111049j:plain

f:id:Holomoto-Sumire:20200524111314j:plain

作成したShaderをダブルクリックすることでShaderGraphのWindowが開きます。

f:id:Holomoto-Sumire:20200524111607j:plain

[PBR Master]にプロパティがありそれぞれに対応するノードが接続されています。

f:id:Holomoto-Sumire:20200524112344g:plain

〇ShaderGraphを使用する

新しいノードを作成します。これはShaderGraphのウィンドウで[スペースキー]を押すことでダイアログが開きます。

f:id:Holomoto-Sumire:20200524112706j:plain

ここではノイズマテリアルを作成したいと思います。検索バーに[Noise]と検索します。

[SimpleNoise]を追加します。

f:id:Holomoto-Sumire:20200524113410j:plain

[SimpleNoise]には二つのパラメータが存在します。

f:id:Holomoto-Sumire:20200524115942j:plain

・UV=ノイズの適応座標

・scale=ノイズの拡大率

次にリムライトなどを再現する[Frenel Efect]のノードを追加します。

f:id:Holomoto-Sumire:20200524120347j:plain

〇作成したノードをつなぐ

スペースキーでノードの追加から[Multiply]を選択し追加します。

画像のようにD&Dから線を出しノードとノードをつなぎます。

f:id:Holomoto-Sumire:20200524121816j:plain

これをPBRの[Emittion]につなぎます。

これでマテリアルの発光としてリムの部分にノイズが適応されました。

〇カラーの追加

新しいノードとして[Color]を追加します。

f:id:Holomoto-Sumire:20200524122231j:plain

Modeを[HDR]に変更します。HDRとはハイ・ダイナミック・レンジの意で発光など明るさにかかわる色に使用します。

2つ目の[Multiply]を追加しColorの出力と一つ目のMultiplyの出力をそれぞれつなぎます。

最後にPBRの[Emittion]にノードをつなぐことで発光色を持たせることができました。

f:id:Holomoto-Sumire:20200524122742j:plain

〇保存

作成したShaderGraphを保存します。

f:id:Holomoto-Sumire:20200524122925j:plain

Window上部の[Save Asset]をクリックすることで保存することができます。

〇マテリアルとしてUnityで見る

シーンウィンドウへ戻り作成したShaderをマテリアルに適応後適当なオブジェクトにマテリアルを適応しました。

f:id:Holomoto-Sumire:20200524123210j:plain

これでShaderGraphを使用することができました。

まずは導入とShaderGraphがどのようなものかが理解できたので次はもっと複雑なことにチャレンジします。