Engine

マテリアルエフェクトパッケージファイル | ファイルフォーマット

マテリアルエフェクトパッケージファイル　( *.mep )　のフォーマットリファレンスです。
Version 1.0.0.0

最初のフォーマット

Version 1.1.0.0

[Chg] | ???

ファイルヘッダ
情報ヘッダ
バーテックスシェーダー
ピクセルシェーダー

- MEP_SHADER_TYPE 列挙定数

名前 | 説明 | 値
--- | --- | ---
MEP_SHADER_DEFAULT | デフォルト | 0
MEP_SHADER_MASK | マスク( 屈折マッピング用 ) | 1
MEP_SHADER_SHADOW | シャドウ | 2
MEP_SHADER_TYPE_MAX |  | 3

- MEP_COMPILE_FLAG 列挙定数

名前 | 説明 | 値
--- | --- | ---
MEP_CF_NORMAL | 法線 | 0x00000001
MEP_CF_TANGENT_SPACE | 接線空間 | 0x00000002
MEP_CF_TEXTURE | テクスチャ座標 | 0x00000004
MEP_CF_SIMPLE_VERTEX | シンプルバーテックス | 0x00000008
MEP_CF_BLEND_VERTEX | ブレンドバーテックス | 0x00000010
MEP_CF_LIGHTING | ライティング | 0x00000020
MEP_CF_BOTH_LIGHTING | 両面ライティング | 0x00000040
MEP_CF_SHADOW_RECEIVE | 自身にシャドウマッピングを行う | 0x00000080
MEP_CF_REFRACT_CLIP | 半透明ポリゴンの屈折クリッピング | 0x00000100
MEP_CF_DIFFUSE_HALF_LAMBERT | ディフューズ : ハーフランバート | 0x00000200
MEP_CF_DIFFUSE_MAPPING | ディフューズ : テクスチャマッピング | 0x00000400
MEP_CF_DIFFUSE_FRESNEL | ディフューズ : フレネル効果 | 0x00000800
MEP_CF_DIFFUSE_RIM_LIGHTING | ディフューズ : リムライティング | 0x00001000
MEP_CF_SPECULAR_PHONG | スペキュラー : フォン | 0x00002000
MEP_CF_SPECULAR_BLINN_PHONG | スペキュラー : ブリンフォン | 0x00004000
MEP_CF_SPECULAR_COOK_TORRANCE | スペキュラー : クックトランス | 0x00008000
MEP_CF_SPECULAR_MAPPING | スペキュラー : テクスチャマッピング | 0x00010000
MEP_CF_REFLECT_MAPPING | 反射 : テクスチャマッピング | 0x00020000
MEP_CF_REFLECT_FRESNEL | 反射 : フレネル効果 | 0x00040000
MEP_CF_EMISSIVE_MAPPING | エミッシブ : テクスチャマッピング | 0x00080000
MEP_CF_BUMP_MAPPING | バンプ : テクスチャマッピング | 0x00100000
MEP_CF_PARALLAX | バンプ : 視差遮断マッピング | 0x00200000
MEP_CF_WATER | バンプ : ウォーター ( ウェーブアニメーション ) | 0x00400000
MEP_CF_REFRACT_MAPPING | バンプ : 屈折マッピング | 0x00800000
MEP_CF_SOFTEDGE | ソフトエッジ | 0x01000000
MEP_CF_WAVE_INVERT | バンプ : ウェーブアニメーションを逆転 | 0x02000000
MEP_CF_ATMOSPHERE | 大気散乱シミュレーション | 0x10000000
MEP_CF_FOG | フォグ | 0x20000000
MEP_CF_SHADOW | シャドウマッピング | 0x40000000
MEP_CF_SSAO | スクリーンスペースアンビエントオクルージョン | 0x80000000

ファイルヘッダ

ファイルヘッダはマテリアルエフェクトパッケージファイルを識別するためのものです。

ファイルヘッダ ( MEP_FILE_HEADER 構造体 )

- MEP_FILE_HEADER

名前 | 型 | 説明 | 値
--- | --- | --- | ---
magic | UInt32 | マジック値 | 0x4652504D
version | UInt32 | バージョン | 0x01020000

情報ヘッダ

情報ヘッダはマテリアルエフェクトパッケージ全般の情報を記述します。

情報ヘッダ ( MEP_INFO_HEADER 構造体 )

- MEP_INFO_HEADER

名前 | 型 | 説明
--- | --- | ---
type | UInt32 | タイプ MEP_TYPE 列挙定数のいずれか。
flags | UInt32 | フラグ MEP_FLAG 列挙定数の組み合わせ。
numVertexShader | UInt32 | バーテックスシェーダーの数
numPixelShader | UInt32 | ピクセルシェーダーの数

- MEP_TYPE 列挙定数

名前 | 説明 | 値
--- | --- | ---
MEP_FORWARD | フォワード | 0

- MEP_FLAG 列挙定数

名前 | 説明 | 値
--- | --- | ---
MEP_FOG | フォグ | 0x00000001
MEP_SHADOW_MAPPING | シャドウマッピング | 0x00000002
MEP_REFRACT_MAPPING | シャドウマッピング | 0x00000004
MEP_ATMOSPHERE_SCATTERING | 大気散乱シミュレーション | 0x00000040
MEP_AMBIENT_OCCLUSION | アンビエントオクルージョン | 0x00000100

バーテックスシェーダー

バーテックスシェーダーは MEP_INFO_HEADER::numVertexShader の値の数だけ存在します。

