$lightwarptexture
 
   Day of Defeat: Source's snow maps, such as Kalt.
 Day of Defeat: Source's snow maps, such as Kalt.$lightwarptexture (DX9+ SM3) is a   material shader parameter for the VertexLitGeneric shader available in all  Source games since
 Source games since  Source 2006. It tints texels depending on their brightness. It can be thought of as localized color correction.
 Source 2006. It tints texels depending on their brightness. It can be thought of as localized color correction.
 Note:Also available for LightmappedGeneric, WorldVertexTransition, EyeRefract.
Note:Also available for LightmappedGeneric, WorldVertexTransition, EyeRefract.Caveats
 Important:
Important:$lightwarptexture uses linear color spaces. Important:Make sure the texture is clamped in the VTF otherwise it will render incorrectly. Use Clamp S and Clamp T image flags for that.
Important:Make sure the texture is clamped in the VTF otherwise it will render incorrectly. Use Clamp S and Clamp T image flags for that. Important:
Important:$lightwarptexture on VertexLitGeneric requires a $bumpmap. If not specified, a default one will be used instead! It will be as if a $bumpmap is in the VMT!
 Warning: This means that all parameters that don't work with $bumpmap also won't work with
Warning: This means that all parameters that don't work with $bumpmap also won't work with $lightwarptexture.
- $detailblendmode 5-9 won't work - 5 & 6 will work when $phong is used.
- $envmapmask won't work, except in  Mapbase. Mapbase.
- $selfillum_envmapmask_alpha doesn't work in any branch.
- Per-vertex lighting won't work prior to  CS:GO engine branch CS:GO engine branch
 Note:
Note:$lightwarptexture does not seem to exist at all for LightmappedGeneric in  CS:GO engine branch.
 CS:GO engine branch. Bug:Does not work when using $detail or $bumpmap2 on both LightmappedGeneric and WorldVertexTransition.  [todo tested in ?]
Bug:Does not work when using $detail or $bumpmap2 on both LightmappedGeneric and WorldVertexTransition.  [todo tested in ?] Bug:Does not work when using $selfillumfresnel without also using $phong.  [todo tested in ?]
Bug:Does not work when using $selfillumfresnel without also using $phong.  [todo tested in ?] Bug:Does not work when using $seamless_scale.  [todo tested in ?]
Bug:Does not work when using $seamless_scale.  [todo tested in ?]Lightwarp textures
A lightwarp texture is a one-dimensional strip of pixels. Dark texels will be tinted with the colour on the left-hand side, and bright texels with the colour on the right.
Lightwarp works slightly differently on lightmapped brushes and displacements compared to vertex-lit models. A completely 50% grey $lightwarptexture on a brush or displacement will appear as if lightwarp were not present, whereas the same $lightwarptexture on a model with no phong would result in the model being lit uniformly at 100% brightness (not overbright).
A lightwarp texture should usually have a horizontal resolution of at least 256px (any higher will have negligble benefits). The vertical resolution can be whatever; 1px is optimal to avoid wasting file size, but higher resolutions may help with being able to see the texture thumbnail in a file browser.
VTF parameters
A lightwarp texture should use uncompressed BGR888 format to avoid undesired color banding on lighting gradients[1], and should be UV clamped.
If using  VTEX, use these compile parameters:
 VTEX, use these compile parameters:
nocompress 1 // disable texture compression, to prevent undesired color banding nomip 1 // disable mipmaps, which are unnecessary in this instance nolod 1 // always use the full resolution version of this texture (due to being low-resolution to begin with) clamps 1 // prevent tints at lighting extremes from blending together clampt 1 // optional? stripalphachannel 1 // remove unnecessary alpha channel, if present
If the transitions should be sharp, additionally enable point sampling (pointsample 1).
Examples
 - ground/snow_warp.vtf( ) )
 
- This is the lightwarp texture used in the  Day of Defeat: Source screen above. It is designed to add a subtle bluish tint to darker snow without affecting brighter regions. Day of Defeat: Source screen above. It is designed to add a subtle bluish tint to darker snow without affecting brighter regions.
 - models/player/pyro/pyro_lightwarp.vtf( ) )
 
- This is applied to all  Team Fortress 2 characters, not just the Pyro. It creates the high-contrast shadows with red-tinged terminators typical of the illustrative art the game apes. Team Fortress 2 characters, not just the Pyro. It creates the high-contrast shadows with red-tinged terminators typical of the illustrative art the game apes.
- Posterized (custom)
 
- This custom warp texture creates a posterized "line art" style. Enabling lightwarp alone isn't enough however: ambient lighting must be at 0 to make unlit areas black, and world lighting must become viewer-dependent to ensure that shadows are always cast.
- Cel Shading (custom)
 
- Cel shading can make objects look more cartoony by replacing the smooth lighting gradient with sharp steps.
- Fake $phongdisablehalflambert (custom)
 
- Simulates $phongdisablehalflambertin games without that command.
Other possible uses of $lightwarptexture include contrast enhancement, tweaking vertex lighting shadow transitions, highlight softening, and more.





























