記事一覧

Lightmassのコツ

全ての静的メッシュにGI(グローバルイルミネーション)のライトマップを作成するLightmass。
メッシュの位置やライトを動かすとライトマップが無効になるので定期的にビルド処理して確認しなければいけないのが面倒。
しかもライトマップを想定したStatiMeshは、マテリアルのマッピングに使うUVとは異なるライトマップ専用のUVが必要。UDKでも自動で生成してくれる機能はあるが、正直頼りないので個人的にはモデリングソフトの段階で専用のUVを作っておいたほうがいいと思う。
それぞれのStaticMeshはエディタからデフォルトのライトマップ解像度(Light Map Resolution)を指定するが、マップに設置したStaticMeshのプロパティから個別に変更することもできる。
このライトマップの解像度は高いことに越したことはないが、サイズやStaticMeshの設置数に比例してLightmassのビルド時間は確実に延びていく。それを解決するためにSwarm Agentという機能があり、ネットワーク内の複数のPCにビルド処理を分散させることができるらしい。
ただし、自分のように趣味で使ってる人にそんな環境は無いので、ライトマップは極力小さな解像度に設定している。具体的な影は動的シャドウとSSAO処理に任せて、ライトマップは大雑把なGIの傾向が再現できていれば良いレベルだと思ってる。

ファイル 183-1.jpg
このくらいの窓だと解像度は16か32。もはやドットレベル。離れたポリゴンのUV同士もそれなりに間隔を空けないといけない。


Lightmassのビルド設定にPreview~Productまで4段階の設定があり、かかる時間と結果に結構差がある。

---Preview 34秒---
ファイル 183-2.jpg
DetailLighting表示。
StaticMeshの接合部にライトマップのつなぎ目が目立つ。

ファイル 183-3.jpg
Lit表示。

---Product 3分28秒---
ファイル 183-4.jpg
Previwのときにあった不自然なつなぎ目は分からない。

ファイル 183-5.jpg


でもそれなりの解像度のライトマップでやりたいので、GPU処理とかも取り入れて高速化してほしいです。

トラックバック一覧