SurfaceGGX

From Valve Developer Community
Jump to: navigation, search

SurfaceGGX is a material shader available in the following Source engine games: Day of Infamy Day of Infamy , Insurgency Insurgency . It was first introduced in Day of Infamy and back ported to Insurgency. It supports PBR.

Icon-Bug.pngBug: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.

Supported Parameters

Diffuse texture.
[[$bumpmap|$bumpmap]] <void>
Normal mapping.
Icon-Bug.pngBug:Animated bump maps aren't possible as the shader lacks the $bumpframe parameter.
[[$color2|$color2]] <void>
Color tinting.
[[$detail|$detail]] <void>
Detail texturing.
[[$envmap|$envmap]] <void>
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.
Blank image.pngTodo: More detail, what is roughness?
Enables subsurface scattering on the material.
Blank image.pngTodo: 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.

Note.pngNote:$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.