-
マテリアルファイル ( *.mtl ) のフォーマットリファレンスです。
Version 1.0.0.0
- 最初のフォーマット
[Chg] | データをヘッダを分割。 |
ファイルヘッダ |
情報ヘッダ |
テクスチャ |
ファイルヘッダ
-
ファイルヘッダはマテリアルファイルを識別するためのものです。
- MTL_FILE_HEADER
ファイルヘッダ ( MTL_FILE_HEADER 構造体 ) |
名前 | 型 | 説明 | 値 |
---|---|---|---|
magic | UInt32 | マジック値 | 0x5F4C544D |
version | UInt32 | バージョン | 0x01010000 |
情報ヘッダ
-
情報ヘッダはマテリアル全般の情報を記述します。
- MTL_INFO_HEADER
- MTL_VERTEX_TYPE 列挙定数
- MTL_TYPE 列挙定数
- MTL_SHADER_TYPE 列挙定数
- MTL_BLEND_MODE 列挙定数
- MTL_TEXTURE_FILTER 列挙定数
- MTL_TEXTURE_ADDRESS 列挙定数
- MTL_DIFFUSE_TYPE 列挙定数
- MTL_SPECULAR_TYPE 列挙定数
- MTL_REFLECT_TYPE 列挙定数
- MTL_BUMP_TYPE 列挙定数
- MTL_WAVE_TYPE 列挙定数
- MTL_WAVE_DIR 列挙定数
- MTL_FLAG 列挙定数
- MTL_TRANSPARENCY_METHOD 列挙定数
情報ヘッダ ( MTL_INFO_HEADER 構造体 ) |
名前 | 型 | 説明 |
---|---|---|
vertexShader | UInt32[MTL_VERTEX_TYPE_MAX] | バーテックスシェーダーの識別子 |
pixelShader | UInt32 | ピクセルシェーダーの識別子 |
type | UInt32 | マテリアルタイプ MTL_TYPE 列挙定数のいずれか。 |
shaderType | UInt32 | シェーダータイプ MTL_SHADER_TYPE 列挙定数のいずれか |
blendMode | UInt32 | ブレンドモード MTL_BLEND_MODE 列挙定数のいずれか |
textureFilter | UInt32 | テクスチャフィルター MTL_TEXTURE_FILTER 列挙定数のいずれか。 |
textureAddressing | UInt32 | テクスチャアドレッシング MTL_TEXTURE_ADDRESS 列挙定数のいずれか。 |
flags | UInt32 | フラグ MTL_FLAG 列挙定数の組み合わせ。 |
transparencyMethod | UInt32 | 半透明メソッド MTL_TRANSPARENCY_METHOD 列挙定数のいずれか。 |
ambientColor | Float32[4] | アンビエントカラー ambientColor = { R, G, B, 1.0 } |
diffuseType | UInt32 | ディフューズ : タイプ MTL_DIFFUSE_TYPE 列挙定数のいずれか。 |
diffuseColor | Float32[4] | ディフューズ : カラー diffuseColor = { R, G, B, A } |
diffuseFresnel | Float32 | ディフューズ : フレネル効果 : 強さ |
diffuseRTIntensity | Float32 | ディフューズ : リムライティング : 鋭さ |
diffuseRTScale | Float32 | ディフューズ : リムライティング : スケール |
specularType | UInt32 | スペキュラー : タイプ MTL_SPECULAR_TYPE 列挙定数のいずれか。 |
specularColor | Float32[4] | スペキュラー : カラー specularColor = { R, G, B, スペキュラーの強さ } |
specularIntensity | Float32 | スペキュラー : 鋭さ |
specularScale | Float32 | スペキュラー : スケール |
specularCTIntensity | Float32 | スペキュラー : クックトランス : 効果の強さ |
specularCTRoughness | Float32 | スペキュラー : クックトランス : 荒さ |
reflectType | UInt32 | 反射 : タイプ MTL_REFLECT_TYPE 列挙定数のいずれか。 |
reflectScale | Float32 | 反射 : スケール |
reflectIntensity | Float32 | 反射 : 強さ |
reflectBias | Float32 | 反射 : バイアス |
reflectExposure | Float32 | 反射 : 露光 |
emissiveColor | Float32[4] | エミッシブ : カラー emissiveColor = { R, G, B, エミッシブの強さ } |
emissiveScale | Float32 | エミッシブ : スケール |
bumpType | UInt32 | バンプ : タイプ MTL_BUMP_TYPE 列挙定数のいずれか。 |
bumpHeightScale | Float32 | バンプ : 高さのスケール |
bumpReflectBias | Float32 | バンプ : 反射への影響度 |
waveType | UInt32 | ウェーブ : タイプ MTL_WAVE_TYPE 列挙定数のいずれか。 |
waveDir | UInt32 | ウェーブ : 方向 MTL_WAVE_DIR 列挙定数のいずれか。 |
waveSpeed | Float32 | ウェーブ : 速度 |
waveUVOffset | Float32 | ウェーブ : UVオフセット |
refractIntensity | Float32 | 屈折 : 強度 |
refractDepthOfMax | Float32 | 屈折 : 強度が最大になる深さ |
softEdgeTickness | Float32 | ソフトエッジ : 厚み |
名前 | 説明 | 値 |
---|---|---|
MTL_VERTEX_SIMPLE | シンプルバーテックス | 0 |
MTL_VERTEX_BLEND | ブレンドバーテックス | 1 |
MTL_VERTEX_TYPE_MAX | 2 |
名前 | 説明 | 値 |
---|---|---|
MTL_DEFAULT | デフォルトマテリアル | 0 |
名前 | 説明 | 値 |
---|---|---|
MTL_SHADER_NORMAL | 通常 | 0 |
MTL_SHADER_WATER | ウォーター | 1 |
MTL_SHADER_SHADELESS | ライティング無し | 2 |
名前 | 説明 | 値 |
---|---|---|
MTL_BLEND_COPY | コピー | 0 |
MTL_BLEND_NORMAL | 通常 | 1 |
MTL_BLEND_ADD | 加算 | 2 |
MTL_BLEND_SUB | 減算 | 3 |
MTL_BLEND_MUL | 乗算 | 4 |
MTL_BLEND_SCREEN | スクリーン | 5 |
名前 | 説明 | 値 |
---|---|---|
MTL_TEXTURE_FILTER_POINT | ポイント | 0 |
MTL_TEXTURE_FILTER_LINEAR | リニア | 1 |
MTL_TEXTURE_FILTER_ANISOTROPIC | アニソトロピック | 2 |
名前 | 説明 | 値 |
---|---|---|
MTL_TEXTURE_ADDRESS_WRAP | ラップ | 0 |
MTL_TEXTURE_ADDRESS_CLAMP | クランプ | 1 |
名前 | 説明 | 値 |
---|---|---|
MTL_DIFFUSE_LAMBERT | ランバート | 0 |
MTL_DIFFUSE_HALF_LAMBERT | ハーフランバート | 1 |
名前 | 説明 | 値 |
---|---|---|
MTL_SPECULAR_NONE | 無し | 0 |
MTL_SPECULAR_PHONG | フォン | 1 |
MTL_SPECULAR_BLINN_PHONG | ブリンフォン | 2 |
MTL_SPECULAR_COOK_TORRANCE | クックトランス | 3 |
名前 | 説明 | 値 |
---|---|---|
MTL_REFLECT_NONE | 反射をしない | 0 |
MTL_REFLECT_NORMAL | 通常の反射 | 1 |
MTL_REFLECT_FRESNEL | フレネル効果がある反射 | 2 |
名前 | 説明 | 値 |
---|---|---|
MTL_BUMP_NORMAL_MAPPING | 法線マッピング | 0 |
MTL_BUMP_PARALLAX_MAPPING | 視差マッピング | 1 |
名前 | 説明 | 値 |
---|---|---|
MTL_WAVE_NORMAL | 通常の波 | 0 |
MTL_WAVE_REFRACT | 屈折効果がある波 | 1 |
名前 | 説明 | 値 |
---|---|---|
MTL_WAVE_NEGATIVE_U | テクスチャ空間の左方向 | 0 |
MTL_WAVE_POSITIVE_U | テクスチャ空間の右方向 | 1 |
MTL_WAVE_NEGATIVE_V | テクスチャ空間の上方向 | 2 |
MTL_WAVE_POSITIVE_V | テクスチャ空間の下方向 | 3 |
名前 | 説明 | 値 |
---|---|---|
MTL_BACKCULLING | 背面カリング | 0x00000001 |
MTL_TRANSPARENCY | 半透明 | 0x00000002 |
MTL_BOTH_LIGHTING | 両面ライティング | 0x00000004 |
MTL_DIFFUSE_FRESNEL | ディフューズ : フレネル効果 | 0x00000008 |
MTL_DIFFUSE_RIMLIGHTING | ディフューズ : リムライティング | 0x00000010 |
MTL_SOFTEDGE | ソフトエッジ ( ソフトパーティクル ) | 0x00000020 |
MTL_SHADOW_RECEIVE | シャドウマッピング : 自身に影を落とす | 0x00000040 |
MTL_SHADOW_CAST | シャドウマッピング : 他者に影を落とす | 0x00000080 |
MTL_DIFFUSE_TEXTURE | ディフューズテクスチャを所持 | 0x00000100 |
MTL_SPECULAR_TEXTURE | スペキュラーテクスチャを所持 | 0x00000200 |
MTL_EMISSIVE_TEXTURE | エミッシブテクスチャを所持 | 0x00000400 |
MTL_BUMP_TEXTURE | バンプテクスチャを所持 | 0x00000800 |
名前 | 説明 | 値 |
---|---|---|
MTL_TRANSPARENCY_LUMP | 一括描画 | 0 |
MTL_TRANSPARENCY_INDIVIDUAL | ポリゴン単位での描画 | 1 |
テクスチャ
-
マテリアルで使用するテクスチャを格納します。
ディフューズテクスチャ |
スペキュラーテクスチャ |
エミッシブテクスチャ |
バンプテクスチャ |
また、各テクスチャの構造は以下のようになります。
型 | 説明 |
---|---|
UInt32 | テクスチャのサイズ ( バイト単位 ) |
UInt8[size] | テクスチャ size は直前に定義されたテクスチャのサイズになります。 |
ディフューズテクスチャ
- ディフューズテクスチャは MTL_INFO_HEADER::flags に MTL_DIFFUSE_TEXTURE が設定されていた場合に存在します。
スペキュラーテクスチャ
- スペキュラーテクスチャは MTL_INFO_HEADER::flags に MTL_SPECULAR_TEXTURE が設定されていた場合に存在します。
エミッシブテクスチャ
- エミッシブテクスチャは MTL_INFO_HEADER::flags に MTL_EMISSIVE_TEXTURE が設定されていた場合に存在します。
バンプテクスチャ
- バンプテクスチャは MTL_INFO_HEADER::flags に MTL_BUMP_TEXTURE が設定されていた場合に存在します。