ライトマップ(Light map)について


ライトマップとは

常に静止している状態の影や反射光などはリアルタイムで計算するより、その影や反射光を記憶しておいたテクスチャ(ライトマップ)を重ねて貼り付けたほうが、光源による影や反射光を生成する処理を省くことができ効率が良い。この手法は昔から殆どの3Dゲームで使われており当然Unrealエンジンも初めから自動で使われています。


模様や質感などを表す通常のテクスチャのみ

        


光源による反射光や影を記憶したテクスチャ(ライトマップ)

        ||


通常のテクスチャと反射光・影のテクスチャを一枚のポリゴンに合成して貼り付けて完成(マルチテクスチャの例)


Brushのライトマップ

UnrealED3からはSurfaceのプロパティからLight mapの項目で細かさを調整することができます。


標準の32の場合


1にした場合


StaticMeshのライトマップ

StaticMeshの場合、正確には頂点カラーでライトマップを作成しています。頂点カラーとはポリゴンを成り立たせている頂点ごと色をつけることです。
より正確で細かい影をそのStaticMeshに持たせるためには、多くの頂点を用いてそのStaticMeshをモデリングする必要があります。

異なる頂点数のStaticMeshの床にそれぞれ影を付けた場合


頂点が1152個の場合

頂点が72個の場合

2つの場合を比べると、頂点が少ないと影が十分に表現されないことが分かります。

頂点カラーで理想的なライトマップを微細で正確に表現するのは難しく、だからといって影を正確に付けるために頂点数を増やすことは、下手にポリゴン数を増やして処理を重くする原因になります。それを避けるために、Mayaや3DStudioMAX等でライトマップを計算させたテクスチャを作成して使う方法があります。現にUT2k3やUnreal2でもその手法が使われています。