テラシュールブログ

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

【Unity】ライト毎に作る影の解像度を設定する

Unity 5.4からライト毎に影の解像度を設定出来るようになりました。

影の解像度設定

f:id:tsubaki_t1:20160802232213j:plain

Unity 5.4から、ライト毎に影の解像度を設定することが出来るようになりました。

GetComponent<Light> ().shadowCustomResolution = 解像度;

これで影の解像度を設定出来ます。解像度を落とす事で、影用のテクスチャを下げる事が出来ます。
少し分かりにくいのが、0~1や1~100%や解像度指定ではなく、intの数値を指定している点です。0だと最高解像度になるのですが、大体同じような値にしたい場合は3000を指定しました。

確認すると、3000~2000にかけて少し汚くなっています。
3000~300にはかなり差があり、300~200にかけては結構な違いが見て取れます。

f:id:tsubaki_t1:20160802232959j:plain

 

 シャドウマップにもソコソコの差が出ます。

f:id:tsubaki_t1:20160802234040j:plain

 

なお、シャドウマップの解像度はビデオメモリや環境に応じて自動的に減らしていくそうです(スクリーンデータとレンダリングテクスチャデータを格納するのに必要なメモリが消費されます。そして、残りのビデオメモリの 3分の1 は、シャドウマップで使用するために確保されます)。つまり、モバイル等ではどうしても汚い解像度になるかもしれません。

要するに、コレの基本的用途はライトマプの解像度を減らすことという事です。

 

f:id:tsubaki_t1:20160803001033j:plain

関連

docs.unity3d.com

baba-s.hatenablog.com

tsubakit1.hateblo.jp