- MTLファイル概要 -
MTLファイルはOBJファイルと一緒に使われるファイルです。
中身はマテリアル属性(環境光、拡散光、鏡面光、鏡面反射角度、テクスチャ画像ファイル名)が書かれていて、
マテリアル属性ごとに名前が付けられています。

[ ファイル形式の仕様 ]
newmtl マテリアル名
map_Kd テクスチャファイル名
Ka RED GREEN BLUE(環境光データ。0.0〜1.0の範囲)
Kd RED GREEN BLUE(拡散光データ。0.0〜1.0の範囲)
Ks RED GREEN BLUE(鏡面光データ。0.0〜1.0の範囲)
Ns SHININESS(鏡面反射角度。0.0〜128.0の範囲)


[ 解説 ]
データや文字の区切りはすべて「1文字分の半角スペース」となるのはOBJファイルと同じです。


「newmtl」
1つのマテリアル属性ごとに付けられた名前です。
newmtlに書かれている名前は、map_Kd、Ka、Kd、Ks、Nsを1つのまとまりとし、それらに対してつけられた名前です。
この名前はOBJファイル内で、どのマテリアル要素を使用するか指定する際に使用されます。

OBJファイル側からは、「usemtl マテリアル要素名」のように書かれます。
書かれる場所は適用される頂点の「f」の前に書かれ、次のusemtlかファイルの終わりまでは同じマテリアル要素を使用します。
また、2つ以上のマテリアル要素が使用される場合、以下のようにマテリアル要素が適用されます。

usemtl マテリアル要素1
f x1/y1/z1 x2/y2/z2 x3/y3/z3		→マテリアル要素1を使用
f x4/y4/z4 x5/y5/z5 x6/y6/z6		→マテリアル要素1を使用
・
・
usemtl マテリアル要素2
f x7/y7/z7 x8/y8/z8 x9/y9/z9		→マテリアル要素2を使用
・
・


「map_Kd」
OBJファイル内で定義されるオブジェクトの「テクスチャ画像ファイル名.拡張子」です。
画像ファイル形式はOBJを読むプログラムが対応している画像ファイルを使用します。
BrightObjectが対応しているのは24bitのBMPファイルです。
テクスチャを使用しないOBJファイルに対するMTLファイルにはmap_Kdは書かれません。


「Ka」
環境光を表現するRGB値。各値は0.0〜1.0の範囲の値です。


「Kd」
拡散光を表現するRGB値。各値は0.0〜1.0の範囲の値です。


「Ks」
鏡面光を表現するRGB値。各値は0.0〜1.0の範囲の値です。


「Ns」
鏡面光の焦点範囲を決定するために使用する角度。0.0〜128.0の範囲の値です。
円錐の先端から底面に向かって真下に線を引き、その線と円錐の側面の間の角度です。
この角度によって鏡面光の範囲が決められます。


実際のMTLファイルはこのように書かれます。

newmtl mat2
map_Kd shakunetu.bmp
Ka 0.25000 0.25000 0.25000
Kd 1.00000 1.00000 1.00000
Ks 1.00000 1.00000 1.00000
Ns 5.00000

これが1つのマテリアル要素となり、複数のマテリアル要素がある場合は、
このまとまりがいくつも書かれます。


inserted by FC2 system