LogoMark.png

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


第4回 マテリアル

3DCG演習|情報デザイン専攻2年 選択(集中)

ガイダンス動画

はじめに

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

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

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



確認課題 03

Basic03.jpg

本日の内容を視聴(一読)後、右のようなシーンを作成して、学科サイトの 基礎演習 Material の部分に出力画像を掲載して下さい。今回の課題は、マテリアルの設定に関する確認です。

制作要件

床と壁をつくった上で、拡散反射物体、鏡面反射物体、透明物体、それぞれ少なくとも1つ以上を含むように配置して、レンダリングして下さい。



マテリアルの設定方法


レンダリングエンジンの設定

マテリアルの設定を学ぶには、鏡面反射や透過といった光のシミュレーションも含めて試す必要があります。Blender デフォルトのレンダリングエンジン Eevee は、それに対応していないので、まずは、レイトレイシング(光線追跡)ができる Cycles エンジンを使うように設定して下さい。

PropertyEditor の RenderProprety パネルで エンジンを Cycles にします。

Render Engine:Cycles


Shading ワークスペースの利用

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

マテリアルの新規作成

新規のオブジェクトは、オブジェクトデータ(頂点座標等)を持っていますが、マテリアル情報は持っていません。オブジェクトに色を付けるには、マテリアルデータブロックをリンクする必要があります。

ShaderEditor > Header > Material > New(または既存のものを選択)
Material.jpg

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



Materialの設定|色・反射・屈折

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

ShaderEditor.jpg

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

代表的なシェーダーとパラメータ

Blender には複数のシェーダーノードが用意されていますが、通常のマテリアル設定では、Disney Principled BRDF(あるいはこれを拡張した Disney BSDF) に基づいたシェーダである Principled BSDF*1 を選ぶとよいでしょう。

例えば、鏡やガラスの物体は、Principled BSDFのデフォルト状態から、以下の値のみ変更すれば実現します。

参考:複数マテリアルの定義

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

EditMode で面ごとに定義

複数のオブジェクトを JOIN する

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

APPENDIX

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