From Valve Developer Community
Revision as of 05:26, 4 March 2012 by Breakin' Benny (talk | contribs) (Wait a moment, they look shaded in Gmod on DX8 graphics cards! This means $halflambert + $lightwarptexture is fine!)
Jump to: navigation, search
The technique was first used in Day of Defeat's snow maps, such as Kalt.
It is the cornerstone of TF2's illustrative character rendering.
Posterised colour can be achieved, but lighting must be tightly controlled.

$lightwarptexture is a material parameter that tints texels depending on their brightness. It can be thought of as localised color correction. It requires at least DirectX 9.

Note.png Note: $lightwarptexture can be used together with $halflambert, as the $halflambert will be used in case of DirectX 8.1 or lower.)

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. 50% gray means no tint.


This is the lightwarp texture used in the DOD Source screen to the right. It is designed to add a subtle bluish tint to darker snow, without affecting brighter regions.
This is applied to all TF2 characters, not just Pyro. It creates the high-contrast shadows with red-tinged terminators typical of the illustrative art the game apes.
Custom texture
This custom warp texture creates a posterised "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.

Other possible uses of $lightwarptexture include toon shading, contrast enhancement and highlight softening.