Source Engine Shader Fallbacks: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 4: Line 4:
{{toc-right}}
{{toc-right}}


===LightmappedGeneric===
=== [[LightmappedGeneric]] ===
; <code>LightmappedGeneric_HDR_DX9</code> : DX9 with [[HDR]]
; <code>LightmappedGeneric_HDR_DX9</code> : DX9 with [[HDR]]
; <code>LightmappedGeneric_DX9</code> : DX9
; <code>LightmappedGeneric_DX9</code> : DX9
Line 11: Line 11:
; <code>LightmappedGeneric_DX6</code> : DX6, DX7
; <code>LightmappedGeneric_DX6</code> : DX6, DX7


===VertexLitGeneric===
=== [[VertexLitGeneric]] ===
; <code>VertexLitGeneric_HDR_DX9</code> : DX9 with [[HDR]]
; <code>VertexLitGeneric_HDR_DX9</code> : DX9 with [[HDR]]
; <code>VertexLitGeneric_DX9</code> : DX9
; <code>VertexLitGeneric_DX9</code> : DX9
Line 18: Line 18:
; <code>VertexLitGeneric_DX6</code> : DX6
; <code>VertexLitGeneric_DX6</code> : DX6


===UnlitGeneric===
=== [[UnlitGeneric]] ===
; <code>UnlitGeneric_DX9</code> : DX9
; <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===
=== [[Refract]] ===
; <code>Refract_DX90</code> : DX9
; <code>Refract_DX90</code> : DX9
; <code>Refract_DX80</code> : DX8.0, DX8.1
; <code>Refract_DX80</code> : DX8.0, DX8.1
Line 29: Line 29:
; <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===
=== [[ShatteredGlass]] ===
; <code>ShatteredGlass</code> : DX9
; <code>ShatteredGlass</code> : DX9
; <code>ShatteredGlass_DX8</code> : DX8.0, DX8.1
; <code>ShatteredGlass_DX8</code> : DX8.0, DX8.1
Line 35: Line 35:
; <code>Wireframe</code> : DX6: Shattered glass isn't supported under DX6.
; <code>Wireframe</code> : DX6: Shattered glass isn't supported under DX6.


===Water===
=== [[Water (shader)|Water]] ===
; <code>Water_HDR_DX90</code> : DX9 with [[HDR]]
; <code>Water_HDR_DX90</code> : DX9 with [[HDR]]
; <code>Water_DX90</code> : DX9
; <code>Water_DX90</code> : DX9
Line 43: Line 43:
; <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===
=== [[WorldTwoTextureBlend]] ===
; <code>WorldTwoTextureBlend</code> : DX9
; <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===
=== [[WorldVertexTransition]] ===
; <code>WorldVertexTransition_DX9</code> : DX9
; <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===
=== [[WorldVertexAlpha]] ===
; <code>WorldVertexAlpha</code> : DX9
; <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===
=== [[Cable]] ===
; <code>Cable</code> : DX8.0, DX8.1, DX9
; <code>Cable</code> : DX8.0, DX8.1, DX9
; <code>UnlitGeneric_DX6</code> : DX6, DX7
; <code>UnlitGeneric_DX6</code> : DX6, DX7


===Eyes===
=== [[Eyes]] ===
; <code>Eyes</code> : DX9
; <code>Eyes</code> : DX9
; <code>Eyes_dx8</code>: DX8.0, DX8.1
; <code>Eyes_dx8</code>: DX8.0, DX8.1
; <code>Eyes_dx6</code> : DX6, DX7
; <code>Eyes_dx6</code> : DX6, DX7


===EyeRefract===
=== [[EyeRefract]] ===
; <code>EyeRefract</code> : DX9
; <code>EyeRefract</code> : DX9
; <code>Eyes_dx8</code> : DX8.0, DX8.1
; <code>Eyes_dx8</code> : DX8.0, DX8.1
; <code>Eyes_dx6</code> : DX6, DX7
; <code>Eyes_dx6</code> : DX6, DX7


===Modulate===
=== [[Modulate]] ===
; <code>Modulate</code> : DX8.0, DX8.1, DX9
; <code>Modulate</code> : DX8.0, DX8.1, DX9
; <code>Modulate_DX6</code> : DX6, DX7
; <code>Modulate_DX6</code> : DX6, DX7


