Material(マテリアル) は、ゲームエンジンや3Dアプリケーションにおいて、3Dオブジェクトの見た目を定義する設定のことを指します。具体的には、オブジェクトの表面がどのように光を反射し、色を持ち、テクスチャがどのように適用されるかといったビジュアル面の振る舞いを決めるためのデータです。
3Dモデルやメッシュは、基本的に形状(頂点やエッジ、面など)だけを持っています。この形状がどのように表示されるかを決めるのがマテリアルです。
マテリアルにはいくつかの重要な要素が含まれます。これらの設定に基づいて、モデルの表面がどのように見えるかが決まります:
色(カラー)
オブジェクトの基本的な色です。単純な単色から、より複雑な色パターンを作るためのテクスチャを使用することもできます。
テクスチャ(Texture)
テクスチャは、画像ファイルを使って、オブジェクトの表面に詳細な模様やディテールを与えます。これにより、オブジェクトはよりリアルに見えます。
シェーダー(Shader)
マテリアルにはシェーダーが含まれており、オブジェクトの表面が光をどのように反射するか、透明度や凹凸などの特性を決めます。シェーダーはプログラムによって定義され、マテリアルの描画方法を細かく制御します。
反射や屈折
物体が光を反射したり、透明な物体が光を屈折させたりする効果もマテリアルで設定されます。たとえば、ガラスや水のような物質は光を屈折させます。
メタリックとスムースネス
これらは物体の表面がどれだけ金属的か、そしてどれくらい滑らかに見えるかを制御する要素です。これらの設定は、光の反射を大きく変化させます。
法線マップ(Normal Map)
法線マップを使用すると、実際のジオメトリ(形状)が変わることなく、表面に凹凸があるかのような視覚効果を生み出せます。これにより、モデルに複雑なディテールを追加できます。
マテリアルはシェーダーと一緒に動作し、メッシュにどのように描画されるかを決めます。シェーダーは、マテリアルがどのようにレンダリングされるかをプログラムで定義しています。
Mesh(メッシュ) は、3Dオブジェクトの形状を定義するデータです。メッシュは頂点と三角形で構成されており、ゲームやアプリケーションの中で形を作ります。
マテリアルは、そのメッシュの表面にどのような見た目を持たせるかを定義します。たとえば、石のメッシュに石っぽい質感のマテリアルを適用することで、ゲーム内でそのオブジェクトが「石のように見える」ようになります。
複数のマテリアルを持つメッシュの場合、各マテリアルはメッシュの特定の部分(サブメッシュ)に適用されます。メッシュが複雑であれば、複数のマテリアルを適用することがあります。例えば、キャラクターのモデルでは、服と肌に別々のマテリアルを使うことができます。