面白いアセットが出ていたので、実際に試してみた。
ProbePolisher
これはLightProbeの機能を使い、イメージベースドライティング(ライティングではなく画像から光源表現する)に近い事を表現するアセットらしい。
照明基礎 3: IBL(イメージ・ベースド・ライティング)1
ちなみにLightProbeとは、光源情報を先にベイクしておく事で、リアルタイムで動作するモデルにも超低負荷(モバイルで動かせるレベル)で光源情報を適応させることの出来る技術。思ってる以上に見た目が綺麗になるのでお勧め(但しPro専用)
使い方については、KarasuさんのUnity Pro機能 LightProbe ってこんな感じ。が凄く分かりやすい
で、実際にProbePolisherのサンプルを使って描画してみた。エリアライトのような形でライティングが配置出来るそうなので、地面の色を反射するような感じで配置してみた所、なんかグっと良くなった気がする。
ちなみに、左がProbePolisherのサンプル、右が通常のライト。ちょっと空の青色を強くしすぎたかも
使い方下のムービーが分かりやすい。
ムービー
要約するとこんな感じ。
- Window>LightMappingでライトマップを開く
- MapsタブのLightProbesにProbePolisher>Sample Probes以下にあるアセットを適当に突っ込む
- Lightprobeを適応させたいモデルのMeshRenderのUseLightProbesにチェックを入れる
後はLight ProbeファイルのSkyColorTop(空の色)とSkyColorBottom(地面からの反射光)を色々と変更出来るらしい。この値を画面の地面・空の色に変更するとグっと見た目がよくなる気がする。
ちなみに、LightProbeでProを要求するのは計算のベイク時のみらしいので、ProbePolisherのサンプルのように既にベイク済みのデータがある場合は無料版Unityでも動かせるらしい。
またAndroid/iOSで使う分にも超軽い上に少ないLightprobeで表現するのでメモリにも優しく、使い勝手が良い。とりあえず突っ込むぐらいの感覚で突っ込んでも良いと思う。
で、とりあえずサンプルを動かす分には不足ないしかなり満足なのだが、肝心のIBLするための方法が分からない。多分こんな感じの手順だと思うのだが、今ひとつ確証が持てない(上手く作れない)
1. パノラマ画像を用意
2. 反対側の光源情報を元にDirectional Lightを配置
3. Lightprobeをベイク
うーん。今度聞いてみるか