Material Flags: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
m (formatted code link) |
||
(12 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
Material <code>$flags</code> and <code>$flags2</code> parameters control how the material is rendered. <code>$flag</code> can be changed in real-time to allow changes in rendering, but <code>$flags2</code> is read-only and assists the engine or other code in using the material correctly. | Material <code>$flags</code> and <code>$flags2</code> parameters control how the material is rendered. <code>$flag</code> can be changed in real-time to allow changes in rendering, but <code>$flags2</code> is read-only and assists the engine or other code in using the material correctly. Enumerations found in {{path|[https://github.com/ValveSoftware/source-sdk-2013/blob/master/mp/src/public/materialsystem/imaterial.h public/materialsystem/imaterial]|h}} | ||
The flags can also be set via the .vmt | The flags can also be set via the .vmt | ||
Line 10: | Line 10: | ||
$vertexalpha 1 | $vertexalpha 1 | ||
} | } | ||
== $flags == | == $flags == | ||
$flags can contain the following flags: | $flags can contain the following flags: | ||
{| class=standard-table | {| class=standard-table | ||
| '''Flag''' || '''Value''' || '''Comment''' | | '''Flag''' || '''Hex Value''' || '''Dec Value''' || '''Comment''' | ||
|- | |- | ||
| MATERIAL_VAR_DEBUG || 0x0001 || | | MATERIAL_VAR_DEBUG || 0x0001 || 1|| [[$debug]] | ||
|- | |- | ||
| MATERIAL_VAR_NO_DEBUG_OVERRIDE || 0x0002 || | | MATERIAL_VAR_NO_DEBUG_OVERRIDE || 0x0002 || 2|| [[$no_fullbright]] | ||
|- | |- | ||
| MATERIAL_VAR_NO_DRAW || 0x0004 || | | MATERIAL_VAR_NO_DRAW || 0x0004 || 4|| [[$no_draw]] | ||
|- | |- | ||
| MATERIAL_VAR_USE_IN_FILLRATE_MODE || 0x0008 || | | MATERIAL_VAR_USE_IN_FILLRATE_MODE || 0x0008 || 8|| [[$use_in_fillrate_mode]] | ||
|- | |- | ||
| MATERIAL_VAR_VERTEXCOLOR || 0x0010 || [[$ | | MATERIAL_VAR_VERTEXCOLOR || 0x0010 || 16|| [[$vertexcolor]] | ||
|- | |- | ||
| MATERIAL_VAR_VERTEXALPHA || 0x0020 || [[$vertexalpha]] | | MATERIAL_VAR_VERTEXALPHA || 0x0020 || 32|| [[$vertexalpha]] | ||
|- | |- | ||
| MATERIAL_VAR_SELFILLUM || 0x0040 || | | MATERIAL_VAR_SELFILLUM || 0x0040 || 64|| [[$selfillum]] | ||
|- | |- | ||
| MATERIAL_VAR_ADDITIVE || 0x0080 || | | MATERIAL_VAR_ADDITIVE || 0x0080 || 128|| [[$additive]] | ||
|- | |- | ||
| MATERIAL_VAR_ALPHATEST || 0x0100 || | | MATERIAL_VAR_ALPHATEST || 0x0100 || 256|| [[$alphatest]] | ||
|- | |- | ||
| MATERIAL_VAR_MULTIPASS || 0x0200 || | | MATERIAL_VAR_MULTIPASS || 0x0200 || 512|| [[$multipass]] | ||
|- | |- | ||
| MATERIAL_VAR_ZNEARER || 0x0400 || | | MATERIAL_VAR_ZNEARER || 0x0400 || 1024|| [[$znearer]] | ||
|- | |- | ||
| MATERIAL_VAR_MODEL || 0x0800 || | | MATERIAL_VAR_MODEL || 0x0800 || 2048|| [[$model]] | ||
|- | |- | ||
| MATERIAL_VAR_FLAT || 0x1000 || | | MATERIAL_VAR_FLAT || 0x1000 || 4096|| [[$flat]] | ||
|- | |- | ||
| MATERIAL_VAR_NOCULL || 0x2000 || | | MATERIAL_VAR_NOCULL || 0x2000 || 8192|| [[$nocull]] | ||
|- | |- | ||
| MATERIAL_VAR_NOFOG || 0x4000 || | | MATERIAL_VAR_NOFOG || 0x4000 || 16384|| [[$nofog]] | ||
|- | |- | ||
| MATERIAL_VAR_IGNOREZ || 0x8000 || | | MATERIAL_VAR_IGNOREZ || 0x8000 || 32768|| [[$ignorez]] | ||
|- | |- | ||
| MATERIAL_VAR_DECAL || 0x10000 || | | MATERIAL_VAR_DECAL || 0x10000 || 65536|| [[$decal]] | ||
|- | |- | ||
| MATERIAL_VAR_ENVMAPSPHERE || 0x20000 || | | MATERIAL_VAR_ENVMAPSPHERE || 0x20000 || 131072|| [[$envmapsphere]] | ||
|- | |- | ||
| MATERIAL_VAR_NOALPHAMOD || 0x40000 || | | MATERIAL_VAR_NOALPHAMOD || 0x40000 || 262144|| [[$noalphamod]] | ||
|- | |- | ||
| MATERIAL_VAR_ENVMAPCAMERASPACE || 0x80000 || | | MATERIAL_VAR_ENVMAPCAMERASPACE || 0x80000 || 524288|| [[$envmapcameraspace]] | ||
|- | |- | ||
| MATERIAL_VAR_BASEALPHAENVMAPMASK || 0x100000 || | | MATERIAL_VAR_BASEALPHAENVMAPMASK || 0x100000 || 1048576|| [[$basealphaenvmapmask]] | ||
|- | |- | ||
| MATERIAL_VAR_TRANSLUCENT || 0x200000 || | | MATERIAL_VAR_TRANSLUCENT || 0x200000 || 2097152|| [[$translucent]] | ||
|- | |- | ||
| MATERIAL_VAR_NORMALMAPALPHAENVMAPMASK || 0x400000 || | | MATERIAL_VAR_NORMALMAPALPHAENVMAPMASK || 0x400000 || 4194304|| [[$normalmapalphaenvmapmask]] | ||
|- | |- | ||
| MATERIAL_VAR_NEEDS_SOFTWARE_SKINNING || 0x800000 || | | MATERIAL_VAR_NEEDS_SOFTWARE_SKINNING || 0x800000 || 8388608|| [[$softwareskin]] | ||
|- | |- | ||
| MATERIAL_VAR_OPAQUETEXTURE || 0x1000000 || | | MATERIAL_VAR_OPAQUETEXTURE || 0x1000000 || 16777216|| [[$opaquetexture]] | ||
|- | |- | ||
| MATERIAL_VAR_ENVMAPMODE || 0x2000000 || | | MATERIAL_VAR_ENVMAPMODE || 0x2000000 || 33554432|| [[$envmapmode]] | ||
|- | |- | ||
| MATERIAL_VAR_SUPPRESS_DECALS || 0x4000000 || | | MATERIAL_VAR_SUPPRESS_DECALS || 0x4000000 || 67108864|| [[$nodecal]] | ||
|- | |- | ||
| MATERIAL_VAR_HALFLAMBERT || 0x8000000 || | | MATERIAL_VAR_HALFLAMBERT || 0x8000000 || 134217728|| [[$halflambert]] | ||
|- | |- | ||
| MATERIAL_VAR_WIREFRAME || 0x10000000 || | | MATERIAL_VAR_WIREFRAME || 0x10000000 || 268435456|| [[$wireframe]] | ||
|- | |- | ||
| MATERIAL_VAR_ALLOWALPHATOCOVERAGE || 0x20000000 || | | MATERIAL_VAR_ALLOWALPHATOCOVERAGE || 0x20000000 || 536870912|| [[$allowalphatocoverage]] | ||
|- | |- | ||
| MATERIAL_VAR_IGNORE_ALPHA_MODULATION || 0x40000000 || | | MATERIAL_VAR_IGNORE_ALPHA_MODULATION || 0x40000000 || 1073741824|| | ||
|} | |} | ||
Line 84: | Line 84: | ||
{| class=standard-table | {| class=standard-table | ||
| '''Flag''' || '''Value''' || '''Comment''' | | '''Flag''' || '''Dec Value''' || '''Comment''' | ||
|- | |- | ||
| MATERIAL_VAR2_LIGHTING_UNLIT || | | MATERIAL_VAR2_LIGHTING_UNLIT || 0|| | ||
|- | |- | ||
| MATERIAL_VAR2_LIGHTING_VERTEX_LIT || | | MATERIAL_VAR2_LIGHTING_VERTEX_LIT || 1|| | ||
|- | |- | ||
| MATERIAL_VAR2_LIGHTING_LIGHTMAP0 || | | MATERIAL_VAR2_LIGHTING_LIGHTMAP0 || 2|| | ||
|- | |- | ||
| MATERIAL_VAR2_LIGHTING_BUMPED_LIGHTMAP || | | MATERIAL_VAR2_LIGHTING_BUMPED_LIGHTMAP || 4|| | ||
|- | |- | ||
| MATERIAL_VAR2_LIGHTING_MASK | | MATERIAL_VAR2_LIGHTING_MASK || 7 || Sum of 3 above | ||
|- | |- | ||
| MATERIAL_VAR2_DIFFUSE_BUMPMAPPED_MODEL || | | MATERIAL_VAR2_DIFFUSE_BUMPMAPPED_MODEL || 8|| | ||
|- | |- | ||
| MATERIAL_VAR2_USES_ENV_CUBEMAP || | | MATERIAL_VAR2_USES_ENV_CUBEMAP || 16|| | ||
|- | |- | ||
| MATERIAL_VAR2_NEEDS_TANGENT_SPACES || | | MATERIAL_VAR2_NEEDS_TANGENT_SPACES || 32|| | ||
|- | |- | ||
| MATERIAL_VAR2_NEEDS_SOFTWARE_LIGHTING || | | MATERIAL_VAR2_NEEDS_SOFTWARE_LIGHTING || 64|| | ||
|- | |- | ||
| MATERIAL_VAR2_BLEND_WITH_LIGHTMAP_ALPHA || | | MATERIAL_VAR2_BLEND_WITH_LIGHTMAP_ALPHA || 128|| | ||
|- | |- | ||
| MATERIAL_VAR2_NEEDS_BAKED_LIGHTING_SNAPSHOTS || | | MATERIAL_VAR2_NEEDS_BAKED_LIGHTING_SNAPSHOTS || 256|| | ||
|- | |- | ||
| MATERIAL_VAR2_USE_FLASHLIGHT || | | MATERIAL_VAR2_USE_FLASHLIGHT || 512|| | ||
|- | |- | ||
| MATERIAL_VAR2_USE_FIXED_FUNCTION_BAKED_LIGHTING || | | MATERIAL_VAR2_USE_FIXED_FUNCTION_BAKED_LIGHTING || 1024|| | ||
|- | |- | ||
| MATERIAL_VAR2_NEEDS_FIXED_FUNCTION_FLASHLIGHT || | | MATERIAL_VAR2_NEEDS_FIXED_FUNCTION_FLASHLIGHT || 2048|| | ||
|- | |- | ||
| MATERIAL_VAR2_USE_EDITOR || | | MATERIAL_VAR2_USE_EDITOR || 4096|| | ||
|- | |- | ||
| MATERIAL_VAR2_NEEDS_POWER_OF_TWO_FRAME_BUFFER_TEXTURE || | | MATERIAL_VAR2_NEEDS_POWER_OF_TWO_FRAME_BUFFER_TEXTURE || 8192|| | ||
|- | |- | ||
| MATERIAL_VAR2_NEEDS_FULL_FRAME_BUFFER_TEXTURE || | | MATERIAL_VAR2_NEEDS_FULL_FRAME_BUFFER_TEXTURE || 16384|| | ||
|- | |- | ||
| MATERIAL_VAR2_IS_SPRITECARD || | | MATERIAL_VAR2_IS_SPRITECARD || 32768|| | ||
|- | |- | ||
| MATERIAL_VAR2_USES_VERTEXID || | | MATERIAL_VAR2_USES_VERTEXID || 65536|| | ||
|- | |- | ||
| MATERIAL_VAR2_SUPPORTS_HW_SKINNING || | | MATERIAL_VAR2_SUPPORTS_HW_SKINNING || 131072|| | ||
|- | |- | ||
| MATERIAL_VAR2_SUPPORTS_FLASHLIGHT || | | MATERIAL_VAR2_SUPPORTS_FLASHLIGHT || 262144|| | ||
|} | |} | ||
[[Category:Material System]] | [[Category:Material System]] | ||
[[Category: | [[Category:Shader parameters]] |
Latest revision as of 10:39, 25 December 2024
Material $flags
and $flags2
parameters control how the material is rendered. $flag
can be changed in real-time to allow changes in rendering, but $flags2
is read-only and assists the engine or other code in using the material correctly. Enumerations found in public/materialsystem/imaterial.h
The flags can also be set via the .vmt Example:
#Sets the MATERIAL_VAR_VERTEXCOLOR and MATERIAL_VAR_VERTEXALPHA flag UnlitGeneric { $basetexture brick/brickwall003a $vertexcolor 1 $vertexalpha 1 }
$flags
$flags can contain the following flags:
Flag | Hex Value | Dec Value | Comment |
MATERIAL_VAR_DEBUG | 0x0001 | 1 | $debug |
MATERIAL_VAR_NO_DEBUG_OVERRIDE | 0x0002 | 2 | $no_fullbright |
MATERIAL_VAR_NO_DRAW | 0x0004 | 4 | $no_draw |
MATERIAL_VAR_USE_IN_FILLRATE_MODE | 0x0008 | 8 | $use_in_fillrate_mode |
MATERIAL_VAR_VERTEXCOLOR | 0x0010 | 16 | $vertexcolor |
MATERIAL_VAR_VERTEXALPHA | 0x0020 | 32 | $vertexalpha |
MATERIAL_VAR_SELFILLUM | 0x0040 | 64 | $selfillum |
MATERIAL_VAR_ADDITIVE | 0x0080 | 128 | $additive |
MATERIAL_VAR_ALPHATEST | 0x0100 | 256 | $alphatest |
MATERIAL_VAR_MULTIPASS | 0x0200 | 512 | $multipass |
MATERIAL_VAR_ZNEARER | 0x0400 | 1024 | $znearer |
MATERIAL_VAR_MODEL | 0x0800 | 2048 | $model |
MATERIAL_VAR_FLAT | 0x1000 | 4096 | $flat |
MATERIAL_VAR_NOCULL | 0x2000 | 8192 | $nocull |
MATERIAL_VAR_NOFOG | 0x4000 | 16384 | $nofog |
MATERIAL_VAR_IGNOREZ | 0x8000 | 32768 | $ignorez |
MATERIAL_VAR_DECAL | 0x10000 | 65536 | $decal |
MATERIAL_VAR_ENVMAPSPHERE | 0x20000 | 131072 | $envmapsphere |
MATERIAL_VAR_NOALPHAMOD | 0x40000 | 262144 | $noalphamod |
MATERIAL_VAR_ENVMAPCAMERASPACE | 0x80000 | 524288 | $envmapcameraspace |
MATERIAL_VAR_BASEALPHAENVMAPMASK | 0x100000 | 1048576 | $basealphaenvmapmask |
MATERIAL_VAR_TRANSLUCENT | 0x200000 | 2097152 | $translucent |
MATERIAL_VAR_NORMALMAPALPHAENVMAPMASK | 0x400000 | 4194304 | $normalmapalphaenvmapmask |
MATERIAL_VAR_NEEDS_SOFTWARE_SKINNING | 0x800000 | 8388608 | $softwareskin |
MATERIAL_VAR_OPAQUETEXTURE | 0x1000000 | 16777216 | $opaquetexture |
MATERIAL_VAR_ENVMAPMODE | 0x2000000 | 33554432 | $envmapmode |
MATERIAL_VAR_SUPPRESS_DECALS | 0x4000000 | 67108864 | $nodecal |
MATERIAL_VAR_HALFLAMBERT | 0x8000000 | 134217728 | $halflambert |
MATERIAL_VAR_WIREFRAME | 0x10000000 | 268435456 | $wireframe |
MATERIAL_VAR_ALLOWALPHATOCOVERAGE | 0x20000000 | 536870912 | $allowalphatocoverage |
MATERIAL_VAR_IGNORE_ALPHA_MODULATION | 0x40000000 | 1073741824 |
$flags2
$flags2 can contain the following flags:
Flag | Dec Value | Comment |
MATERIAL_VAR2_LIGHTING_UNLIT | 0 | |
MATERIAL_VAR2_LIGHTING_VERTEX_LIT | 1 | |
MATERIAL_VAR2_LIGHTING_LIGHTMAP0 | 2 | |
MATERIAL_VAR2_LIGHTING_BUMPED_LIGHTMAP | 4 | |
MATERIAL_VAR2_LIGHTING_MASK | 7 | Sum of 3 above |
MATERIAL_VAR2_DIFFUSE_BUMPMAPPED_MODEL | 8 | |
MATERIAL_VAR2_USES_ENV_CUBEMAP | 16 | |
MATERIAL_VAR2_NEEDS_TANGENT_SPACES | 32 | |
MATERIAL_VAR2_NEEDS_SOFTWARE_LIGHTING | 64 | |
MATERIAL_VAR2_BLEND_WITH_LIGHTMAP_ALPHA | 128 | |
MATERIAL_VAR2_NEEDS_BAKED_LIGHTING_SNAPSHOTS | 256 | |
MATERIAL_VAR2_USE_FLASHLIGHT | 512 | |
MATERIAL_VAR2_USE_FIXED_FUNCTION_BAKED_LIGHTING | 1024 | |
MATERIAL_VAR2_NEEDS_FIXED_FUNCTION_FLASHLIGHT | 2048 | |
MATERIAL_VAR2_USE_EDITOR | 4096 | |
MATERIAL_VAR2_NEEDS_POWER_OF_TWO_FRAME_BUFFER_TEXTURE | 8192 | |
MATERIAL_VAR2_NEEDS_FULL_FRAME_BUFFER_TEXTURE | 16384 | |
MATERIAL_VAR2_IS_SPRITECARD | 32768 | |
MATERIAL_VAR2_USES_VERTEXID | 65536 | |
MATERIAL_VAR2_SUPPORTS_HW_SKINNING | 131072 | |
MATERIAL_VAR2_SUPPORTS_FLASHLIGHT | 262144 |