このページでは Forward Rendering Path の詳細について説明します。
Forward Renderingパスは各オブジェクトを,オブジェクトに作用するライトにもとづいて,ひとつかそれ以上のパスにレンダリングします。ライトそのものは,設定および強度によって,Forward Renderingにより別々に扱われます。
Forward Renderingでは,各オブジェクトに作用する,いくつかのもっとも明るいライトは,完全なピクセルライティングモードでレンダリングされます。次に最大で4つのポイントライトが頂点ごとに計算されます。他のライトは球面調和(SH)として計算され,近似値になりますがより速くなります。ライトがピクセルライティングとなるかどうかは次のことに依存します:
各オブジェクトのライティングは次のように行われます:
例えば,もし複数のライトにより影響を受けるオブジェクトがある場合(下の絵で丸をつけた部分がライトAからHに作用されている):
ライトAからHが同じカラーと強度であるたと仮定した場合,全て自動レンダリングモードであるため,このオブジェクトにおいて,この順番のとおりにソートされます。もっとも明るい光(AからD)はピクセルライティングでレンダリングされ,4つのライト(DからG)が頂点ライティングとなり,最後に残りのライト(GからH)が球面調和(SH)となります。
ライトグループは重複していることに留意して下さい,例えば最後のピクセルライティングは頂点ライティングモードにブレンドするため,オブジェクトやライトが動き回る際に “Light Popping” (急なライトの変化)は少なくなります。
ベースパスはオブジェクトをひとつのピクセル指向性ライトと残り全てSHライトでレンダリングします。このパスではさらに他のライトマップ,環境光ライティング,および自己発光ライティング,を追加します。このパスでレンダリングされる指向性ライトは影があります。ライトマップされたオブジェクトはSHライトから照らされないことに留意して下さい。
Additional Passes(追加のパス)は,このオブジェクトに作用する,各々の追加されたピクセルライトでレンダリングされます。これらのパスのライトは影を持てません(結果としてForward Renderingがサポートするのはひとつの指向性ライトと影です)。
球面調和ライトは_非常に_ 速くレンダリングされます。CPUのコストが極小であり,GPUを適用する場合も_事実上コストなし_ です(すなわち,Base Passは常にSHライティングを計算します,しかしSHライトの性質からいくつSHライトがあってもコストはまったく同じです)。
SHライトの欠点は:
まとめると,SHライトは小さく動的なオブジェクトには十分ではありません。