$alphatest: Difference between revisions
Jump to navigation
Jump to search
SirYodaJedi (talk | contribs) mNo edit summary |
SirYodaJedi (talk | contribs) |
||
Line 16: | Line 16: | ||
==Additional parameters== | ==Additional parameters== | ||
{{MatParam|$alphatestreference|float|Specifies the threshold alpha channel value at which the surface should be transparent instead of opaque. A value of ".3" will create a thicker shape while a value of ".7" will create a thinner shape.<br>Default "0.5". | {{MatParam|$alphatestreference|float|Specifies the threshold alpha channel value at which the surface should be transparent instead of opaque. A value of ".3" will create a thicker shape while a value of ".7" will create a thinner shape.<br>Default "0.5". | ||
: {{ | : {{bug|<code>$alphatestreference</code> can be updated in real time with [[Material_proxies|proxies]], but this only affects projected shadows (like the flashlight). {{Tip|This limitation can be circumvented by using $alphatestreference 1, and modifying the <code>[[$alpha]]</code> value instead. (requires $alpha to be raised above 1, its normal threshold, this may cause sorting issues)}} {{Tip|For [[VertexLitGeneric|VertexLitGeneric]] on models you can use <code>[[$detail]]</code> with <code>$detailblendmode 3</code> and modifying the <code>$detailblendfactor</code> value. Detail texture must be a copy of <code>[[$basetexture]]</code> with a different alpha channel.}} | ||
}} }} | }} }} | ||
Revision as of 14:47, 29 May 2024
$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
Comparison
$translucent |
$alphatest
|
---|---|
Notice how the $alphatest
right circle hardly changes.