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 1is 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 whenmat_reducefillrate 1is 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 $fallbackmaterialfeature 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 $fallbackmaterialfeature 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 $fallbackmaterialfeature 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 $fallbackmaterialfeature 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.