【Unity5】GIデモ「The Courtyard」解剖、その2

解らないながらもぼちぼちやってます。

いま、やっとメッシュやオブジェクトの再配置が終わったあたり。

まぁ、基本コピペなんでさほど難しい作業ではないんですが、インスペクターの設定値がリンク切れ起こしたりとかもあるので、地味に大変だった。

そうしてる中で、たいへん有用なスクリプトを見つけたので、ちょっと別シーン作って試してみた。

ライトプローブを自動で生成してくれるスクリプトで、単体でも動くので非常に便利。

現状、同心円状に配置する仕様になっていて、これでも十分汎用性あるんだけれども、たとえばキューブ状に配置したい場合なんかは、中身解析して改造することも出来そう。

ライトプローブって手動で配置するのめちゃくちゃ面倒なので、遅かれ早かれスクリプト組むことになるなあとは思っていたけれども、こんなに使いやすくて汎用的なスクリプトが付いているなんて、これだけでもダウンロードする価値ありました。

ちなみに、LightProbesTetrahedralGrid.csというスクリプトファイルです。

冒頭の画像はこれを使ってライトプローブを配置したGIのテストシーンです。

赤いキューブの側にいるサーリャ。

20151117_2

青いキューブの側にいるサーリャ。

20151117_1

GIの恩恵を得るには、反射光の発生源となる壁やキューブなどのオブジェクトはlightmap staticにする必要がある。

lightmap staticにしたPBRのメッシュはお互い反射しあってグローバルイルミネーションを生み出します。

プレイヤーキャラや敵キャラのように動くオブジェクトについては、上記のライトプローブを適切に設定すれば、GIの反射光を受け取ることができる。

ただし、自分自身は反射光の発生源となれないので、動く赤い壁を作って、その色を他の壁に反射させるということはGIでは出来ない(たぶん)

おそらく、この壁に個別のライトを仕込んで擬似的に反射光をつくるしかないんじゃないかな。

もうひとつ弱点として、lightmap staticに出来ないオブジェクトは本来GIによって生じる影ができない(ただ平行光源による影はできるみたい)

なので、室内などでは動くオブジェクトだけ影がないので浮いて見える。

これも、別途で擬似的に影を作る必要がありそう。

ともあれ、こんなかんじで少しずつThe Couryardを紐解いていってます。

次からスクリプトをひとつずつ解析していく予定。

3年前

コメントを残す

メールアドレスが公開されることはありません。