見出し画像

マテリアル・テクスチャ・シェーダー

初心者が混同しがちなマテリアルとテクスチャ、そしてシェーダー。
僕も今回記事にするにあたって今一度学び直すことで理解を深められた気がするんですが、間違えがあったら是非ご教示ください!


<マテリアル>

マテリアルは、その物体の質感、材質全体です。色や光の反射具合、陰影のつき方も担当します。後述するテクスチャもマテリアルを構成する1要素で、シェーダーがそれらを計算して作ります。

どれくらい光を反射するかは物質によって異なります。ツルツルしたり、ピカピカしたりして光をたくさん反射する物質もあれば、マットな質感であまり光を反射しない物質もあります。

また、中にはガラスや水のように透明で、境界面で光を屈折させる物質もあります。また自ら光を放つ物質もあります。ボコボコ、ざらざら、ヌルヌル、スベスベ…そういった質感を全てまとめたものをマテリアルと呼んでいます。

<テクスチャ>

テクスチャは表面に貼られた皮です。模様です。
壁紙や絨毯、木目、大理石、レンガ、千鳥格子、市松模様、本の表紙絵、などさまざまな模様があります。そういった模様を3Dオブジェクトの表面に絵として貼ったものがテクスチャです。

<シェーダー>


もう1つ混同しやすそうな言葉に「シェーダー」があります。

シェーダー: shader)とは、3次元コンピュータグラフィックスにおいて、シェーディング(陰影処理)を行うコンピュータプログラムのこと。「shade」とは「次第に変化させる」「陰影・グラデーションを付ける」という意味で、「shader」は頂点色やピクセル色などを次々に変化させるもの(より具体的に、狭義の意味で言えば関数)を意味する。

ウィキペディア(Wikipedia)

シェーダーは言葉の意味からすると、陰影をつけるということです。上記のテクスチャや色、光の反射具合を設定して質感を作ります。見た目を決めるプログラム全体です。

3DCGで何かを作るときには、指定したパラメーターに従ってそのオブジェクトが描画されます。現実世界で光がなければ真っ暗になって何も識別できなくなってしまうのと同様、CGにおいても光源(ライト)を設置しなければ描画されません。

明るさや光が当たった物体の反射具合、光の透過率などを設定したパラメーターを受け取ってプラグラムに従って陰影のでき方を計算しているのがシェーダーと言えそうです。

シェーダーの実例

どれくらいの要素を盛り込んで計算をするかはシェーダー次第です。3DCGソフトには、元々様々なシェーダーが用意されていますし、シェーダーの自作を専門とする方もいます。

unity

unityであれば、デフォルトで設定されているStandardシェーダー以外にも、光源の影響を受けないUnlitシェーダーや、アニメ調のtoon系シェーダーなど様々なシェーダーが使われます。

UnityのStandardシェーダーによる描画。影が滑らか。
アルベド、メタリック、スムースネスなどで質感を作ることができる。
それぞれにメタリックマップやスムースネスマップなどのテクスチャを設定できる。
UnityのUnlit/Colorシェーダーによる描画。
設定項目が色しかない。
VRM/MToonによる描画。
影のはっきりしていてアニメっぽい表現ができる。輪郭も付けられる。

blender

Blenderだとオブジェクトを追加してからシーンビューで右クリックをすると「フラットシェード」と「スムーズシェード」という項目があります。それぞれで切り替えると陰影のつき方が変わります。

フラットシェードで描画するとポリゴンがはっきりわかるカクカクした見た目に
スムーズシェードで描画すると滑らかな球体に

また、シェーダーエディターでは、デフォルトのプリンシプルBSDF以外にも放射やグラスBSDFなどシェーダーが多数用意されていますが、総合的に大体何でも設定できるのがデフォルトのプリンシプルBSDFシェーダーです。

シェーダーエディタでシェーダーを呼び出すと、たくさん出てくる。
デフォルトのシェーダー。プリンシプルBSDF。
グラスBSDF

<それぞれの関係>


マテリアルはシェーダーによって計算されたテクスチャも含めた物質の表面の質感全体です。

例えば直方体のオブジェクトにビルの写真を「テクスチャ」として貼ったとします。このままだとただのハリボテで、リアルにはなりません。ビルの表面は様々な素材からできており、光の反射具合も様々です。凹凸も大事な要素ですが、今回は割愛します。

つまりここで大切になるのが「シェーダー」です。

例えば壁面はざらざらしているけど、表面を這うパイプはツルツルしていて、雨や土埃で汚れたところはマット、窓は光を反射してるし光沢もある。

これらの素材の違いをシェーダーの設定で変えていくと、リアルさが増します。

マテリアルは、シェーダーでテクスチャを含めた色々なパラメーターを計算することで描画されるオブジェクトの材質全般のことだったんですね。

<まとめ>

「マテリアル」は材質。オブジェクトの見た目全般を決める。

「テクスチャ」は絵や模様などをより細かい情報を貼り付ける。

「シェーダー」はマテリアルを表現するために、陰影や反射を計算する仕組み。


<参考になったサイト>

シェーダーについては

<追記>


筆者は『弥刀羅堂(みとらどう)』というアジアン雑貨店兼ワークショップをやっています。ワークショップのほうではblenderでモデリング入門講座も開講しています。興味を持たれた方は是非一度、無料体験講座を。
メールでのお問い合わせは mitoradouworkshop@gmail.comまで。


この記事が気に入ったらサポートをしてみませんか?