Material(mtd) params are values for each individual material in the game which are used to change the way surfaces are rendered. They define the shaders to use, and what values to pass in to it such as color multipliers and how it should blend with the environment. To edit MTD params, use MTD Editor from the Tools page of this wiki.
Almost all of this info should also be valid for DS1 since its material format is identical to Demon's Souls (but the actual shaders are different, so results may vary).
| Param Name | Data Type | Description |
|---|---|---|
| g_BlendMode | Int(enum) | The method in which the colors of this object's surface blend with surfaces behind it. Therefore values other than “Normal” only matter for transparent objects. |
| g_LightingType | Int(enum) | The method in which to calculate lighting on the object. |
| g_DiffuseMapColor | Float3 | An RGB vector to multiply the colors in the diffuse map by. Multiplying colors past 1 will result in their color bleeding out, causing a sort of “emissive” effect. |
| g_DiffuseMapColorPower | Float | A multiplier for all 3 color channels of the diffuse map. |
| g_SpecularMapColor | Float3 | An RGB vector to multiply the colors in the specular map by. Multiplying colors past 1 will result in their color bleeding out, causing a sort of “emissive” effect. |
| g_SpecularMapColorPower | Float | A multiplier for all 3 color channels of the specular map. |
| g_SpecularPower | Float | The actual “specularity” of the surface. Higher values will result in stronger and smaller highlights, while smaller values will result in the specular light being spread more evenly across the surface. |
| g_EnvSpcSlotNo | Int | Unsure, but likely has to do with which EnvSpc cubemap texture to use for lighting in the map. It seems that duller or default materials use 0 and as the shininess increases it goes up to 3. |
| g_TexScrollType | Int(bool) | 0 if the UVs do not scroll, 1 if they do. |
| g_TexScroll_0 | Float2 | A vector applied (every frame?) to UV 1 for scrolling. UV 1 is usually the diffuse, specular, and normal map texture. |
| g_TexScroll_1 | Float2 | A vector applied (every frame?) to UV 2 for scrolling. UV 2 is usually the 2nd diffuse, specular, and normal map texture if they exist (for multitexture materials). |
| g_TexScroll_2 | Float2 | A vector applied (every frame?) to UV 3 for scrolling. UV 3 is usually the lightmap texture. |
| g_ShadowPowMul | Float | A multiplier for the intensity of shadows cast on this surface. |
| g_FaceGenType | Int(bool) | Unsure, but could be what tells the game to look for the FaceGenParam in the CharaInitParam to say to color this surface based on it's skin color. Set to 1 for player skin materials and 0 for everything else. |
| g_UseHairColor | Int(bool) | Unsure, but could be what tells the game to look for the FaceGenParam in the CharaInitParam to say to color this surface based on it's hair color. Set to 1 for player hair materials and 0 for everything else. |
| g_IsNew | Bool | Unsure, didn't notice any changes when toggled on or off. Set to ON for every material in the game by default. |