Unity のビルトインのレンダーパイプラインはさまざまなレンダリングパスをサポートしています。レンダリングパスは、ライティングとシェーディングに関連する一連の操作です。レンダリングパスが異なると、機能とパフォーマンス特性も異なります。どのレンダリングパスがプロジェクトに最も適しているかは、プロジェクトのタイプとターゲットハードウェアによって異なります。
Graphics (グラフィックス) ウィンドウでプロジェクトに使用するレンダリングパスを選択し、カメラごとにそのパスをオーバーライドできます。
プロジェクトを実行するデバイスの GPU がユーザーの選択したレンダリングパスをサポートしない場合、Unity は自動的に忠実度の低いレンダリングパスを使用します。例えば、ディファードシェーディングを処理できない GPU では、Unity はフォワードレンダリングを使用します。
フォワードレンダリングは、ビルトインレンダーパイプラインのデフォルトで、汎用のレンダリングパスです。
リアルタイムのライトは、フォワードレンダリングで描画するには非常に負荷がかかります。このコストを相殺するために、Unity が一度にピクセルごとにレンダリングするライトの数を選択できます。シーンの残りのライトは、頂点ごと、またはオブジェクトごとなど、より低い忠実度で描画されます。
プロジェクトで大量のリアルタイムライトを使用しない場合、またはライティングの忠実度がプロジェクトにとって重要でない場合は、このレンダリングパスがプロジェクトに適していると考えて良いでしょう。
詳しくは フォワードレンダリングパス を参照してください。
ディファードシェーディングは、ビルトインレンダーパイプラインで最もライトと影の忠実度が高いレンダリングパスです。
ディファードシェーディングは GPU サポートを必要とし、いくつかの制限があります。半透明のオブジェクト (Unity はフォワードレンダリングを使用)、平行投影 (Unity はカメラにフォワードレンダリングを使用)、ハードウェアのアンチエイリアス (ポストプロセスエフェクトを使用して同様の結果を得られます) をサポートしません。カリングマスクのサポートに制限があり、Renderer.receiveShadows フラグを常に true として扱います。
プロジェクトに多数のリアルタイムのライトがあり、高いレベルのライティングの忠実度が必要で、ターゲットハードウェアがディファードシェーディングをサポートしている場合、このレンダリングパスはプロジェクトに適しています。
このレンダリングパスの制限を含む詳細は、ディファードシェーディングレンダリングパスのページを参照してください。
古い Vertex Lit (頂点ライト) はライティングの忠実度が最も低いレンダリングパスで、リアルタイムの影をサポートしません。これは、フォワードレンダリングパスのサブセットです。
詳しくは Vertex Lit レンダリングパス を参照してください。
ディファード | フォワード | 頂点ライト | |
---|---|---|---|
機能 | |||
パーピクセルライト (法線マップ、ライトクッキー) | 可 | 可 | - |
リアルタイムシャドウ | 可 | 警告あり | - |
リフレクションプローブ | 可 | 可 | - |
深度 & 法線バッファ | 可 | 追加のレンダリングパス | - |
ソフトパーティクル | 可 | - | - |
半透明オブジェクト | - | 可 | 可 |
アンチエイリアス | - | 可 | 可 |
ライトカリングマスク | Limited | 可 | 可 |
ライトの厳密さ | すべてのピクセル | 一部のピクセル | すべての頂点 |
パフォーマンス | |||
1 ピクセルあたりのライトのコスト | ライトが当たる pixel の数 | ライトが当たるピクセル数*オブジェクトの数 | - |
通常レンダリングされるオブジェクトの個数 | 1 | ピクセル単位のライトの数 | 1 |
簡易なシーンのオーバーヘッド | 高 | なし | なし |
サポートするプラットフォーム | |||
PC (Windows/Mac) | Shader Model 3.0+ & MRT | すべて | すべて |
モバイル (iOS/Android) | OpenGL ES 3.0 & MRT、Metal | すべて | すべて |
コンソール | XB1、PS4 | すべて | - |
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.