SurfaceGGX
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:
SurfaceGGX is a Pixel shader available in
Day of Infamy and
Insurgency. It was first introduced in Day of Infamy and back ported to Insurgency. It supports PBR.
Supported Parameters
- $basetexture <texture>
- Diffuse texture.
- $bumpmap <void>
- Normal mapping.
Bug:Animated bump maps aren't possible as the shader lacks the $bumpframeparameter.
- $color <void>
- Color tinting.
- $detail <void>
- Detail texturing.
- $envmap <void>
- Specular reflections.
- $alphatest <void>
- Alpha testing.
Metalness Parameters
- $phongexponenttexture <texture>
- Despite the name, this is a mask that defines the metalness of the material.
Specular/Gloss Parameters
Misc. Parameters
- $fuzzmultiplier <float>
- Multiplier for the fuzz effect, default is 1.0.
- $roughnessmultiplier <float>
- Multiplier for roughness. Todo: More detail, what is roughness?
- $subsurfacescattering <boolean>
- Enables subsurface scattering on the material. Todo: More detail.
- $disableenvmap <boolean>
- Enabling disables
$envmapreflections. The shader will use$envmapby 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.