SurfaceGGX: Difference between revisions
Jump to navigation
Jump to search
Bug:This shader won't receive light properly from env_projectedtextures like the player's flashlight, instead making the material appear pure black. If the player is allowed to use a flashlight, the best case scenario is to only use this shader on props in lit up areas. This shader applied to weapon view models is safe from this however. [todo tested in ?]
Note:
m (Setting bug notice hidetested=1 param on page where the bug might not need tested in param specified) |
No edit summary |
||
Line 4: | Line 4: | ||
== Supported Parameters == | == Supported Parameters == | ||
;{{ | ;{{MatParamDef|[[$basetexture]]||Diffuse texture.}} | ||
;{{ | ;{{MatParamDef|[[$bumpmap]]||Normal mapping. {{bug|hidetested=1|Animated bump maps aren't possible as the shader lacks the <code>$bumpframe</code> parameter.}} }} | ||
;{{ | ;{{MatParamDef|[[$color#Models|$color2]]||Color tinting.}} | ||
;{{ | ;{{MatParamDef|[[$detail]]||Detail texturing.}} | ||
;{{ | ;{{MatParamDef|[[$envmap]]||Specular reflections.}} | ||
;{{ | ;{{MatParamDef|[[$alphatest]]||Alpha testing.}} | ||
=== Metalness Parameters === | === Metalness Parameters === | ||
;{{ | ;{{MatParamDef|$metal|bool|Enables use of the green channel of <code>$phongexponenttexture</code>.}} | ||
;{{ | ;{{MatParamDef|$phongexponenttexture|texture|Despite the name, this is a mask that defines the metalness of the material.}} | ||
=== Specular/Gloss Parameters === | === Specular/Gloss Parameters === | ||
;{{ | ;{{MatParamDef|$pbr|bool|Enables PBR reflections.}} | ||
;{{ | ;{{MatParamDef|$masks|texture|A mask for specular and glossiness. <code>$pbr</code> must be enabled to work.}} | ||
=== Misc. Parameters === | === Misc. Parameters === | ||
;{{ | ;{{MatParamDef|$fuzz|bool|Enables a asperity/fuzz scattering pass on the material.}} | ||
;{{ | ;{{MatParamDef|$fuzzmultiplier|float|Multiplier for the fuzz effect, default is 1.0.}} | ||
;{{ | ;{{MatParamDef|$roughnessmultiplier|float|Multiplier for roughness. {{TODO|More detail, what is roughness?}} }} | ||
;{{ | ;{{MatParamDef|$subsurfacescattering|bool|Enables subsurface scattering on the material. {{TODO|More detail.}} }} | ||
;{{ | ;{{MatParamDef|$disableenvmap|bool|Enabling disables <code>$envmap</code> reflections. The shader will use <code>$envmap</code> by default even if it isn't specified, unless this is enabled.}} | ||
== Configuring the masks == | == Configuring the masks == |
Revision as of 11:49, 23 August 2025
SurfaceGGX
is a material shader available in the following Source engine games:
Day of Infamy ,
Insurgency . It was first introduced in Day of Infamy and back ported to Insurgency. It supports PBR.

Supported Parameters
[[$basetexture|$basetexture]] <void>
Diffuse texture.
Normal mapping.
Bug:Animated bump maps aren't possible as the shader lacks the

$bumpframe
parameter.Color tinting.
Detail texturing.
Specular reflections.
[[$alphatest|$alphatest]] <void>
Alpha testing.
Metalness Parameters
Enables use of the green channel of
$phongexponenttexture
.Despite the name, this is a mask that defines the metalness of the material.
Specular/Gloss Parameters
Enables PBR reflections.
A mask for specular and glossiness.
$pbr
must be enabled to work.Misc. Parameters
Enables a asperity/fuzz scattering pass on the material.
Multiplier for the fuzz effect, default is 1.0.
Multiplier for roughness.
Todo: More detail, what is roughness?
Enables subsurface scattering on the material.
Todo: More detail.
Enabling disables
$envmap
reflections. The shader will use $envmap
by default even if it isn't specified, unless this is enabled.Configuring the masks
$phongexponenttexture
The RGB channels of $phongexponenttexture
is configured as follows:
Channel | Data |
---|---|
Red | Glossiness (roughness inverted) |
Green | Metalness inverted |
Blue | Sub-surface scattering mask |
$metal
must be set to 1
in order to use the green channel.

$fuzz
and $detailnormal
use the inverse of the blue channel.$masks
The RGB and alpha channels of $masks
is configured as follows:
Channel | Data |
---|---|
RGB | Specular tint |
Alpha | Glossiness |
$pbr
must be enabled to make use of $masks
.
See also
- WorldGGX, similar shader used for brushes and displacements.