SurfaceGGX: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
No edit summary
 
Line 1: Line 1:
{{This is a|pixel shader|name=WorldGGX|game=Day of Infamy|game1=Insurgency}} It was first introduced in Day of Infamy and back ported to Insurgency.  It supports [[Physically Based Rendering|PBR]].
{{LanguageBar}}
 
{{This is a|pixel shader|name=SurfaceGGX|game=Day of Infamy|game1=Insurgency}} It was first introduced in Day of Infamy and back ported to Insurgency.  It supports [[Physically Based Rendering|PBR]].


{{Bug|This shader won't receive light properly from {{ent|env_projectedtexture}}s 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.}}
{{Bug|This shader won't receive light properly from {{ent|env_projectedtexture}}s 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.}}

Latest revision as of 00:25, 25 September 2025

English (en)Translate (Translate)

SurfaceGGX is a Pixel shader available in Day of Infamy Day of Infamy and 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.  [todo tested in ?]

Supported Parameters

Diffuse texture.
$bumpmap <void>
Normal mapping.
Icon-Bug.pngBug:Animated bump maps aren't possible as the shader lacks the $bumpframe parameter.
$color <void>
Color tinting.
$detail <void>
Detail texturing.
$envmap <void>
Specular reflections.
$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.

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.