Pyro vision (shader)

From Valve Developer Community
Jump to: navigation, search

The pyro_vision shader is used in Pyro Vision in Team Fortress 2 Team Fortress 2. It is used to replace the normal textures of a map with a simulation similar to the fantasy land shown in the animated short "Meet the Pyro".

pyro_vision computes the grayscale value of the diffuse color of the original texture and maps it using a special one dimensional texture. It can also project an overlay texture, usually stripes, uniformly in world space.

The Pyro vision shader has 4 effect modes controlled by $EFFECT

Value Effect
0 An R&D stage which is not finished.
1 Handles most of the world and model rendering in pyro land.
2 Depth of Field blending.
3 Pyro vignette drawing.

Standard Fields found in other shaders:

Shader Default Value Description
$BASETEXTURE "" Your diffuse texture.
$BASETEXTURE2 "" Second diffuse texture - For two way blends.
$BLENDMODULATETEXTURE "" Optional modulate texture - For two way blends.
$BLENDMASKTRANSFORM "center .5 .5 scale 1 1 rotate 0 translate 0 0" The transform parameters for blending.

General Fields:

Shader Default Value Description
$EFFECT 1 Used to specify the effect type.
$VERTEX_LIT 0 0 if light-map based, 1 if vertex-lit based.

Effect #1 Fields

Shader Default Value Effect.
$DIFFUSE_BASE 0.0 Value from 0.0 to 1.0 to blend the diffuse towards solid white.
$DIFFUSE_WHITE 0.0 Value from 0.0 to 1.0 to blend the light-map towards solid white.
$GRAY_POWER 1.0 Raises the gray scale result to this value.
$GRAY_STEP "[ 0.0 1.0 ]" Performs a smooth step between the two values supplied. Think of this as the min/max sliders on a histogram chart.
$LIGHTMAP_GRADIENTS 255.0 Downscale the result into this many categories. Value is clamped between 1.0 and 255.0.
Tip.png Tip: May provide some cartooning effects if you use low values.
$COLORBAR "" Specifies a 1D Texture. The resultant gray scale is used as a texture coordinate into this image to get the final color. We generally used the image as a color gradient, but try different patterns or smoothness of gradients for different results.
$SELFILLUMTINT "[ 1.0 1.0 1.0 ]" If self illumination is specified, this is the tint color for the self illumination.

Optional Stripes

Shader Default Value Effect
$STRIPETEXTURE "" The texture used to specify the stripe or any other pattern. It uses standard alpha translucency to blend this texture.
$STRIPE_SCALE "[ 0.002 0.002 0.2 ]" Specifies the x y z world scaling to compute the seamless texture coordinate of the stripe texture.
$STRIPE_COLOR "[ 1.0 1.0 1.0 ]" The color modulated against the strip texture’s RGB. If you make your strip texture as gray scale, then you can have greater color control by using this field, as well as only needing one texture to create many colors.
$STRIPE_LM_SCALE 0.0 Interpolates between the lighting intensity of the pixel to full bright based upon this value.