$alphatest: Difference between revisions
Jump to navigation
Jump to search
ThunderKeil (talk | contribs) (added workaround for updating $alphatestreference in real time) |
ThunderKeil (talk | contribs) (Small append to previously added information) |
||
Line 17: | Line 17: | ||
{{MatParam|$alphatestreference|float|Specifies the minimum color value of the alpha channel in which the effect is rounded to 255. A value of ".3" will create a thicker shape while a value of ".7" will create a thinner shape. | {{MatParam|$alphatestreference|float|Specifies the minimum color value of the alpha channel in which the effect is rounded to 255. A value of ".3" will create a thicker shape while a value of ".7" will create a thinner shape. | ||
: {{bug|<code>$alphatestreference</code> cannot be updated in real time with [[Material_proxies|proxies]]. | : {{bug|<code>$alphatestreference</code> cannot be updated in real time with [[Material_proxies|proxies]].}} | ||
: {{Tip|This limitation can be circumvented by using $alphatestreference 1, and modifying the <code>[[$alpha]]</code> value instead.}} | : {{Tip|This limitation can be circumvented by using $alphatestreference 1, and modifying the <code>[[$alpha]]</code> value instead. (requires $alpha to be raised above its normal threshold, extreme values may cause sorting issues)}}}} | ||
{{MatParam|$allowalphatocoverage|bool|Creates transparent steps based on alpha values. Can be used for softer edges. This parameter is incompatible with <code>$alphatestreference</code>. | {{MatParam|$allowalphatocoverage|bool|Creates transparent steps based on alpha values. Can be used for softer edges. This parameter is incompatible with <code>$alphatestreference</code>. | ||
: {{note|MSAA must be enabled in order for this to have effect.}}}} | : {{note|MSAA must be enabled in order for this to have effect.}}}} |
Revision as of 07:01, 13 October 2019
Template:Shaderparam 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, is much faster to render, and the engine can sort it properly when layered.
VMT syntax example
$alphatest <bool>
LightmappedGeneric { $basetexture glass\window001a $alphatest 1 $alphatestreference .5 $allowalphatocoverage 1 }
Additional parameters
$alphatestreference
$allowalphatocoverage
Comparison with $translucent
$translucent | $alphatest |
---|---|
Notice how the right circle hardly changes.
See also
$alpha
, for texture-wide translucency$distancealpha
, for vector-like alpha edges$translucent