Stub
This article or section is a stub. You can help by expanding it.
Screenspace_General
is a Vertex shader available in all
Source games since
Source 2007.[confirm] It is most commonly used to draw generic screenspace effects.
Unlike other shaders using screenspaceeffect as its vertex shader, screenspace_general allows developers to easily access and modify its pixel shader, 4 texture samplers and 4 shader register constants.[Clarify]
This can be useful for quickly iterating and testing screen effects, without having to reload all shaders, or recompile stdshaders to define/modify parameters.
Todo: Document available constants and inputs
Notable usage
dev/halo_add_to_screen
Used by the TF2 Glow Effect (2013 SDK) to help create an outline around models using stencils.
It uses the haloaddoutline_ps20 pixel shader to apply cheap blur. $C0_X controls the glow fade value (restricted to 1.0f in code.)
Todo: Test if changing $C0_X actually does what it says it is supposed to do.
Parameters
NoteIf you intent to draw your shader on DX8, you'll have to add the following code your material file (inside the "screenspace_general" keyvalue.) "screenspace_general_dx8"
{
"$PIXSHADER" "YOUR_DX8_PIXSHADER_HERE"
}
Name of the vertex shader to use.
(in all games since
)
Custom shader inputs
(in all games since
)(not in
)
(in all games since
)(not in
)
(in all games since
)(not in
)
(in all games since
)(not in
)
(in all games since
)(not in
)
(in all games since
)(not in
)
(in all games since
)(not in
)
(in all games since
)(not in
)
Other parameters
Dictates if vertex color should be used and if they should be transformed from world space. In later games, this is replaced by the usage of
$vertexcolor material flag and
$vertextransform
.
(removed since
)
specify vertex normal (compressed) in material format
(in all games since
)
whether or not to enable alpha blend
(in all games since
)
whether or not to multiply src and dest color
(in all games since
)
whether or not to enable alpha write
(in all games since
)
whether or not to enable depth write
(in all games since
)
Number of components in texture coord0 (default is 2)
(in all games since
)
Number of components in texture coord1
(in all games since
)
Number of components in texture coord2
(in all games since
)
Number of components in texture coord3
(in all games since
)
Number of components in texture coord4
(in all games since
)
Number of components in texture coord5
(in all games since
)
Number of components in texture coord6
(in all games since
)
Number of components in texture coord7
(in all games since
)
Culling control where 0 is nocull, 1 is do cull
(in all games since
)
Enable Depthtest
(in all games since
)
Tools
An SDK to easily create custom pixel shaders for any Source game is available here: ficool2/sdk_screenspace_shaders.
Todo: Is this sdk_screenspace_shaders exclusive?