シェーダーとマテリアル
Universal Render Pipeline (ユニバーサルレンダーパイプライン、URP) は、Unity のビルトインレンダーパイプラインとは異なるシェーディングのアプローチを採用しています。そのため、ビルトインの Lit シェーダーとカスタムの Lit シェーダーは URP では利用できません。その代わり、URP には新しいスタンダードシェーダーのセットが用意されています。URP では、一般的なユースケースシナリオ向けの以下のシェーダーを利用できます。
- Complex Lit
- Lit
- Simple Lit
- Baked Lit
- Unlit
- Terrain Lit
- Particles Lit
- Particles Simple Lit
- Particles Unlit
- SpeedTree
- Decal
- Autodesk Interactive
- Autodesk Interactive Transparent
- Autodesk Interactive Masked
アップグレードのアドバイス: 現在のプロジェクトを URP にアップグレードすると、ビルトインシェーダーを新しいものに アップグレード できます。ビルトインレンダーパイプラインの Unlit シェーダーは、引き続き URP で利用できます。
SpeedTree シェーダーについては、これらのシェーダーを再インポートした場合、Generate Materials ボタンまたは Apply & Generate Materials ボタンをクリックしない限り、マテリアルは再生成されません。
ノート: Unity ビルトインレンダーパイプラインの Unlit シェーダーは、URP で利用できます。
シェーダーの選択
URP では、物理ベースシェーダー (PBS) および非物理ベースレンダリング (PBR) のいずれかを利用してリアルタイムライティングを実現できます。
PBS の場合は、Lit シェーダー を使用します。このシェーダーはあらゆるプラットフォームで使用できます。シェーダーの品質はプラットフォームに応じて変動しますが、すべてのプラットフォームで物理ベースレンダリングが維持されます。これにより、ハードウェア全体でリアルなグラフィックスを実現できます。Unity の スタンダードシェーダー および Standard (Specular setup) シェーダー は、どちらも URP の Lit シェーダーに対応しています。シェーダーのマッピング一覧については、シェーダーのマッピング セクションを参照してください。
性能の低いデバイスをターゲットにする場合や、プロジェクトでよりシンプルなシェーディングを使用する場合は、PBR ではない Simple Lit シェーダー を使用します。
リアルタイムライティングが必要ない場合や、ベイクしたライティング のみを使用してグローバルイルミネーションをサンプリングする場合は、Baked Lit シェーダーを選択します。
マテリアルに対するライティングがまったく必要ない場合は、Unlit シェーダーを選択できます。
SRP Batcher の互換性
シェーダーと SRP Batcher の互換性があることを確認するには:
- マテリアルのすべてのプロパティを、
UnityPerMaterial
という単一の CBUFFER で宣言します。 - すべてのビルトインエンジンプロパティ (
unity_ObjectToWorld
やunity_WorldTransformParams
など) を、UnityPerDraw
という単一の CBUFFER で宣言します。
SRP Batcher について詳しくは、SRP (スクリプタブルレンダーパイプライン) Batcher のページを参照してください。