Deferred Lightingレンダリングパス
Vertex Litレンダリングパス詳細

Forward Renderingパスの詳細

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Sumbission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

このページでは Forward Rendering Path の詳細について説明します。

Forward Renderingパスは各オブジェクトを,オブジェクトに作用するライトにもとづいて,ひとつかそれ以上のパスにレンダリングします。ライトそのものは,設定および強度によって,Forward Renderingにより別々に扱われます。

実装の詳細

Forward Renderingでは,各オブジェクトに作用する,いくつかのもっとも明るいライトは,完全なピクセルライティングモードでレンダリングされます。次に最大で4つのポイントライトが頂点ごとに計算されます。他のライトは球面調和(SH)として計算され,近似値になりますがより速くなります。ライトがピクセルライティングとなるかどうかは次のことに依存します:

  • Render ModeをNot Important に設定したライトは常に頂点ライティングかSHとなります。
  • もっとも明るい指向性ライトは常にピクセルライティングです。
  • Render ModeをImportant に設定したライトは常にピクセルライティングです。
  • もし上の結果により,現在のPixel Light Count Quality Setting より少ないライトの数となった場合,明るさを抑えるために,より多くのライトがピクセルライティングとなります。

各オブジェクトのライティングは次のように行われます:

  • Base Passは一つのピクセルごとの指向性ライトおよび全ての頂点ごと/SHライトを適用します。
  • 他のピクセルライトは,Additional Pass(追加のパス)でレンダリングされ,ひとつのライトごとにひとつのパスを使用します。

例えば,もし複数のライトにより影響を受けるオブジェクトがある場合(下の絵で丸をつけた部分がライトAからHに作用されている):

ライトAからHが同じカラーと強度であるたと仮定した場合,全て自動レンダリングモードであるため,このオブジェクトにおいて,この順番のとおりにソートされます。もっとも明るい光(AからD)はピクセルライティングでレンダリングされ,4つのライト(DからG)が頂点ライティングとなり,最後に残りのライト(GからH)が球面調和(SH)となります。

ライトグループは重複していることに留意して下さい,例えば最後のピクセルライティングは頂点ライティングモードにブレンドするため,オブジェクトやライトが動き回る際に “Light Popping” (急なライトの変化)は少なくなります。

Base Pass

ベースパスはオブジェクトをひとつのピクセル指向性ライトと残り全てSHライトでレンダリングします。このパスではさらに他のライトマップ,環境光ライティング,および自己発光ライティング,を追加します。このパスでレンダリングされる指向性ライトは影があります。ライトマップされたオブジェクトはSHライトから照らされないことに留意して下さい。

Additional Passes

Additional Passes(追加のパス)は,このオブジェクトに作用する,各々の追加されたピクセルライトでレンダリングされます。これらのパスのライトは影を持てません(結果としてForward Renderingがサポートするのはひとつの指向性ライトと影です)。

パフォーマンスの考慮点

球面調和ライトは_非常に_ 速くレンダリングされます。CPUのコストが極小であり,GPUを適用する場合も_事実上コストなし_ です(すなわち,Base Passは常にSHライティングを計算します,しかしSHライトの性質からいくつSHライトがあってもコストはまったく同じです)。

SHライトの欠点は:

  • オブジェクトのピクセルでなく,頂点で計算されます。これにより,Light Cookieや法線マップはサポートしません。
  • SHライトは非常に低周波です。急なライティングの遷移を行うことが出来ません。また,拡散ライティングしか作用しません(鏡面ハイライトには低周波すぎます)。
  • SHライトはローカルではありません。表面に近い,ポイントあるいはスポットのSHライトは, “何か間違っているように見えます” 。

まとめると,SHライトは小さく動的なオブジェクトには十分ではありません。

Deferred Lightingレンダリングパス
Vertex Litレンダリングパス詳細