物質自体に色はない?

Unityのマテリアルチャートをみると、プラスチックなどの非金属の場合は、sRGBは、50-243の範囲で使うとあります。今まで0-255でやってきた値と異なります。そこで、色とは何かを調べてみたのですが、ccs-inc.co.jpの記事がとても分かりやすく、光源と物体と目の関係を説明してくれていました。イチゴを青色LEDで見ると、かなり黒くなっているのはとても新鮮な感覚で見ることができました。

また、UnityのマテリアルのAlbdoも、その色を反射する値と考えれば納得できそうです。

https://docs.unity3d.com/jp/current/Manual/StandardShaderMaterialCharts.html

http://www.ccs-inc.co.jp/s2_ps/s1/s_04/column/light_color/vol11.html

http://www.ccs-inc.co.jp/s2_ps/s1/s_04/column/light_color/vol12.html

http://illustrator-ok.com/illustrator_koza/color/contents/color1.html

 

Unity5のライティング学習資料

Unity5では、PBS(Physical Based Shading,物理ベースシェーディング)や光を焼く(Bake)という仕組みがあり、単純に色はRGBで0-255で指定すればよいというものではありません。またマニュアルを読んで設定項目を読んでもいまいち知識がないため消化不良になってしまいます。

Unityのライティングの学習 Part1 を作成して、自分用の実験用プロジェクトが作成できたので、設定項目の意味が分からないながらもスライダーを調節して、[Build]を行って、影響をシーンビューで判断できるところまで来ました。またいろいろ試すことで、Unityエディター上でどこに項目があるかも分かってきました。

此処までで様々なライティングのキーワードが分かったので、Google検索でさらに情報を入手できるようになりました。公式でグラフィックスについていくつかセッションがあるので、確認してさらに知識を深めようと思います。

Unityとアセットツールで学ぶ「絵づくり」の基礎(ライト、シェーダー、イメージエフェクト)

http://japan.unity3d.com/unite/unite2016/schedule

上記URLに、PDF資料もあり、駆け足ですが多くの事が説明されています。私のような初心者ははっきり言ってわからないことだらけですが、コーネルボックスを作って実験していけば、また知識が付くと思うのでやってみます。

 

[Unite 2015 TOKYO]Unity 5グラフィックスガイド 実践編

110分という長い動画ですが、これを見ることで全体像が掴めそうです。私のようにUnityの入門書を買わずに行き当たりばったりで学習している人は一度見たほうが良いかもしれません。

その他、グラフィック関係の動画。

 

http://tongullman.blogspot.jp/2015/05/unity5.html

Unity 5 Lighting Cookbook

 

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

Unityのライティングの学習 (Part1, Part2)で、GIを設定するための基礎知識を学び、また自分で試行錯誤するためのサンプルプロジェクトを作成しました。今回は、このサンプルプロジェクトに実際に各種設定を行い、GIを体験しましょう。

まずは、Part1で学んだ以下を再確認しましょう。

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

手順としては、動かないプリミティブをすべて静的オブジェクトにします。次に、Resolutionパラメータを小さくしておきます。最後にLightをmixedにします。

1.プリミティブオブジェクトを静的オブジェクトにします。

プリミティブオブジェクトを選択して、右上の[Static]にチェックを入れるだけです。

 

001
複数選択して、Staticにチェックを入れている例

2. Resolutionパラメータを小さくします。

メニュー->Window->Lighting(下から6番目ぐらい)を選択して、Lightingタブを表示して、Precomputed Realtime GIとBaked GIのResolutionを0.5~1ぐらいにします。

002

初期設定では、[Auto]チェックボックスにチェックが入っているので、自動で焼き処理が開始されます。遅い場合は、[Auto]のチェックを外してキャンセルしてしまいましょう。そしてResolutionを調整し、[Build]するか、[Auto]のチェックを付けましょう。

003

 

3.LightのBakingをmixedにします。

2をやった時点ですでにGIはできています。そのためこのBaked GIにかかわるこの設定はどういう意味か私自身もう一度調べる必要があります。いずれにせよ、一度mixedにしてみましょう。ポイントライトとDirectional Lightの両方に以下設定をしました。

004

 

4.Lightingタブ

現在のLightingタブです。

006

結果

赤い箱に近い地面の色は赤くなって、青い箱の近くの地面の色は青くなっています。

005
GIができた!
007
立方体が微妙な色になっている。

ただ、解像度が低い設定影響か分かりませんが、立方体の黒い影が微妙な色合いでした。とはいえ、今後設定項目を調べていけばよい話なので今回はこれで良しとしましょう。

このプロジェクトの配布

Unity5.4

https://hajimete-program.com/games/SandboxLighting02.zip

まとめ

3回にわたりGI(Global Illumination、グローバル・イルミネーション)の基礎から実際に試行錯誤できるプロジェクトを作成しました。今後は、公式マニュアルとGoogle検索を活用して、設定項目の意味を調べていきましょう。

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

今回は、GIを適用する前のポイントライトを1つ、キューブをいくつか並べた単純なプロジェクトを作成します。

401

FPSコントローラーでFPS視点で動かせるようにします。

プロジェクトの新規作成

001

スタンダード・アセットのCharactersをインポート

002

003

PlaneをScale(100,1,100)で作成。

004

FPSControllerがカメラを持つので、Main Cameraを無効化

005

Standard Assets/Characters/FirstPersonCharacter/Prefabs/FpsControllerをシーンにドロップ。適当に初期Y座標を設定。

_001

壁の作成

Create Emptyで、’Walls’を作って、その中に6面をCubeで作成します。隙間が空いていなければよいので大きさ、位置は適当でよいです。

007_top007_forward007_back  007_left 007_right007_bottom

プリミティブの作成

特に細かいルールはありません。

101 102 103 104 105 106 107

Materialを作成して割り当て

https://docs.unity3d.com/jp/current/Manual/StandardShaderMaterialCharts.html

Unityは、物理ベースシェーディング(Physical Based Shading,PBS)です。物理ベースレンダリングと呼ぶ場合が多いようです。これは色を付けるときに、金属か非金属(布、プラスチックなど)を考慮します。

そのため、Materialは非金属の場合、sRGBの範囲は50-243です。0-255ではありません。金属の場合は、186-255になります。上記チャートのsRGB RANGEという部分に記述されています。

201

スフィアにSilverを割り当て、キューブにRed,Blue,Greenを割り当て、他はWhiteマテリアルを割り当てました。

Silverの作成方法

公式マニュアルのチャートにSILVERが用意されているので、Albedoスポイトでシルバーを指定しましょう。

203

202

Red,Green,Blue,Whiteは、Materialは非金属で、sRGBの範囲は50-243で作成します。Redの場合、RGBAは(243,50,50,255)になります。

204
非金属のsRGBの範囲は50-243

ポイントライトの作成と調整

301

またDirectional Lightの位置は以下にしました。この値に特に理由はありません。

302

最後にグループ化したWallsをY,Z軸を5にしました。これも特に理由はありません。

304

最終的にできたもの

401

 

このプロジェクトの配布

Unity5.4

https://hajimete-program.com/games/SandboxLighting01.zip