$alphatest: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (Added a 'to do'.)
(added the requested in a todo images.)
Line 1: Line 1:
The <code>[[$alphatest]]</code> command specifies that the material uses a mask 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 it can not be semi-opaque and the engine can sort it properly when layered. {{todo|Provide pictures to show the difference.}}
The <code>[[$alphatest]]</code> command specifies that the material uses a mask 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 it can not be semi-opaque and the engine can sort it properly when layered.
 
{{note|Much faster to draw.}}




Line 10: Line 12:
  [[$basetexture]] glass\window001a
  [[$basetexture]] glass\window001a
  '''$alphatest 1'''
  '''$alphatest 1'''
        '''$alphatestreference .5'''
         '''$allowalphatocoverage 1'''
         '''$allowalphatocoverage 1'''
        '''$alphatestreference .5'''
  }
  }


Line 21: Line 23:
; <code>$allowalphatocoverage <bool></code>
; <code>$allowalphatocoverage <bool></code>
: Creates transparent steps based on alpha values. Can be used for softer edges. This parameter is incompatible with <code>$alphatestreference</code>
: Creates transparent steps based on alpha values. Can be used for softer edges. This parameter is incompatible with <code>$alphatestreference</code>
==Comparison==
{|class=wikitable
! $translucent||$alphatest
|-
| [[File:Alphatest_preview_original.png|thumb|512px|Original image, rendered with $translucent]] || [[File:Alphatest_preview.gif|thumb|512px|Animated preview of the same image, but with $alphatest. The first image shows the effect of $allowalphatocoverage 1. The rest show alphatest with $alphatestreference ranging from 0.1 to 0.9]]
|}
Notice how the right circle hardly changes.
{{bug|$alphatestreference cannot be updated in real time from [[Material_proxies|Proxies]]}}


== See also ==
== See also ==

Revision as of 08:01, 6 January 2019

The $alphatest command specifies that the material uses a mask 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 it can not be semi-opaque and the engine can sort it properly when layered.

Note.pngNote:Much faster to draw.


VMT syntax example

$alphatest <bool>
LightmappedGeneric
{
	$basetexture glass\window001a
	$alphatest 1
       $alphatestreference .5
       $allowalphatocoverage 1
}

Additional parameters

$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.
$allowalphatocoverage <bool>
Creates transparent steps based on alpha values. Can be used for softer edges. This parameter is incompatible with $alphatestreference


Comparison

$translucent $alphatest
Original image, rendered with $translucent
Animated preview of the same image, but with $alphatest. The first image shows the effect of $allowalphatocoverage 1. The rest show alphatest with $alphatestreference ranging from 0.1 to 0.9

Notice how the right circle hardly changes.

Icon-Bug.pngBug:$alphatestreference cannot be updated in real time from Proxies  [todo tested in ?]

See also