はじめに
シェーダーはほとんど書いたことがありませんが、GUIでシェーダーを組み立てることができるらしいので、試してみました。
使用したバージョン
Unity 2018.2.0f2
Render Pipeline Core Library 3.0.0 - preview
Lightweight Render Pipeline 3.0.0 - preview
Shader Graph 3.0.0 - preview
導入方法
- Package Managerから以下の3つをインストールします。
今までのバージョンの上がり方が同じになっているので、バージョン番号は合わせた方が良さそうです。- Render Pipeline Core Library
- Lightweight Render Pipeline
- Shader Graph
- Scriptable Render Pipeline Assetを作成します。
- GraphicsSettingsに作成したScriptable Render Pipeline Assetを設定します。
これでShader Graphを作成する準備が完了となります。
シェーダーの作成
今回は、Shaderとして作成したものとShader Graphで作成したものを比較してみたいと思います。
Shader
以下のサイトを参考にトゥーンシェーダーを用意しました。
【Unityシェーダ入門】トゥーンシェーダを自作してみる - おもちゃラボ
Shaderを利用する場合は、Scriptable Render Pipelineを設定していてはダメなようでした。
(シェーダーを利用しているオブジェクトが紫色になってしまう。。。)
Scriptable Render Pipelineを設定していないとShader Graphを利用しているオブジェクトは紫色になります。
Shader Graph
これをShader Graphを利用して再現してみます。
ライトの向きやライトの色などを取得する方法がデフォルトでは無かったため、プロパティとしています。
ツリーの上側は、サーフェイスシェーダー部分に似せた処理となっています。
ツリーの下側は、ライティングシェーダー部分に似せた処理となっています。
そして結果がこれです。
Scriptable Render Pipelineを設定しているため、Shaderを利用している方が紫色になっています。
若干、色味がShaderとShader Graphで異なってしまいました。
まとめ
- ShaderGraphに必要なものはPackage Managerからインストールできる。
- Scriptable Render Pipelineの設定が必要になる。
- ShaderとShader Graphは共存できない可能性がある。
- Shader Graphにはデフォルトでは取れないパラメータ(ライトの向きなど)がある。
準備が少し大変でしたが、シェーダーの処理過程が見えるのでとてもわかりやすいと感じました。
この記事では、Shader Graphを導入してシェーダーを作成できるところまでできたということで、ここまでにしたいと思います。
「Scriptable Render Pipelineとは?」や、「ShaderとShader Graphは共存できないのか?」など、いくつか疑問が出てきましたので、いつか調べてみたいと思います。