LogoMark.png

3DCG演習/Material のバックアップ差分(No.9)


#author("2023-07-01T09:41:59+09:00;2022-07-19T10:45:50+09:00","default:inoue.ko","inoue.ko")
#author("2023-07-01T12:52:28+09:00;2022-07-19T10:45:50+09:00","default:inoue.ko","inoue.ko")
*第4回 マテリアル
[[3DCG演習>3DCG演習/2023]]|情報デザイン専攻2年 選択(集中)
~

***解説動画
#youtube(ABC)
(準備中)
//録画済み動画です。再生して視聴してください。
-以下名簿が表示されます。''既読確認(出欠確認)''をお願いします。
&fontawesome(far fa-hand-point-right); __[[既読確認>https://docs.google.com/spreadsheets/d/1bHOlJOdW0smlLna-qBEhkQ2U6DlnGgp3mGaBuaLP2ZA/edit?usp=sharing]]__
~
~

**はじめに
オブジェクトの材質(色・質感)のことをマテリアルと言います。Blenderでは、このマテリアル設定をシェーダーエディタのメインウインドウにある''ノードエディタ''を使って設定します。従来型のプロパティーエディタでも設定可能ですが、レンダリングエンジンの Cycles と Eevee はノードツリーを使用するため、ノードエディターの利用(Use Nodes)がデフォルトになっています。

2DCGでは、ラスター系(Photoshopなど)でもベクター系(Illustrator)でも、ピクセルや図形に設定するのは色(RGB値)と透明度(α値)のみですが、3DCGの場合は、基本的な色のみならず、光の拡散、鏡面反射、透過・屈折、発光といった、シェーディングに関する細かい設定が必要になります。
2DCGでは、ラスター系(Photoshopなど)でもベクター系(Illustrator)でも、ピクセルや図形に設定するのは色(RGB値)と透明度(α値)のみですが、3DCGの場合は、一般に PBR(Physically-Based Rendering) と呼ばれる物理ベースのレンダリングを行うのに必要なパラメータを設定する必要があって、基本色のみならず、光の拡散、鏡面反射、透過・屈折、発光といった、シーディングの細かい設定が必要になります。

マテリアルに関するデータ自体が大きなデータセットになるため、赤いプラスチック・銅・ガラスなど、マテリアルには個別に名前を付けて、オブジェクトとの紐付けを簡単にできるように管理します。例えば「ガラス」と名付けられたマテリアルデータは、シーンに登場する複数のガラス素材のオブジェクトにリンクされて利用されるのが一般的です。
~
~

**確認課題 03
#image(Basic04.jpg,right,35%)
本日の内容を視聴(一読)後、右のようなシーンを作成して、学科サイトの 基礎演習 Scene Making & Rendering の部分に出力画像を掲載して下さい。今回の課題は、
~

***制作要件
マテリアルの設定について体験する前に、体験用のシーンを作成します。
-Cubeを変形して、床と壁をつくります。
-床の上に、立方体、球体、その他のオブジェクトをいくつか配置します。
-アウトライナーのリストを使って、それぞれの名称を確認します。
-カメラとライトを調整して、無地の状態でレンダリングしてみます。
~
~

**マテリアルの設定方法
#YouTube(ABC)
~

***Shading ワークスペースの利用
マテリアルの設定を行う場合は、Shadingワークスペースを使うのが効率的です。TopBar の ワークスペース選択から ''Shading'' を選択すると シェーダーエディタを含むワークスペースが表示されます。
~

***マテリアルの新規作成
新規のオブジェクトは、オブジェクトデータ(頂点座標等)を持っていますが、マテリアル情報は持っていません。オブジェクトに色を付けるには、マテリアルデータブロックをリンクする必要があります。
 ShaderEditor > Header > Material > New(または既存のものを選択)

#image(Blender/Material.jpg,right,30%)
右図は、オブジェクト(Cube)にマテリアル(Material)が設定されている場合のデータの階層構造です。これは、Outliner の画面で個々のオブジェクトの項目をプルダウンして確認することができます。
~

***NodeEditor を使う
シェーダーエディタのメインウインドウは NodeEditor になっています。

#image(Blender/ShaderEditor.jpg,right,30%)
右図は、オブジェクトに新規のマテリアルを設定(New)した直後の画面で、シェーダーノードのひとつである Principled BSDF と、アウトプトノードのひとつである、Material Output の2つのノードが表示されています。ノード間の接続は、一般に左から右へ、図の例では ShederNode の出力が Material Output の Surface に接続されています。
~

***代表的なシェーダーとパラメータ
Blender には複数のシェーダーノードが用意されていますが、通常のマテリアル設定では、Disney "principled" BRDF(あるいはこれを拡張した Disney BSDF) に基づいたシェーダ、''Principled BSDF'' を選ぶとよいでしょう。
Blender には複数のシェーダーノードが用意されていますが、通常のマテリアル設定では、Disney Principled BRDF(あるいはこれを拡張した Disney BSDF) に基づいたシェーダである ''Principled BSDF''((Bidirectional Scattering Distribution Function(双方向散乱分布関数)とは、物体表面での光の散乱を計算するために使用される物理ベースの拡散近似モデルで、双方向というのは入射方向と出射方向が逆の場合でも同じ値になることを意味します。)) を選ぶとよいでしょう。

-BaseColor:マテリアルの色
-Metalic:金属(金属であれば1、そうでなければ0)
-Specular:鏡面反射
-Sheen:布などの柔らかなもののエッジ付近の反射量
-Roughness:粗さ
-IOR(Index of Refraction Values):屈折率
-Transmission:透過(1.0 で透明物体)
-Emission:発光
-Alpha:α値(0で透明、1.0 で不透明)

~
~

**複数マテリアルの定義
#YouTube(ABC)
~

オブジェクトに複数のマテリアルを持たせるには、以下2つの方法があります。
~

***EditMode で面ごとに定義
#image(Blender/MaterialAssign.jpg,right,30%)
-対象オブジェクトを選択した状態で、プロパティエディタの Material Property パネルを開きます。
-マテリアルスロットで [ + ] をクリックして、使用するすべてのマテリアルを登録します。
-EditMode に入って、マテリアルを与えたい面を選択した後、マテリアルスロットに登録されたマテリアルを選択します。
- Assign を押すと、選択された面にそのマテリアルが適用されます。
~

***複数のオブジェクトを JOIN する
例えば、本体がアルミで、取っ手が木材の「鍋」をつくる場合、全体の形をつくってから塗り分けるのではなく、本体と取っ手を別のオブジェクトとしてモデリングし、マテリアルの設定まで行ってから、2つのオブジェクトを JOIN すれば、結果的には、複数のマテリアルを持ったオブジェクトが完成します。
-合成したい2つのオブジェクトを選択 > Object > Join (CTRL J)
~
~

**APPENDIX
今回の説明内容の詳細は、以下のページに記載しています。動画を見るより読む方が早い・・という方は、以下をご覧下さい。

-__[[Blender/Materials]]__
~
~
~