Unity Lighting ちょっとだけ調べてみた

Unity5でライティングをいじったときにどうなるのか調べてみました。

こちらの素晴らしいサイトに書いてあることを一通りやってみます。
http://indie-du.com/entry/2015/06/04/205556

##下準備
Planeでコーネルボックス（密室）を作り、部屋を真っ暗にする。（PlaneはStaticに！）
Directional Lightも削除しておく。
![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 19.05.10.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/11e1727b-9e33-c5eb-e445-bb74c9f1c088.jpeg)


##Ambient Sourceについて
ライトを照らす前のベースとなる明るさとのこと
Skybox、Gradient、Colorから選べる。
GradientはGrade（グレード）とほぼ同じ意味らしい・・・？

###Skyboxを試す
Ambient　SourceをSkyboxにしてAmbient Intensity（環境光の明るさ）を０にしてビルド
![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 19.14.01.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/9a7fe81d-cb2c-c399-df2e-52e8da5eba15.jpeg)

真っ暗しか映らない。
![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 19.11.35.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/67e54872-6814-f8fb-ebcd-c7b591c9b948.jpeg)

ライトマップのサイズは０MB＝焼かれていない。
（ライトがないから）

Ambient Intensityを４にしてみるとSceneViewで見ると一部明るくなっているが、密室の中は光が入っていない。
![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 19.17.39.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/e40b69e3-8aaa-f45f-1b06-2b95d52f4f4f.jpeg)
Skyboxの光は密室でも入ってくると思ったけど違うのか・・・
Directional Lightは密室でも光が入ってくる


Colorを選択してAmbient　Colorを真っ黒にすると次のようになる。
![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 19.11.35.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/c5f96f02-407c-d88e-489f-c27f8c0fed00.jpeg)

###Gradientを試す
こちらによると
http://tsubakit1.hateblo.jp/entry/2015/08/30/234529

> Unity5では標準設定では環境光（Ambient Light）はSkyboxから取得します。 もちろんAmbient SourceをColorに設定すれば過去の単色Ambient Lightが復活しますし、Gradientを設定すれば「空・中間・照り返し光」の3段階表現も設定できます。

なるほど、Gradientは空・中間・照り返し光を設定できるのね。
![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 19.26.35.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/fe2f141e-c345-69a4-4a88-f98bf7aa5caa.jpeg)

この状態でベイクしてみると、やっぱり真っ暗（そもそもSkyboxの光が室内に届いていない）
![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 19.11.35.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/9a911b6b-1399-c9c6-1abd-7a12c277ee81.jpeg)

せっかくなので屋根をはがしてベイクしてみた。
![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 19.28.52.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/1b2d80ac-20ff-58de-b103-06ffa8524c82.jpeg)

割と丁寧に焼かれている感じがする。陰影もしっかりついてる。

Color値を変更してベイクしてみる
![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 19.38.21.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/2355361f-61fb-c8e6-b369-3e0ba221f1fb.jpeg)

![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 19.38.14.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/43bb9246-8563-409c-32db-9708ee5a1ea2.jpeg)

Grand Colorの影響が強いことがわかった。

今回はコーネルボックスを使ってライティングを確認したいので屋根はもとに戻しておく。


##Colorを試す
ColorもSkyboxと同じだった。密室だと光は届かず、少しでも隙間があると光が入ってくる。

面白いと思ったのは、少しだけ隙間があるときと、全開の時でライティングの結果がかわることだ。
ちょっとしか隙間がないと、
![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 19.41.50.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/4d79cf42-defa-553b-a49f-e01fc9d556e3.jpeg)
がっつり空いていると
![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 19.42.15.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/1a04b445-1633-4032-efca-a3d2fdd7c58e.jpeg)

こんなに変わるものなのか・・・
Skyboxでも同じ挙動だった。
ちょっとだけ隙間があると
![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 19.45.04.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/44e3ec53-2d9a-0826-2a88-a5b42e529321.jpeg)
がっつり空いていると
![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 19.48.41.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/6e3bbb60-c2a2-c711-d9dd-438a4383688f.jpeg)

隙間がないと
![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 19.47.29.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/90aaa3d2-b431-08bf-d0e8-f8e5bc6e33f4.jpeg)

ちょっとずつ挙動が分かってきて楽しい　：）


##Reflection Sourceについて
反射で映り込むモノを指定できるとのこと
SkyboxかCubemapを選択できる

