$alphatest
$alphatest is a material shader parameter available 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, unless $allowalphatocoverage is also used. 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
$alphatestreference in real time with proxies only affects projected shadows (like the flashlight). $alpha value instead. (requires $alpha to be raised above 1, its normal threshold, this may cause sorting issues)$detail with $detailblendmode 3 and modify the $detailblendfactor value. Detail texture must be a copy of $basetexture with a different alpha channel. |
While it may not immediately appear to be the case,
$alphatestreferenceis still used when this command is used, for controlling projected shadow masking, for if the client has MSAA disabled, and in Hammer (where $allowalphatocoverage doesn't work).
|
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: Todo: Make a table for this. One that considers other MSAA Levels. There are always 1 fewer translucency steps than the number of MSAA samples (or one additional, if including fully transparent and fully opaque). |
Comparison
$translucent |
$alphatest
|
|---|---|
Notice how the right circle, which has a sharp alpha channel, hardly changes.