テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

【Unity】リアルタイムGIの影響範囲を表現するClusteringとLit Clusteringについて

f:id:tsubaki_t1:20160105234319j:plain

Unity 5.3よりシーンビューの項目に新しく「Clustering」と「Lit Clustering」が追加されました。

f:id:tsubaki_t1:20160105235119j:plain

「Clustering」と「Lit Clustering」はPrecumputed Realtime GIの解像度や影響範囲を表現するために使用する項目です。
UnityのリアルタイムGI(Global illumination:間接光)は、事前に光の影響等を計算しておき、マテリアルの色や受ける光の強度から他のオブジェクトに対して影響を与える方式を使用しています。

これを光1本1本やっては時間がいくらあっても足りないので、ある程度の解像度で行う訳ですが、この解像度を表すのがシーンビューに追加された「Clustering」と「Lit Clustering」という訳です。

「Clustering」と「Lit Clustering」

Clusteringに設定すると、モザイクのような模様が表示されます。これがGIの解像度です。GIはこの範囲内で中間補完しながら光の影響を与え合う事になります。

f:id:tsubaki_t1:20160105235315j:plain

Lit ClusteringはClusteringの発光物(Emission)版です。オブジェクトが発光している場合、どの程度まで影響を与えるのかといった表現を、確認するのに使えます。

f:id:tsubaki_t1:20160105235523j:plain

クラスタのサイズは比較的荒くてもそれなりに見えるので、高くするよりむしろ見た目が悪くならない程度に下げるのが良さそうです。

Clusteringのサイズ

このClusteringのサイズですが、どうもオブジェクトのポリゴン数ではなくサイズによって決まっている節があります。なので、例えば地面のサイズを50*50くらいに設定した場合、非常に細かいクラスタが生成されてしまいます。

f:id:tsubaki_t1:20160106000028j:plain

地面を歩く場合なら兎も角、空から眺める場合この解像度は非常に無駄です。また、高いクラスタ解像度は長いベイク時間を要求します。
特に"7/11 Light Transport"で止まるようなケースの場合、巨大なオブジェクトに対してこの解像度が明らかに大きい場合に発生するみたいです。

Devel/Unity/Unity5でLightmapのbakeがLight Transportで止まる件の対処 - cubic9.com

f:id:tsubaki_t1:20160106000900j:plain

なので、この解像度を下げて適正値に設定出来れば、ベイク時間はかなり短縮されます。

f:id:tsubaki_t1:20160106000815j:plain

当然解像度を下げると近づいた時に汚く見えやすくなるので、その辺りはケースバイケースで考える必要がありそうです。

解像度を下げる方法はこちら。

tsubakit1.hateblo.jp

関連

tsubakit1.hateblo.jp