====== Corona基本マテリアル設定 ====== このチュートリアルでは Chaos Corona での基本的なマテリアル設定を解説します。\\ [[https://www.oakcorp.jp/temp/CoronaMtl2020.zip|こちらからチュートリアル用のシーンデータをダウンロードしてください。]]\\ \\ \\ このシーンは、あらかじめレンダラーを Corona に、レンダリングビューを Corona Camera にロックしてあります。 {{ mat_tute01.jpg |チュートリアル用シーン}}\\ \\ Chaos Corona では **CoronaPhysicalMtl** ひとつで、ほぼすべての質感表現を行えます。非常にシンプルですが、そのぶん応用範囲が広く、使い方を理解すればさまざまなマテリアルを作成できます。\\ \\ **CoronaPhysicalMtl** は、いわゆる **PBRマテリアル** (Physically Based Rendering 用マテリアル) です。物理ベースレンダリングの業界標準の考え方に沿っているため、Substance Painter / Substance 3D Assets の PBR セットアップはもちろん、V-Ray の VRayMtl、Arnold の Standard Surface、Unity や Unreal Engine の PBR マテリアルとも考え方やパラメーターの対応関係があります。\\ \\ まずはスレートマテリアルエディタを開き、`Materials > CoronaPhysicalMtl` を View にドラッグ&ドロップします。マテリアル名を `AAA` にしてください。\\ その後、CoronaPhysicalMtl の出力を「猫」「ボトル」「カップ」「BOX オブジェクト」に割り当てます。\\ もうひとつ CoronaPhysicalMtl を作成して、マテリアル名を `BBB` にし、「テーブル」に割り当てます。 {{ https://v-ray.jp/cms/wp-content/themes/chaosgroup/img/corona/tutorial/material/2022-05-27-17-28-05.mp4?600x400 |}}\\ \\ ツールバーから Corona インタラクティブレンダリングを開始します。シーンにライトが無いため、最初は真っ暗です。\\ {{ mtl_start_ipr.jpg |インタラクティブレンダリング開始直後}}\\ \\ 続いてツールバーからライトを作成し、テーブルの上方へ移動してみましょう。 {{ https://v-ray.jp/cms/wp-content/themes/chaosgroup/img/corona/tutorial/material/2022-05-27-17-36-03.mp4?600x400 |}}\\ \\ ===== デフォルトの質感(陶磁器) ===== CoronaPhysicalMtl のデフォルト状態は、陶磁器のような非金属の質感です。\\ **CoronaPhysicalMtl (PBRマテリアル) は大きく「金属」と「非金属」の2種類に分かれます。**\\ この切り替えは **Metalness** パラメーターで行います。\\ {{ metalness.jpg |Metalness パラメーター}} Metalness は基本的に「金属」か「非金属」かを切り替える 2 値のパラメーターです。0.5 のような中間値は現実世界には存在しない材質表現になるため、意図を持って使う必要があります。\\ Metalness にマップを接続する場合も、基本は白黒の 2 値マップで扱うのが前提です。初期状態では **Non-Metal** になっているため、現在は非金属の設定です。 非金属表現でまず注目したいのは **Roughness** です。これは反射のボケ具合、つまりハイライトのシャープさや光沢感をコントロールする重要なパラメーターです。 Roughness が 0.0 に近いほど、はっきりした鋭い反射になります。\\ {{ nonmetal_rouphness0.jpg |Roughness 0.0}}\\ \\ Roughness が 0.25 くらいになると、陶磁器のようなハイライトになります。\\ {{ nonmetal_rouphness025.jpg |Roughness 0.25}}\\ \\ Roughness 0.5 では、紙のようなマットな質感になります。\\ {{ nonmetal_rouphness05.jpg |Roughness 0.5}}\\ \\ Roughness 1.0 近くでは光沢がほとんど無くなり、使いどころはかなり限られます。\\ {{ nonmetal_rouphness1.jpg |Roughness 1.0}}\\ \\ Roughness を 0.25 付近に戻しましょう。ただし、ライトが1つだけだと質感の違いがやや分かりづらい状態です。\\ **3D CG がリアルに見える大きな要因は、周囲の環境が反射として写り込むことです。** Corona ツールバーから **Chaos Cosmos** を起動し、`HDRI > Day` カテゴリから `Day 034` をシーンにインポートします。\\ {{ cosmos_hdri.jpg |HDRI の読み込み}} HDRI を読み込むとプレビューが真っ白に見える場合があります。これは HDRI が明るい日中の環境画像であり、カメラ露出が追いついていないためです。ここで HDRI 自体を暗くするのではなく、**カメラ側の露出を調整する**という考え方が大切です。 Corona では露出補正をフレームバッファの **Tone Mapping** でまとめて行えます。`Simple Exposure` を **-5.50** 付近にすると、太陽光下の露出が取りやすくなります。\\ {{ simpleexposure.jpg |Simple Exposure の設定}}\\ \\ 環境光が入ることで、マテリアルの見え方が大きく変わることが分かります。\\ 続いて、スレートマテリアルエディタで `Map` カテゴリから **CoronaMultiMap** を追加し、マテリアル `AAA` の Base color に接続します。これにより、マテリアルが割り当てられた各オブジェクトへランダムに色が割り当てられます。\\ {{ coronamultimap.jpg |CoronaMultiMap}}\\ \\ **CoronaMultiMap** は、条件に応じてランダムに色を変化させるマップです。初期設定では `Instance` モードになっており、オブジェクト単位で色をランダムに割り当てます。\\ {{ coronamultimap_instance.jpg |CoronaMultiMap の Instance 設定}}\\ \\ Roughness を 0.25 のままにした状態で、今度は **IOR** を 3.0 に上げてみましょう。表面の反射率が上がるのが確認できます。\\ {{ ior3.jpg |IOR 3.0}}\\ \\ 逆に **IOR** を 1.0 に下げると、反射がほぼ無くなります。スペキュラーハイライトも消えます。\\ {{ ior1.jpg |IOR 1.0}}\\ \\ このように、同じ Roughness のままで **反射率を下げたい / 上げたい** 場合は IOR でコントロールします。Corona では IOR 1.0 から 3.0 程度の範囲で扱うことが多いので、**反射率は IOR で調整する** と覚えておくと分かりやすいです。最後に IOR を 1.5 に戻してください。 ===== 金属マテリアル ===== 次はマテリアルを金属にします。上部の **Metalness** を `Metal` に切り替えると、一気に金属らしい見た目になります。\\ {{ metalness_metal.jpg |Metalness を Metal に設定}}\\ \\ ここでも **Roughness** が重要です。 Roughness 0.0 では完全なクロームのような見え方になります。\\ {{ metal_roughness00.jpg |Roughness 0.0}}\\ \\ Roughness 0.1 ではスチールのような質感です。 {{ metal_roughness01.jpg |Roughness 0.1}}\\ \\ Roughness 0.3 ではアルミニウムに近い表現になります。\\ {{ metal_roughness03.jpg |Roughness 0.3}}\\ \\ Roughness 0.4 ではパールのような柔らかい金属感になります。0.5 以上は使う場面がかなり限られます。\\ {{ metal_roughness04.jpg |Roughness 0.4}}\\ \\ 続いて **Anisotropy (異方性)** の Amount を 0.4 前後に設定してみましょう。反射が一方向に引き伸ばされ、ヘアライン加工のような表現になります。\\ {{ aniso04.jpg |Anisotropy Amount 0.4}}\\ \\ Anisotropy の **Rotation** を 90 にすると、引き伸ばし方向が 90 度回転します。\\ {{ aniso_90degree.jpg |Anisotropy Rotation 90}}\\ \\ Rotation を 0 に戻して、**Amount を -0.4** にしても、同じく 90 度回転したような結果になります。つまり Amount のプラス / マイナスでも方向の違いを表現できます。\\ {{ aniso_negative.jpg |Anisotropy の負の値}}\\ \\ この方向制御はマップでも行えます。グラデーションマップを使って Base anisotropy rotation に接続すると、ヘアライン加工されたパネルのような表現を作れます。\\ {{ https://v-ray.jp/cms/wp-content/themes/chaosgroup/img/corona/tutorial/material/2022-05-27-20-32-08.mp4?600x400 |}}\\ \\ ===== ガラスマテリアル ===== Anisotropy を 0.0 に戻し、Metalness を `Non-metal` にします。\\ 次に **Refraction** の **Amount を 1.0** に上げると、すりガラスのような質感になります。\\ {{ refraction10.jpg |Refraction Amount 1.0}}\\ \\ **Roughness** を 0.0 にすると透明感の高いガラスになります。少しだけぼかしたい場合は 0.02 くらいにすると自然です。\\ {{ refraction_rouph002.jpg |透明ガラス}}\\ \\ 屈折率は IOR でコントロールできます。重要なのは、**IOR 1.0 は屈折が起きないためオブジェクトが見えにくくなる** 点です。 水の IOR は 1.33 です。\\ {{ refraction_ior133.jpg |IOR 1.33}}\\ \\ ガラスの IOR は 1.5 前後です。\\ {{ refraction_ior150.jpg |IOR 1.5}} ダイヤモンドは IOR 2.4 です。\\ {{ refraction_ior240.jpg |IOR 2.4}}\\ \\ IOR 1.0 では表面で光が屈折せず、ほとんど見えなくなります。\\ {{ refraction_ior100.jpg |IOR 1.0}}\\ \\ さらに Refraction 領域の **Dispersion** を有効にすると、光の波長差による虹色の分散表現が追加されます。たとえば IOR 2.4 と組み合わせると次のようになります。\\ {{ refraction_disversion.jpg |Dispersion の例}}\\ \\ その後は Dispersion をオフにし、IOR をデフォルトの 1.5 に戻します。\\ 続いて CoronaPhysicalMtl 下部の **Media Options** を開き、**Absorption color** に濃い緑を設定します。Distance を上げると、ガラスの厚みに応じて光が吸収され、色付きガラスのような表現になります。\\ {{ https://v-ray.jp/cms/wp-content/themes/chaosgroup/img/corona/tutorial/material/2022-05-27-20-58-17.mp4?600x400 |}}\\ \\ ===== リアルな木材マテリアル ===== 今度はテーブルの質感を変更します。\\ [[https://www.oakcorp.jp/_media/chaosgroup/corona/woodfloor051_1k_color.jpg?w=400&tok=356488|こちらから木材のテクスチャ画像(WoodFloor051_1K_Color.jpg)をダウンロードしてください。]]\\ この画像は [[https://ambientcg.com/view?id=WoodFloor051|ambientCG の Wood Floor 051]] 由来です。\\ {{ woodfloor051_1k_color.jpg |木材テクスチャ}}\\ \\ テーブルに割り当てた `BBB` マテリアルを開き、Color のマテリアルスロットに `WoodFloor051_1K_Color.jpg` をドラッグ&ドロップします。木目が反映されるので、見やすいように視点を少し変えて確認しましょう。Roughness は 0.1 前後が扱いやすいです。\\ {{ wood_color.jpg |木材の Base Color}}\\ \\ 木材をリアルに見せるには、表面の凹凸による反射変化が重要です。木材の Bitmap を Base bump に接続し、Bump 量を調整してみてください。\\ {{ https://v-ray.jp/cms/wp-content/themes/chaosgroup/img/corona/tutorial/material/2022-05-30-17-21-26.mp4?600x400 |}}\\ \\ さらに `ColorCorrection` を木目テクスチャと Base color の間に挿入すると、彩度や輝度を調整してニス仕上げのような見た目へ変化させられます。UV タイリングを変更してテクスチャの縦横サイズを調整することも可能です。\\ {{ https://v-ray.jp/cms/wp-content/themes/chaosgroup/img/corona/tutorial/material/2022-05-30-17-24-18.mp4?600x400 |}}\\ \\ ===== リアルプラスチックマテリアル(SSS) ===== 再び `AAA` マテリアルに戻り、Roughness を 0.2、Refraction を 0.0 に戻します。\\ {{ resrtcp.jpg |初期値に近い状態へ戻す}}\\ \\ CoronaPhysicalMtl 下部の **Media Options** を開き、**Subsurface Scattering の Amount を 1.0** にします。\\ その後、Radius を徐々に上げると、半透明感のあるリアルなプラスチック質感になります。Radius 0.01 でも十分効果が確認できます。\\ {{ https://v-ray.jp/cms/wp-content/themes/chaosgroup/img/corona/tutorial/material/2022-05-30-17-33-37.mp4?600x400 |}}\\ \\ 以下は通常レンダリングでの SSS あり / なし比較です。SSS を有効にすると、よりプラスチックらしさが増します。\\ {{ sssonoff.gif |SSS On / Off 比較}}\\ \\ 参考として、Amount を少し上げて Color に模様を入れると、大理石のような表現にも応用できます。\\ {{ marble01.jpg |大理石風の応用例}}\\ \\ 確認できたら、最後に Subsurface Scattering の Amount を 0.0 に戻して効果を無効にします。 ===== 牛乳やジュースなどの濁った液体(ボリュームスキャッター) ===== Roughness を 0.1 程度に設定し、Refraction の Amount を 1.0 にします。\\ {{ resrtcp2.jpg |濁った液体の初期設定}}\\ \\ CoronaPhysicalMtl 下部の Media Options を開き、**Volumetric Scattering** の **Absorption color** を黒、**Scattering Color** を白に設定します。\\ Distance を **0.03** にすると、牛乳のような質感になります。さらに Scattering Color を明るい黄色にすると、オレンジジュースのような見た目にできます。\\ {{ https://v-ray.jp/cms/wp-content/themes/chaosgroup/img/corona/tutorial/material/2022-05-30-18-12-42.mp4?600x400 |}}\\ \\ SSS との違いは、Volumetric Scattering が **濁った液体** の表現に向いている点です。Distance を上げてボリュームを薄くすると、薄いジュースのような見た目になります。対して SSS は、皮膚や大理石、プラスチックのような固体の半透明表現に向いています。\\ {{ volime_scattering.jpg |Volumetric Scattering}}\\ \\ ===== カーペイントマテリアル ===== 最後に、少し高度なカーペイント表現を作ってみましょう。\\ まず **AAA の Refraction Amount を 0.0** にして不透明へ戻します。\\ 次に **Metalness を Metal** に切り替え、Roughness を 0.65 前後にして、非常にマットな金属下地のような状態を作ります。\\ {{ metal_parl.jpg |下地の金属質感}}\\ \\ その後、CoronaPhysicalMtl 下部の **Clearcoat Layer の Amount を 1.0** にし、**Clearcoat Layer の Roughness を 0.15** 前後に設定します。\\ これで、下地の上に艶やかなクリアコートが乗ったカーペイント表現になります。Base レイヤーのぼやけた反射と、Clearcoat レイヤーのはっきりした反射が重なり、複雑な表情が生まれます。\\ {{ carpaint.jpg |カーペイント}}\\ \\ イメージとしては、Base Layer の上に透明な反射層が重なっている構造です。\\ {{ basepluscort.jpg |Base Layer と Clearcoat}}\\ \\ 比較すると違いが分かりやすいです。\\ {{ crearcoat.gif |Clearcoat 比較}}\\ \\ 以上で、基本的なマテリアル設定の解説は完了です。