本日も昨日に引き続きMRTKGraphicsToolsを見ていきます。
現在ドキュメントを読み進めています。
〇レンダーパイプラインの対応
近年のUnityではスクリプタブルレンダーパイプライン(SRP)を使用することで従来のビルドインパイプラインよりもレンダーパイプラインをカスタマイズすることでより最適な、よりハイクオリティなパフォーマンスのグラフィックを実現できます。
GraphicsToolsStandardShaderのレンダーパイプライン対応状況は次のようになっています。
| レンダーパイプライン | サポート | 備考 |
|---|---|---|
| ビルドイン | 〇 | ぼかし機能はサポート対象外 |
| URP | 〇 | すべての機能にサポート |
| HDRP | × | |
| カスタムパイプライン | ? | レンダーパイプラインの構築状況に依存する |
表を見てもわかる通りURPに最適化されているような印象を受けます。
UnityもURPは将来的な標準パイプラインとなると発表しているので、URPでの使用を大きく想定しているのかもしれません。
ビルドインパイプラインのぼかし機能とは実験的に導入されている機能です。

〇UnityUI のサポート
GraphicsToolsStandardShaderはUnityUIと連携して動作するようになっています。

Graphics Tools/Standard CanvasShaderが提供されています。

UnityUI(Canvas)では通常のオブジェクトと異なりShaderで軸変換を行う際にローカルではなく親であるCanvasの行列変換が行われます。
このため通常のShaderと違う専用のShaderが提供されています。
〇MaterialInspector

GraphicsToolsStandardShaderはStandardShaderGUI.cs を使用してUnityのインスペクターウィンドウでの表示がカスタマイズされています。
UnityのShaderではCustomShaderEditorと呼ばれる機能でこれを実現していますが、これによってチェックを入れた機能のプロパティが動的に出現したりなど使いやすいようなUIを実現しています。

〇レンダリングモード
GraphicsToolsStandardShaderの最初に表示されるプロパティは、マテリアルのレンダリング状態を制御します。
レンダリングモードは、マテリアルがどのタイミングで、どのようにレンダリングされるかを決定します。

これはTransparentやOpaqueなどマテリアルの特性を決めます。
現在Opaque(不透明)、Cutout(α値のクリッピング)、Fade(透明)、Transparent(物理的な透明)、Additive(加算透明)が提供されているほかCustomを使用してレンダリングをカスタマイズすることもできます。

Customでは自身で高度なレンダリング設定をカスタマイズできます。
これはAlphaBlendingやDepthTestなどUntiyで提供されている基本的なマクロを使用できます。

本日は以上です