Pyrovision
La Pyrovisión es un efecto aplicado al juego Team Fortress 2. Permite al jugador entrar en el mundo imaginario del corto de animación «Conoce al Pyro».
Usa una lista de reemplazamiento de material y añade sombras personalizadas.
Reemplazamiento de material
Cuando se carga un material, intenta cargar el archivo replacements.vmt del directorio. Si no lo encuentra en ese directorio, intentará encontrar otro en el directorio de materiales. Tanto el material original como el reemplazado están cargados por completo, por lo que lo único que hay que tener en cuenta es cuántas nuevas texturas se introducen.
El archivo replacements.vmt está dividido en dos secciones: patrones y plantillas. Los patrones son una parte de nombres coincidentes. Si coincide algo, la plantilla especifica el punto por el que alternar un material.
Patrones
Los patrones representan una secuencia de nobmres coincidentes. El sistema reemplaza una lista de nombres escaneados cuando estos coinciden. Por ejemplo:
patterns
{
concretewall001d // matches concretewall001d*
{
template "peach02"
}
concretewall012d // matches concretewall012d*
{
template "pink01"
}
concretewall // matches concretewall* ( except if matched by what is above )
{
template "blue01"
}
}
Los materiales llamados «concretewall001d» o «concretewall001dnew» se mapearán a «peach02», «concretewall012d» a «pink01» y lo que empiece por «concretewall» a «blue01».
Plantillas
Las plantillas especifican la definición de lo que se reemplaza por el material. Esto permite tener una plantilla con varias fuentes de sombra, como VertexLitGeneric y LightmappedGeneric.
Los parámetros especificados pueden ser tus valores personalizados. SI especificas un valor que empiece con el símbolo del dólar, se intentará usar eso como fuente. Si especificas «$copyall» con cualquier valor, se copiará todo el material.
templates
{
peach02 // template name
{
"LightmappedGeneric" // source shader type for LightmappedGeneric
{
pyro_vision // new replaced shader type and material definition
{
$basetexture $basetexture
$vertexcolor $vertexcolor
$EFFECT 1
$COLORBAR "rj/colorbar_peach02"
$DIFFUSE_WHITE 0.5
$GRAY_POWER 0.8
$GRAY_STEP "[ 0.0 1.0 ]"
$LIGHTMAP_GRADIENTS 255
}
}
"VertexLitGeneric" // source shader type for VertexLitGeneric
{
pyro_vision
{
$EFFECT 1
$VERTEX_LIT 1
$basetexture "pyroconcretewall"
$vertexcolor $vertexcolor
$EFFECT 1
$COLORBAR "rj/colorbar_patch02"
$DIFFUSE_WHITE 0.5
$DIFFUSE_BASE 0.1
$GRAY_POWER 0.4
$GRAY_STEP "[ 0.0 1.0 ]"
$LIGHTMAP_GRADIENTS 255
}
}
}
}
Véase también
Dreams of Chronic and Sustained Cruelty, un publicación en el blog sobre como se desarrolló la Pyrovisión.