This article's documentation is for anything that uses the Source engine. Click here for more information.

$additive: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
{{LanguageBar}}
{{LanguageBar}}__NOTOC__
[[File:additive_brush.jpg|thumb|right|A world [[brush]] with additive material applied.]]
[[File:additive_brush.jpg|thumb|right|A world [[brush]] with additive material applied.]]
[[File:additive_model.jpg|thumb|right|A model with additive material. Note that, when used as a [[prop_static]], [[VRAD]] still creates a shadow for it, not accounting for $additive; see [[RAD_file#Source_1|noshadow RAD file command]].
[[File:additive_model.jpg|thumb|right|A model with additive material. Note that, when used as a [[prop_static]], [[VRAD]] still creates a shadow for it, not accounting for $additive; see [[RAD_file#Source_1|noshadow RAD file command]].]]
{{this is a|shader parameter|name=$additive}}{{toc-right}}
{{this is a|shader parameter|name=$additive}}{{toc-right}}
It specifies that the material should be rendered additively; that is, its colour values will be added to underlying pixels. This means, among other things, that the material will always brighten the world behind it. This is useful for effects like volumetric dust, light sprites, etc.
It specifies that the material should be rendered additively; that is, its colour values will be added to underlying pixels. This means, among other things, that the material will always brighten the world behind it. This is useful for effects like volumetric dust, light sprites, etc.

Revision as of 08:28, 20 January 2025

English (en)Translate (Translate)
A world brush with additive material applied.
A model with additive material. Note that, when used as a prop_static, VRAD still creates a shadow for it, not accounting for $additive; see noshadow RAD file command.

$additive is a material shader parameter available in all Source Source games.

It specifies that the material should be rendered additively; that is, its colour values will be added to underlying pixels. This means, among other things, that the material will always brighten the world behind it. This is useful for effects like volumetric dust, light sprites, etc.

Note.pngNote:Additive blending is a form of transparency, and solids with $additive materials on them cannot be used to seal the map.

VMT Syntax Example

$additive <bool>
LightmappedGeneric
{
	$basetexture glass\window001a
	$additive 1
}

The amount of brightening depends on the brightness of the $basetexture. A fully black texture will become invisible, however, other texture effects (such as $detail, $emissiveblend, $envmap) can still be drawn (not implicitly additively).

This does work together with $color and $color2, allowing to control the strength of the additive blending, and change it with Proxies.

$additive is supported by most shaders, and does not require the texture to have an alpha channel. It also doesn't share the numerous caveats of $translucent and $alphatest, such as being mutually exclusive with $selfillum, or other shader parameters that make use of the alpha channel, for that matter.

See also