Unityのライティングの学習 Part1

初心者向けのUnity5のGI(Global Illumination,グローバル・イルミネーション)のチュートリアルです。GIは仕組みや用語が複雑なため、はじめて使ってみる場合には取っ掛かりが必要になります。そこでこのチュートリアルでは、細かい設定は後回しにして、まずはGIのサンプルプロジェクトを作るところからはじめます。

私は、UnityのGI(=Global Illumination、グローバル・イルミネーション)を調べ始めましたが、公式マニュアルだけを読んでいると、いろいろな知識が必要になり初心者には使えないと感じました。しかし、用語をメモ帳で整理しながら調べていくと、まずは動かせるプロジェクトを用意して、そこでパラメータを試行錯誤しながら、公式マニュアルで、パラメータの意味を調べていけば、学習できそうなことが分かってきました。

このチュートリアル(Part1)では、GIを動作させるための最低限の基礎知識を学んだ後に、実際に簡素なプロジェクトを作ります(Part2)。細かいパラメータはひとまず後回しにしています。

Part2で、実際に動かせるプロジェクトを用意します。サンプルプロジェクトを完成させることで、ただ公式マニュアルで設定項目の説明を読むだけから、設定項目を自分で試行錯誤できるようになります。こうなれば、実際のプロジェクトの動作から、視覚的に各種設定項目を理解しやすくなります。

このように、学習のきっかけさえ掴めば、初心者でもGIを学んでいけます。それではやっていきましょう。

GI(Global Illumination,グローバル・イルミネーション)とは

Unity5にはGI(Global Illumination,グローバル・イルミネーション)が使えます。GIは反射光の計算をします。以下、画像を見てください。1枚目がGIが動いていない画像で、2枚目がGIが有効になっている画像です。

001
Unity初期設定で、GIは動いていない
002
GIが有効

2つの画像は、中央の円柱の下にポイントライトが配置されています。上の画像の場合、赤い箱に当たり反射して地面に写った光は、赤い箱の影響を受けていないため、白い光のままです。下の画像の場合は、赤い箱に当たり反射して地面に写った光は、赤い箱の影響を受けて、ほのかに赤くなっています。

003
GIを有効にして、青箱の上でジャンプ

上記画像は、GIを有効にして、青箱の上でジャンプした時にキャプチャーした画像です。赤、青、緑の各箱に光が当たり、それが反射して地面に写った場合は、箱の影響を受けて、色が変化しています。GI(=Global Illumination、グローバル・イルミネーション)とは、この光が反射したときの色を考慮する仕組みです。

Part2で実際にこのプロジェクトを作成します。つまりPart2で、どのようにすればよいかという知識を学びます。ただ、GIはとても複雑なので、このPart1で「何が」に当たる知識を学びます。

初期設定でGIは有効化されています。

以下の画像を見てもらえばわかるように、Lightingタブ(メニュー->Window->Lighting)を開くと、いろいろなGIの項目があります。公式マニュアルに各項目の説明がありますが、初心者がこれを読みこなすのは困難なため、まずはとっかかりが必要と思われます。

005

Unityの初期状態では、上記のLightingタブのように、「Precomputed Realtime GI」「Baked GI」「General GI」のすべての項目にチェックが入っています。そして、「Auto」チェックボックスにチェックが入っているので、初期設定でGIは有効化されています。

TODO: Precomputed Realtime GI, Baked GIの違いを説明.

GIを使うには静的オブジェクトにする必要があります。

ただし、GIを使うには対象を静的オブジェクトにする必要がありますが、立方体などのプリミティブを配置しただけでは静的オブジェクトのマークがされません静的(=Static)にするのは簡単で、以下の画像のようにInspectorタブで、Staticにチェックを入れる必要があります。

006

 

GIは光を焼く(Bake)作業が必要

GIは、反射光を計算しなければなりません。これには膨大な計算が必要なためリアルタイムで計算するのではなく、あらかじめ計算しておいてその情報を実行中に参照することになります。

光を焼く(Bake)作業が必要ですが、Lightingタブで「Auto」チェックボックスにチェックが入っている場合は、オブジェクトを動かした後に自動で焼く作業が開始されます。チェックが入っていない場合は、自分で「Build」ボタンを押して光を焼く必要があります。

Bakeはとてつもなく重い!

007

Bake作業はとても重い作業です。初期設定だと30分で終わらないかもしれません。[Auto]にチェックが入っていると、オブジェクトをちょっと動かすごとにBakeが開始されて、計算が終わらないため、ライティングが変な状態のままになってしまう場合があり、開発中はとてもストレスがたまるようになります。

これを回避するには、Realtime Resolutionを0.5、Baked Resolutionを0.5ぐらいにすると、ライティングの精度はあまりよくありませんが、ひとまずいままで通りに開発できます。もっと下げてみたり、Precomputed Realtime GIまたはBaked GIを無効にしてみるのもよいかもしれません。

Lightオブジェクトはひとまずmixed

公式マニュアルには、LightのBakingの説明として以下の説明があります。

Directional Lightや自分で用意したポイントライトには、以下のようにBaking項目で、Realtime, Baked,Mixedのいづれかを指定できます。Lightingタブで、Baked GIにチェックを入れている場合、このLightオブジェクトを焼き作業の対象にするかしないかの設定のようです。ひとまずMixedにしておけば大丈夫そうです。

008

 

いままで学んだことのまとめ

  • GIは、反射光を考慮します。
  • GIは、初期設定で有効です。
  • GIは、静的オブジェクトが対象なので、チェックが必須。
  • GIは、焼き作業が重いので、Resolutionパラメータを要調整。
  • Lithtオブジェクトは、とりあえずmixedに

まとめ

細かい設定項目は、今後調べて身に着けるとして、ひとまず、自分でGIを試してみて、そこから知識を広げるための最低限の知識を学習しました。次回は簡単なプロジェクトを作成します。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA