0013-04-02

[][]シャドウ/ライト計算関連のメモ シャドウ/ライト計算関連のメモ - Nao_uの日記 を含むブックマーク はてなブックマーク - シャドウ/ライト計算関連のメモ - Nao_uの日記 シャドウ/ライト計算関連のメモ - Nao_uの日記 のブックマークコメント

Lighting Pass

Lighting Passはデプス、法線マップ、反射の強さにもとづいてライティングを計算します。ライティングはスクリーン空間で計算されるため、処理にかかる時間はシーンの複雑さと独立しています。ライティングバッファはひとつのARGB32 Render Textureで、拡散ライティングをRGBチャネル、モノクロの鏡面ライティングをアルファチャネルに含みます。ライティングの値は対数的にエンコードされ、ARGB32テクスチャで通常可能であるレンジより範囲が広いダイナミックレンジを提供します。Defferedレンダリングで唯一利用可能であるライティングモデルはBlinn-Phongです。

カメラのニアクリップに交差しないポイントライトやスポットライトは3D図形としてレンダリングされ、シーンに対するZバッファテストが有効化されます。これにより一部あるいは全体がオクルージョンされたポイントライトやスポットライトはレンダリングが非常に安価です。ニアクリッププレーンを交差しないDirectional Light(指向性ライト)およびポイントライト・スポットライトはフルスクリーンの四角形としてレンダリングされます。

ライトの影が有効化されている場合、それらもレンダリングされパスに適用されます。影は"タダ"でないことに留意して下さい、shadow caster(影の投影)もレンダリングする必要があり、より複雑なライトシェーダも適用する必要があります。

唯一利用可能なライティングモデルはBlinn-Phongです。別のモデルを使用したい場合はライティングパス シェーダを自ら修正することが可能で、 Built-in Shader からInternal-PrePassLighting.shaderファイルの修正バージョンを "Assets" フォルダ配下の "Resources" フォルダに格納します。

Built-in Shader は置き換え可能。これでシャドウの計算も置き換えられる?