Edited at

コーネルボックスをつくってあそぼ


はじめに

この記事はロボP Advent Calendar 2018の3日目の記事です。

初心者にとっては楽しいライティング沼に浸かれて、Unityの操作も覚えられると思います。


コーネルボックスとは

rtx

GeForce RTXシリーズの発表なんかで親の顔より見たアレです。

ライティングのデモでよく使われる、緑と赤の壁をした例の部屋です。


つくる


オブジェクトを配置

まずはPlaneだけで四角い箱を作っていきます。

左のヒエラルキを右クリックして3D Object>Planeを追加します。右のインスペクタからPositionを全て0にしましょう。

1.PNG

Planeを選択したまま、Ctrl+Dを押して複製できます。複製・移動・回転を繰り返して箱を完成させましょう。この時隙間や重なりができないように注意してください。


色を付ける

下のAssetsで右クリックしてCreate>Materialを追加します。

インスペクタのAlbedoをクリックするとカラーピッカーが出てくるので、色を指定してやります。

この時、数値を255にすると綺麗にライティング出来ないので、240にしておいてください。

Unity - Manual: Material charts

3.png

マテリアルが3つとも出来たら、色を付けたいオブジェクトにドラッグ&ドロップしてマテリアルを指定しましょう。

あとは箱の中にCubeやSphereを適当に置いたら完成です。

4.PNG


ライティングを組む

今はまだ影がパキパキしてる適当ライティングなので、これからRTXのデモっぽくしていきます。


照明つける

少し小さめのPlaneを天井に配置しましょう。

新しいマテリアルを追加して、インスペクタのEmission(発光のこと)にチェックを付け、数値を3から4にしましょう。


Staticにする

まず、ヒエラルキにあるDirectionalLightを消してください。

次に、MainCamera以外のオブジェクトを選択して、右上のStaticのチェックボックスにチェックを付けましょう。

すると正確な光の計算が行われて、自然な光の当たり方になるでしょう。

壁の色が反射してオブジェクトに写ってるのが見えますね。

動的なオブジェクトだと、重い光の計算を毎フレームしなくてはならないのですが、静的なオブジェクトにすることでライティングの計算結果が変わらなくなるので、リアルにすることが出来る訳です。

Light Probeというものを使えば動的なオブジェクトに対してもいい感じのライティングが施せます。

5.PNG

照明をつけてStaticにしたところ。右のインスペクタにあるのは照明のマテリアル。


反射をつける

ヒエラルキで右クリックしてLight>Reflection Probeを追加して、Cubeと同じ場所に配置してください。

新しいマテリアルを作ってCubeにアタッチし、MetallicとSmoothnessの数値を上げてみましょう。

すると綺麗な反射が映り込んでいるはずです。(Cubeを紫にしました)

これはReflection Probeから見える景色をCubeの表面に貼り付けることで実現しています。

反射の計算も重いのですがこれを使えば動くオブジェクトに対しても景色の反射を付けることが出来ます。

6.PNG


あそぶ

ライトやオブジェクトを動かしたり、ライトを増やして色を変えてみたりすると楽しくなってくるはずです。

これであなたもUnityワクワクさんの仲間入りです。

-ライトの位置を動かしてみた

7.PNG

- ライトを変えて上から撮ってみた

9.PNG


おわり

上で出した他にも、リムライトとかAO(アンビエントオクルージョン)とかあるのでググってみてください。

こんな単純なオブジェクトの配置でも結構遊べると思います。それ故か、ライティングの設定を詰めようとすると無限に時間が溶けていきます。こわいですね。

もっとこわいシェーダーも気になっているのでいつかやってみたいですね。


参考

ライティング - テラシュールブログ ←神

ライティングの手法 - Unity マニュアル