$alphatest: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
Line 25: | Line 25: | ||
{{MatParam|$allowalphatocoverage|nolink=1|bool|Creates translucent steps based on alpha values. Can be used for softer edges, as well as greatly reducing shimmering when viewed at a distance.<br>While it may not immediately appear to be the case, <code>$alphatestreference</code>is 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). | {{MatParam|$allowalphatocoverage|nolink=1|bool|Creates translucent steps based on alpha values. Can be used for softer edges, as well as greatly reducing shimmering when viewed at a distance.<br>While it may not immediately appear to be the case, <code>$alphatestreference</code>is 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). | ||
{{Expand|title=Notes| | {{Expand|title=Notes| | ||
{{warning|MSAA must be enabled in order for this to have an effect.<br>The granularity of the steps is dependent on chosen amount of MSAA; 2x MSAA will have fewer translucent steps than 8x MSAA. {{note|At 8x MSAA (Tested in {{src13|2}}) there are 7 translucency steps. ( 9 if you include fully Opaque and fully Transparent )<br> | {{warning|[[Anti-aliasing#MSAA|MSAA]] must be enabled in order for this to have an effect.<br>The granularity of the steps is dependent on chosen amount of MSAA; 2x MSAA will have fewer translucent steps than 8x MSAA. {{note|At 8x MSAA (Tested in {{src13|2}}) there are 7 translucency steps. ( 9 if you include fully Opaque and fully Transparent )<br> | ||
The levels should roughly be arranged as such:<br> | The levels should roughly be arranged as such:<br> | ||
<code>Linear : fully transparent - 0.06 - 0.18 - 0.31 - 0.43 - 0.56 - 0.68 - 0.81 - 0.93 - fully opaque</code><br> | <code>Linear : fully transparent - 0.06 - 0.18 - 0.31 - 0.43 - 0.56 - 0.68 - 0.81 - 0.93 - fully opaque</code><br> |
Revision as of 23:45, 14 July 2025
$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
Comparison
$translucent |
$alphatest
|
---|---|
Notice how the right circle, which has a sharp alpha channel, hardly changes.