バーテックスシェーダーの記述 ( MEP_VERTEX_SHADER_DESC )
バイナリ ( UInt8 [ MEP_SHADER_TYPE_MAX ][ MEP_VERTEX_SHADER_DESC::binarySize ] )
入力レイアウト ( MEP_VERTEX_ELEMENT [ MEP_VS_HEADER::numElement ] )

- MEP_VERTEX_SHADER_DESC 構造体

名前 | 型 | 説明
--- | --- | ---

id

UInt32

識別子
MEP_COMPILE_FLAG 列挙定数の以下の組み合わせ。
MEP_CF_NORMAL
MEP_CF_TANGENT_SPACE
MEP_CF_TEXTURE
MEP_CF_SIMPLE_VERTEX
MEP_CF_BLEND_VERTEX
MEP_CF_LIGHTING
MEP_CF_SHADOW_RECEIVE
MEP_CF_BUMP_MAPPING
MEP_CF_REFRACT_MAPPING
MEP_CF_SSAO

binarySize | UInt32[MEP_SHADER_TYPE_MAX] | バイナリのサイズ ( バイト単位 )
numILElement | UInt32 | 入力レイアウトの要素数
reserve | UInt32 | 予約領域

- MEP_VERTEX_ELEMENT 構造体

名前 | 型 | 説明
--- | --- | ---
semanticType | UInt32 | セマンティックタイプ VERTEX_ELEMENT_SEMANTIC 列挙定数のいずれか。
semanticIndex | UInt32 | セマンティックインデックス
format | UInt32 | フォーマット VERTEX_ELEMENT_FORMAT 列挙定数のいずれか。
offset | UInt32 | オフセット ( バイト単位 )

- VERTEX_ELEMENT_SEMANTIC 列挙定数

名前 | 説明 | 値
--- | --- | ---
VES_POSITION | 座標 | 0
VES_BLENDWEIGHT | ブレンドウェイト | 1
VES_BLENDINDICES | ブレンドインデックス | 2
VES_NORMAL | 法線 | 3
VES_PSIZE | ポイントサイズ | 4
VES_TEXTURE | テクスチャ座標 | 5
VES_TANGENT | 接線 | 6
VES_BINORMAL | 従法線 | 7
VES_COLOR | カラー | 8

- VERTEX_ELEMENT_FORMAT 列挙定数

名前 | 説明 | 値
--- | --- | ---
VEF_FLOAT32_1 | 32ビット浮動小数点 * 1 | 0
VEF_FLOAT32_2 | 32ビット浮動小数点 * 2 | 1
VEF_FLOAT32_3 | 32ビット浮動小数点 * 3 | 2
VEF_FLOAT32_4 | 32ビット浮動小数点 * 4 | 3
VEF_UINT8_4 | 符号無し8ビット整数 * 4 | 4
VEF_INT16_2 | 符号付き16ビット整数 * 2 | 5
VEF_INT16_4 | 符号付き16ビット整数 * 4 | 6
VEF_UINT8_4N | 符号無し8ビット整数 * 4 | 7
VEF_INT16_2N | 符号付き16ビット整数 * 2 | 8
VEF_INT16_4N | 符号付き16ビット整数 * 4 | 9
VEF_UINT16_2N | 符号無し16ビット整数 * 2 | 10
VEF_UINT16_4N | 符号無し16ビット整数 * 4 | 11
VEF_FLOAT16_2 | 16ビット浮動小数点 * 2 | 12
VEF_FLOAT16_4 | 16ビット浮動小数点 * 4 | 13

ピクセルシェーダー

ピクセルシェーダーは MEP_INFO_HEADER::numPixelShader の値の数だけ存在します。

ピクセルシェーダーの記述 ( MEP_PIXEL_SHADER_DESC )
バイナリ ( UInt8 [ MEP_SHADER_TYPE_MAX ][ MEP_PIXEL_SHADER_DESC::binarySize ] )

- MEP_PIXEL_SHADER_DESC 構造体

名前 | 型 | 説明
--- | --- | ---

id

UInt32

識別子
MEP_COMPILE_FLAG 列挙定数の以下の組み合わせ。
MEP_CF_TEXTURE
MEP_CF_LIGHTING
MEP_CF_BOTH_LIGHTING
MEP_CF_SHADOW_RECEIVE
MEP_CF_REFRACT_CLIP
MEP_CF_DIFFUSE_HALF_LAMBERT
MEP_CF_DIFFUSE_MAPPING
MEP_CF_DIFFUSE_FRESNEL
MEP_CF_DIFFUSE_RIM_LIGHTING
MEP_CF_SPECULAR_PHONG
MEP_CF_SPECULAR_BLINN_PHONG
MEP_CF_SPECULAR_COOK_TORRANCE
MEP_CF_SPECULAR_MAPPING
MEP_CF_REFLECT_MAPPING
MEP_CF_REFLECT_FRESNEL
MEP_CF_EMISSIVE_MAPPING
MEP_CF_BUMP_MAPPING
MEP_CF_PARALLAX
MEP_CF_WATER
MEP_CF_REFRACT_MAPPING
MEP_CF_SOFTPARTICLE
MEP_CF_WAVE_INVERT
MEP_CF_ATMOSPHERE
MEP_CF_FOG
MEP_CF_SHADOW
MEP_CF_SSAO

binarySize | UInt32[MEP_SHADER_TYPE_MAX] | バイナリのサイズ ( バイト単位 )