Implicit Shaders

From Mod Wiki
Revision as of 17:13, 11 August 2008 by 192.168.0.151 (talk)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Enemy Territory shader language has a set of new directives for simplifying shader scripts: implicit shaders.

Implicit shaders do not have explicit shader stages but rather use pre-programmed settings that work with a variety of lighting conditions (vertex lit, diffuse lit, and lightmapped) to give the shader the best possible representation when it is instantiated in the game.

There are three variants: implicitMap, implicitMask, and implicitBlend. They take the form of a single line with either a path to a texture, or a single '-' character.

implicitMap draws an opaque, single-sided texture
implicitMask draws a masked (alphaFunc GE128), two-sided texture
implicitBlend draws a translucent (blendFunc blend), two-sided texture

For example:

textures/wood/plank
{
    surfaceparm woodsteps
    implicitMap -
} 

This shader will use the default standard mapping, using 'textures/wood/plank.tga' as the texture (shader name tga extension). The only difference internally between it and a defaulted texture shader is the woodsteps. Internally, if the shader is used on a lightmapped surface, it will use a lightmap. If used on a vertex lit surface, it will be vertex lit.

textures/wood/plank_nonsolid
{
    qer_editorimage textures/wood/plank.tga
    surfaceparm nonsolid
    implicitMap textures/wood/plank.tga
}

This texture differs from the previous one in that it explicitly specifies a texture to use.