===MonitorScreen===
=== [[MonitorScreen]] ===
; <code>MonitorScreen</code> : DX8.0, DX8.1, DX9
; <code>MonitorScreen</code> : DX8.0, DX8.1, DX9
; <code>LightmappedGeneric_DX6</code> : DX6, DX7
; <code>LightmappedGeneric_DX6</code> : DX6, DX7


===Predator===
=== [[Predator]] ===
; <code>Predator_DX80</code> : DX8.0, DX8.1, DX9
; <code>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===
=== [[Sprite (shader)|Sprite]] ===
; <code>Sprite_DX8</code> : DX8.0, DX8.1, DX9
; <code>Sprite_DX8</code> : DX8.0, DX8.1, DX9
; <code>Sprite_DX6</code> : DX6, DX7
; <code>Sprite_DX6</code> : DX6, DX7


===Teeth===
=== [[Teeth]] ===
; <code>Teeth</code> : DX9
; <code>Teeth</code> : DX9
; <code>Teeth_DX8</code> : DX8.0, DX8.1
; <code>Teeth_DX8</code> : DX8.0, DX8.1
; <code>Teeth_DX6</code> : DX6, DX7
; <code>Teeth_DX6</code> : DX6, DX7


===UnlitTwoTexture===
=== [[UnlitTwoTexture]] ===
; <code>UnlitTwoTexture</code> : DX8.0, DX8.1, DX9
; <code>UnlitTwoTexture</code> : DX8.0, DX8.1, DX9
; <code>UnlitTwoTexture_DX6</code> : DX6, DX7
; <code>UnlitTwoTexture_DX6</code> : DX6, DX7


===VortWarp===
=== [[VortWarp]] ===
; <code>VortWarp</code> : DX9
; <code>VortWarp</code> : DX9
; <code>VortWarp_DX8</code> : DX8.0, DX8.1
; <code>VortWarp_DX8</code> : DX8.0, DX8.1
Line 103: Line 103:
; <code>VertexLitGeneric_DX6</code> : DX6
; <code>VertexLitGeneric_DX6</code> : DX6


===WriteZ===
=== [[WriteZ]] ===
; <code>WriteZ</code> : DX8.0, DX8.1, DX9
; <code>WriteZ</code> : DX8.0, DX8.1, DX9
; <code>WriteZ_DX6</code> : DX6, DX7
; <code>WriteZ_DX6</code> : DX6, DX7


===WindowImposter===
=== [[WindowImposter]] ===
; <code>WindowImposter_DX80</code> : DX8.0, DX8.1, DX9
; <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 10:30, 21 May 2024

This is list of the shader fallbacks that shipped with Half-Life 2. See Material optimization and DirectX Versions for more details.

Note.pngNote:These DirectX shader fallbacks have been removed and replaced by the shader and effect detail systems since Left 4 Dead Left 4 Dead . Furthermore, Source 2013 Source 2013 also no longer support anything below DirectX 8, so it would be unnecessary to create shader fallbacks below DX8.

LightmappedGeneric

LightmappedGeneric_HDR_DX9
DX9 with HDR
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 (usually by dxsupport.cfg). Note that this fallback doesn't actually cause the shader code to do anything different, it's only there to allow a material to specify different parameters.
LightmappedGeneric_DX6
DX6, DX7

VertexLitGeneric

VertexLitGeneric_HDR_DX9
DX9 with HDR
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_HDR_DX90
DX9 with HDR
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
DX9
Eyes_dx8
DX8.0, DX8.1
Eyes_dx6
DX6, DX7

EyeRefract

EyeRefract
DX9
Eyes_dx8
DX8.0, DX8.1
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

Teeth

Teeth
DX9
Teeth_DX8
DX8.0, DX8.1
Teeth_DX6
DX6, DX7

UnlitTwoTexture

UnlitTwoTexture
DX8.0, DX8.1, DX9
UnlitTwoTexture_DX6
DX6, DX7

VortWarp

VortWarp
DX9
VortWarp_DX8
DX8.0, DX8.1
VortWarp_DX7
DX7
VertexLitGeneric_DX6
DX6

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