Source Engine Shader Fallbacks: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
m (made table headers into sections for table of contents.) |
||
Line 1: | Line 1: | ||
[[Category:Material System]] | [[Category:Material System]] | ||
==Introduction== | ==Introduction== | ||
The following a list of the shader fallbacks for the materials shipped with Half-Life 2. For a description of how shader fallbacks are used, see the Material choices and rendering performance in [[Controlling Geometry Visibility and Compile Times]]. | The following a list of the shader fallbacks for the materials shipped with Half-Life 2. For a description of how shader fallbacks are used, see the Material choices and rendering performance in [[Controlling Geometry Visibility and Compile Times]]. | ||
Line 6: | Line 5: | ||
==Shader Fallbacks== | ==Shader Fallbacks== | ||
===LightmappedGeneric=== | |||
{|- width="100%" | |||
|- | | width="30%" | <code>LightmappedGeneric_dx9</code> || dx9 | ||
| <code>LightmappedGeneric_dx9</code> || dx9 | |- | ||
|- | |||
| <code>LightmappedGeneric_dx8</code> || dx8.0/dx8.1 | | <code>LightmappedGeneric_dx8</code> || dx8.0/dx8.1 | ||
|- | |- | ||
Line 16: | Line 14: | ||
|- | |- | ||
| <code>LightmappedGeneric_dx6</code> || dx6/dx7 | | <code>LightmappedGeneric_dx6</code> || dx6/dx7 | ||
| | |} | ||
|- | ===VertexLitGeneric=== | ||
| <code>VertexLitGeneric_dx9</code> || dx9 | {|- width="100%" | ||
| width="30%" | <code>VertexLitGeneric_dx9</code> || dx9 | |||
|- | |- | ||
| <code>VertexLitGeneric_dx8</code> || dx8.0/dx8.1 | | <code>VertexLitGeneric_dx8</code> || dx8.0/dx8.1 | ||
Line 26: | Line 25: | ||
|- | |- | ||
| <code>VertexLitGeneric_dx6</code> || dx6 | | <code>VertexLitGeneric_dx6</code> || dx6 | ||
| | |} | ||
|- | ===UnlitGeneric=== | ||
| <code>UnlitGeneric_dx9</code> || dx9 | {|- width="100%" | ||
| width="30%" | <code>UnlitGeneric_dx9</code> || dx9 | |||
|- | |- | ||
| <code>UnlitGeneric_dx8</code> || dx8.0/dx8.1 | | <code>UnlitGeneric_dx8</code> || dx8.0/dx8.1 | ||
|- | |- | ||
| <code>UnlitGeneric_dx6</code> || dx6/dx7 | | <code>UnlitGeneric_dx6</code> || dx6/dx7 | ||
| | |} | ||
|- | ===Refract=== | ||
| <code>Refract_dx90</code> || dx9 | {|- width=%100%" | ||
| width="30%" | <code>Refract_dx90</code> || dx9 | |||
|- | |- | ||
| <code>Refract_dx80</code> || dx8.0/dx8.1 | | <code>Refract_dx80</code> || dx8.0/dx8.1 | ||
Line 44: | Line 45: | ||
|- | |- | ||
| <code>UnlitGeneric_dx6</code> || dx6/dx7: If you neglect to define a fallback shader, unlit generic is used. | | <code>UnlitGeneric_dx6</code> || dx6/dx7: If you neglect to define a fallback shader, unlit generic is used. | ||
| | |} | ||
|- | ===ShatteredGlass=== | ||
| <code>ShatteredGlass</code> || dx9 | {|- width=%100%" | ||
| width="30%" | <code>ShatteredGlass</code> || dx9 | |||
|- | |- | ||
| <code>ShatteredGlass_dx8</code> || dx8.0/dx8.1 | | <code>ShatteredGlass_dx8</code> || dx8.0/dx8.1 | ||
Line 54: | Line 56: | ||
|- | |- | ||
| <code>Wireframe</code> || dx6: Shattered glass isn't supported under dx6. | | <code>Wireframe</code> || dx6: Shattered glass isn't supported under dx6. | ||
| | |} | ||
|- | ===Water=== | ||
| <code>Water_dx90</code> || dx9 | {|- width=%100%" | ||
| width="30%" | <code>Water_dx90</code> || dx9 | |||
|- | |- | ||
| <code>Water_dx81</code> || dx8.1 | | <code>Water_dx81</code> || dx8.1 | ||
Line 66: | Line 69: | ||
|- | |- | ||
| <code>LightmappedGeneric_dx6</code> || dx7/dx6: This is used if you neglect to define a fallback shader. | | <code>LightmappedGeneric_dx6</code> || dx7/dx6: This is used if you neglect to define a fallback shader. | ||
| | |} | ||
|- | ===WorldTwoTextureBlend=== | ||
| <code>WorldTwoTextureBlend</code> || dx9 | {|- width=%100%" | ||
| width="30%" | <code>WorldTwoTextureBlend</code> || dx9 | |||
|- | |- | ||
| <code>WorldTwoTextureBlend_dx8</code> || dx8.0/dx8.1 | | <code>WorldTwoTextureBlend_dx8</code> || dx8.0/dx8.1 | ||
|- | |- | ||
| <code>WorldTwoTextureBlend_dx6</code> || dx6/dx7 | | <code>WorldTwoTextureBlend_dx6</code> || dx6/dx7 | ||
| | |} | ||
|- | ===WorldVertexTransition=== | ||
| <code>WorldVertexTransition_dx9</code> || dx9 | {|- width=%100%" | ||
| width="30%" | <code>WorldVertexTransition_dx9</code> || dx9 | |||
|- | |- | ||
| <code>WorldVertexTransition_dx8</code> || dx8.0/dx8.1 | | <code>WorldVertexTransition_dx8</code> || dx8.0/dx8.1 | ||
|- | |- | ||
| <code>WorldVertexTransition_dx6</code> || dx6/dx7 | | <code>WorldVertexTransition_dx6</code> || dx6/dx7 | ||
| | |} | ||
|- | ===WorldVertexAlpha=== | ||
| <code>WorldVertexAlpha</code> || dx9 | {|- width=%100%" | ||
| width="30%" | <code>WorldVertexAlpha</code> || dx9 | |||
|- | |- | ||
| <code>WorldVertexAlpha_dx8</code> || dx8.0/dx8.1: Note this shader has no fallbacks to dx7 or below. | | <code>WorldVertexAlpha_dx8</code> || dx8.0/dx8.1: Note this shader has no fallbacks to dx7 or below. | ||
| | |} | ||
|- | ===Cable=== | ||
| <code>Cable</code> || dx8.0/dx8.1/dx9 | {|- width=%100%" | ||
| width="30%" | <code>Cable</code> || dx8.0/dx8.1/dx9 | |||
|- | |- | ||
| <code>UnlitGeneric_DX6</code> || dx6/dx7 | | <code>UnlitGeneric_DX6</code> || dx6/dx7 | ||
| | |} | ||
|- | ===Eyes=== | ||
| <code>Eyes</code> || dx8.0/dx8.1/dx9 | {|- width=%100%" | ||
| width="30%" | <code>Eyes</code> || dx8.0/dx8.1/dx9 | |||
|- | |- | ||
| <code>Eyes_dx6</code> || dx6/dx7 | | <code>Eyes_dx6</code> || dx6/dx7 | ||
| | |} | ||
|- | ===Modulate=== | ||
| <code>Modulate</code> || dx8.0/dx8.1/dx9 | {|- width=%100%" | ||
| width="30%" | <code>Modulate</code> || dx8.0/dx8.1/dx9 | |||
|- | |- | ||
| <code>Modulate_dx6</code> || dx6/dx7 | | <code>Modulate_dx6</code> || dx6/dx7 | ||
| | |} | ||
|- | ===MonitorScreen=== | ||
| <code>MonitorScreen</code> || dx8.0/dx8.1/dx9 | {|- width=%100%" | ||
| width="30%" | <code>MonitorScreen</code> || dx8.0/dx8.1/dx9 | |||
|- | |- | ||
| <code>LightmappedGeneric_dx6</code> || dx6/dx7 | | <code>LightmappedGeneric_dx6</code> || dx6/dx7 | ||
| | |} | ||
|- | ===Predator=== | ||
| Predator_dx80</code> || dx8.0/dx8.1/dx9 | {|- width=%100%" | ||
| width="30%" | Predator_dx80</code> || dx8.0/dx8.1/dx9 | |||
|- | |- | ||
| <code>Predator_dx60</code> || dx6/dx7: this fallback shader is only defined to allow you to use the <code>$fallbackmaterial</code> feature to cause the material system to use a different material under dx6 and dx7. | | <code>Predator_dx60</code> || dx6/dx7: this fallback shader is only defined to allow you to use the <code>$fallbackmaterial</code> feature to cause the material system to use a different material under dx6 and dx7. | ||
|- | |- | ||
| <code>UnlitGeneric_dx6</code> || dx6/dx7: This is used if you neglect to define a fallback shader. | | <code>UnlitGeneric_dx6</code> || dx6/dx7: This is used if you neglect to define a fallback shader. | ||
| | |} | ||
|- | ===Sprite=== | ||
| <code>Sprite_dx8</code> || dx8.0/dx8.1/dx9 | {|- width=%100%" | ||
| width="30%" | <code>Sprite_dx8</code> || dx8.0/dx8.1/dx9 | |||
|- | |- | ||
| <code>Sprite_dx6</code> || dx6/dx7 | | <code>Sprite_dx6</code> || dx6/dx7 | ||
| | |} | ||
|- | ===UnlitTwoTexture=== | ||
| <code>UnlitTwoTexture</code> || dx8.0/dx8.1/dx9 | {|- width=%100%" | ||
| width="30%" | <code>UnlitTwoTexture</code> || dx8.0/dx8.1/dx9 | |||
|- | |- | ||
| <code>UnlitTwoTexture_dx6</code> || dx6/dx7 | | <code>UnlitTwoTexture_dx6</code> || dx6/dx7 | ||
| | |} | ||
|- | ===WriteZ=== | ||
| <code>WriteZ</code> || dx8.0/dx8.1/dx9 | {|- width=%100%" | ||
| width="30%" | <code>WriteZ</code> || dx8.0/dx8.1/dx9 | |||
|- | |- | ||
| <code>WriteZ_dx6</code> || dx6/dx7 | | <code>WriteZ_dx6</code> || dx6/dx7 | ||
| | |} | ||
|- | ===WindowImposter=== | ||
| <code>WindowImposter_dx80</code> || dx8.0/dx8.1/dx9 | {|- width=%100%" | ||
| width="30%" | <code>WindowImposter_dx80</code> || dx8.0/dx8.1/dx9 | |||
|- | |- | ||
| <code>WindowImposter_dx60</code> || dx6/dx7: this fallback shader is only defined to allow you to use the <code>$fallbackmaterial</code> feature to cause the material system to use a different material under dx6 and dx7. | | <code>WindowImposter_dx60</code> || dx6/dx7: this fallback shader is only defined to allow you to use the <code>$fallbackmaterial</code> feature to cause the material system to use a different material under dx6 and dx7. |
Revision as of 17:44, 20 July 2005
Introduction
The following a list of the shader fallbacks for the materials shipped with Half-Life 2. For a description of how shader fallbacks are used, see the Material choices and rendering performance in Controlling Geometry Visibility and Compile Times.
Shader Fallbacks
LightmappedGeneric
LightmappedGeneric_dx9 |
dx9 |
LightmappedGeneric_dx8 |
dx8.0/dx8.1 |
LightmappedGeneric_NoBump_DX8 |
dx8.0/dx8.1, but only used when mat_reducefillrate 1 is set. Note that this fallback doesn't actually cause the shader code to do anything different, it's only there to allow a .VMT to specify different shader parameters or a fallback material when mat_reducefillrate 1 is set.
|
LightmappedGeneric_dx6 |
dx6/dx7 |
VertexLitGeneric
VertexLitGeneric_dx9 |
dx9 |
VertexLitGeneric_dx8 |
dx8.0/dx8.1 |
VertexLitGeneric_dx7 |
dx7 |
VertexLitGeneric_dx6 |
dx6 |
UnlitGeneric
UnlitGeneric_dx9 |
dx9 |
UnlitGeneric_dx8 |
dx8.0/dx8.1 |
UnlitGeneric_dx6 |
dx6/dx7 |
Refract
Refract_dx90 |
dx9 |
Refract_dx80 |
dx8.0/dx8.1 |
Refract_dx60 |
dx6/dx7: refraction isn't supported under dx6 and dx7, this fallback shader is only defined to allow you to use the $fallbackmaterial feature to cause the material system to use a different material under dx6 and dx7.
|
UnlitGeneric_dx6 |
dx6/dx7: If you neglect to define a fallback shader, unlit generic is used. |
ShatteredGlass
ShatteredGlass |
dx9 |
ShatteredGlass_dx8 |
dx8.0/dx8.1 |
ShatteredGlass_dx7 |
dx7 |
Wireframe |
dx6: Shattered glass isn't supported under dx6. |
Water
Water_dx90 |
dx9 |
Water_dx81 |
dx8.1 |
Water_dx80 |
dx8.0 |
Water_dx60 |
dx7/dx6: this fallback shader is only defined to allow you to use the $fallbackmaterial feature to cause the material system to use a different material under dx6 and dx7.
|
LightmappedGeneric_dx6 |
dx7/dx6: This is used if you neglect to define a fallback shader. |
WorldTwoTextureBlend
WorldTwoTextureBlend |
dx9 |
WorldTwoTextureBlend_dx8 |
dx8.0/dx8.1 |
WorldTwoTextureBlend_dx6 |
dx6/dx7 |
WorldVertexTransition
WorldVertexTransition_dx9 |
dx9 |
WorldVertexTransition_dx8 |
dx8.0/dx8.1 |
WorldVertexTransition_dx6 |
dx6/dx7 |
WorldVertexAlpha
WorldVertexAlpha |
dx9 |
WorldVertexAlpha_dx8 |
dx8.0/dx8.1: Note this shader has no fallbacks to dx7 or below. |
Cable
Cable |
dx8.0/dx8.1/dx9 |
UnlitGeneric_DX6 |
dx6/dx7 |
Eyes
Eyes |
dx8.0/dx8.1/dx9 |
Eyes_dx6 |
dx6/dx7 |
Modulate
Modulate |
dx8.0/dx8.1/dx9 |
Modulate_dx6 |
dx6/dx7 |
MonitorScreen
MonitorScreen |
dx8.0/dx8.1/dx9 |
LightmappedGeneric_dx6 |
dx6/dx7 |
Predator
Predator_dx80 | dx8.0/dx8.1/dx9 |
Predator_dx60 |
dx6/dx7: this fallback shader is only defined to allow you to use the $fallbackmaterial feature to cause the material system to use a different material under dx6 and dx7.
|
UnlitGeneric_dx6 |
dx6/dx7: This is used if you neglect to define a fallback shader. |
Sprite
Sprite_dx8 |
dx8.0/dx8.1/dx9 |
Sprite_dx6 |
dx6/dx7 |
UnlitTwoTexture
UnlitTwoTexture |
dx8.0/dx8.1/dx9 |
UnlitTwoTexture_dx6 |
dx6/dx7 |
WriteZ
WriteZ |
dx8.0/dx8.1/dx9 |
WriteZ_dx6 |
dx6/dx7 |
WindowImposter
WindowImposter_dx80 |
dx8.0/dx8.1/dx9 |
WindowImposter_dx60 |
dx6/dx7: this fallback shader is only defined to allow you to use the $fallbackmaterial feature to cause the material system to use a different material under dx6 and dx7.
|
UnlitGeneric_dx6 |
dx6/dx7: This is used if you neglect to define a fallback shader |
See Also
- DirectX Versions - includes screenshots visually comparing different DirectX levels.