##Skybox試してみる
Skyboxを選択すると、Resolution（解像度）とCompression（圧縮の有無）を設定するパラメータが出てくる。
やってみようと思ったけど、うまく反射を表現するオブジェクトが見つからず断念・・・。
もうちょい学習が進んだらやってみよっと

##Custom試してみる
Customを選択すると、CubemapとCompressionを設定するパラメータが出てくる。
そもそもCubemapって何だろう。

ここによると
http://docs.unity3d.com/ja/current/Manual/class-Cubemap.html
> キューブマップ（Cubemap）は、周囲の環境を反射して表す正方形テクスチャが六つ一組になったものです。 六つの正方形のそれぞれが、オブジェクトを囲む架空の立方体のそれぞれの面になります。 それぞれの面が、ワールド軸の各方向 （上・下・左・右・前・後）の景観を現します。
とのこと。
あれか、Skyboxに設定する６枚１セットのやつか。
Cubemapを持ってないので学習が進んだら続きをやってみるとしよう。

##Reflection Intensity とReflection Bounces
Reflection Intensity(反射光の強さ)
Reflection Bounces（何回反射するか）
とのこと。

Reflection Intensityが初期値0.06
Reflection Bouncesが初期値1のとき
コーネルボックスに隙間を開けるとこうなる
![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 20.07.37.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/c0d4f42d-375b-758d-2677-b710dee87eb4.jpeg)

Reflection Intensityが1
Reflection Bouncesが5のとき
コーネルボックスに隙間を開けるとこうなる
![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 20.07.04.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/02241b6b-123e-31d6-2ae9-cc07848fea68.jpeg)

値が大きいと白っぽくなってる。

##General GIについて
影のベイクに関する設定ができるとのこと。
Directional Mode（影の品質）
Indirect Intensity（高くすると影が薄くなる＝より反射するようになる？初期値は1）
Bounce Boost（高くすると陰影が付きにくくなる？初期値は1）
ここ見るとわかるかも
http://www.slideshare.net/nyaakobayashi/unity08

初期値のままベイクしてみる
![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 20.14.22.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/8d3a5b45-01a3-a4b1-9b56-dc37086c06c2.jpeg)

Indirect Intensity５
Bounce Boostを１
にしてベイク
![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 20.20.03.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/4c3dcc11-0370-9ee0-d0f4-46efdd713c7d.jpeg)
なんか神々しくなったな

Indirect Intensity０
Bounce Boostを１
にしてベイク
![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 20.22.25.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/7f68098c-e539-8b9c-8fb8-033089c93857.jpeg)
Indirect Intensityが０だと真っ暗＝反射が全くされず、すべてが影になる
のか

Indirect Intensity0.1
Bounce Boostを１
にしてベイク
![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 20.24.03.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/9410093c-a123-b250-9e90-86919e2dd05b.jpeg)


Indirect Intensityを１
Bounce Boostを５
でベイク
![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 20.24.57.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/fc432e35-cae6-4210-0b3c-242992631568.jpeg)
Bounce Boost1の時とあまり変わらない・・・？



Indirect Intensityを１
Bounce Boostを10
でベイク
![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 20.26.01.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/396121cd-61b4-4b69-9a07-5c2929c21b09.jpeg)

うーん、この構図だとBounce Boostの値を変えても違いがわからない。
もっとオブジェクトが密集しているとわかるのかも

###Default Parameters試す
ライトマップデータを設定できるとのこと。
ライトマップデータは自作もできるし、プリセットを使うこともできる。
ライトマップデータはライトマップに関する細かいパラメータの集まり。

Default-VeryLowResolutionだとこれ
![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 20.32.11.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/68d86418-7d7d-f02a-00a1-cb2df477b077.jpeg)
![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 20.33.54.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/49cb20f0-987a-f6bd-4e72-4288baaaec1f.jpeg)


Default-HightResolutionだとこれ
![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 20.34.33.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/06fc7ea7-5db3-78ca-b722-89541a834f19.jpeg)
![Unity (64bit) - testLighting.unity - ViveFirstTest - PC, Mac & Linux Standalone_ _DX11_ 2016-07-28 20.34.27.jpg](https://qiita-image-store.s3.amazonaws.com/0/67575/614c5c57-b7f1-8344-31fa-0b8db745cdd8.jpeg)

LowとHighだと全然ちがう・・・
Lowだとパキっとしてて安っぽい感じ
Highはなめらかだ。


##Precomputed Realtime GI
Precomputed・・・事前計算した結果を
Realtime・・・リアルタイムに
反映させるってことらしい