$alphatest
$alphatest
is a material shader parameter avaliable in all Source games. It specifies a mask to use to determine binary opacity. White represents fully opaque, while black represents fully transparent. Any values in-between are rounded to either 0 or 1. This effect is similar to $translucent
, except that it can not be semi-opaque (without banding), is much faster to render, and the engine can always sort it properly when layered (instead of only on non-detail worldspawn).
Syntax
VMT example
Additional parameters
Default "0.5".
- Note:
$alphatestreference
cannot be updated in real time with proxies.Tip:This limitation can be circumvented by using $alphatestreference 1, and modifying the$alpha
value instead. (requires $alpha to be raised above 1, its normal threshold, this may cause sorting issues)Tip:For VertexLitGeneric on models you can use$detail
with$detailblendmode 3
and modifying the$detailblendfactor
value. Detail texture must be a copy of$basetexture
with a different alpha channel.
This parameter is incompatible with
$alphatestreference
.
The granularity of the steps is dependent on chosen amount of MSAA; 2x MSAA will have fewer translucent steps than 8x MSAA.
The levels should roughly be arranged as such:
Linear : fully transparent - 0.06 - 0.18 - 0.31 - 0.43 - 0.56 - 0.68 - 0.81 - 0.93 - fully opaque
RGB : fully transparent - 15 - 46 - 80 - 110 - 143 - 174 - 207 - 238 - fully opaque
( 0-255 values are rounded to the next highest. Formula used is LinearValue * 255)
Comparison
Notice how the $alphatest
right circle hardly changes.