$distancealpha
$distancealpha es una técnica de filtrado sencilla para imágenes de patrones poligonales. Da ventaja en métodos de filtrado de texturas en hardware 3D, definiendo una serie de canales alfa por encima, por debajo y entre medias de los efectos aplicados. Esta función se añadió al motor Source con el lanzamiento Source 2007. Es ideal para elementos de interfaz, vegetación, vallas de cadenas y otros elementos.
- Ventajas
- Bordes de vectores en imágenes de patrones poligonales, incluso con aumentos extremos.
- Mayor adaptación a gran distancia.
- Desventajas
- se ve extremadamente pixelado desde ciertos ángulos en algunas situaciones.
Para (mucho) más detalle, véase el papel SIGGRAPH.
Creación de texturas
Las texturas alfa en la distancia se crean en resoluciones muy altas. Valve usa imágenes en 4096x4096, pero SDK no es capaz de ejecutar VTEX si se superan los 2048x2048, provocando un cuelgue.
La imagen debe ser completamente normal, excepto si el canal alfa puede evitar los gradientes.
Para compilar las texturas, es necesario usar VTEX ; herramientas de terceros no soportan la distancia alfa aún.
Tu archivo .txt debe ser similar a este aspecto:
// Enable distance alpha compiling alphatodistance 1 // Scale the image down to 1/nth its original size. '8' takes 2048 down to 256 reduce 8 // Size of 'spread' zone between alpha values of 0 and 1. This is the area the shader works with. // Bear in mind that higher numbers exponentially increase texture compile time! distancespread 4 // To prevent artefacting: nomip 1 nolod 1 nocompress 1
Creación de material (class_spy_outline)
Este material se mustra en Team Fortress 2 cuando un Spy se disfraza o se quita el disfraz. Como debe ocupar toda la pantalla, sin importar su resolución, esta textura (vista a la izquierda) es solo de 256 píxeles.
UnlitGeneric { $basetexture hud\class_spy_outline $translucent 1 $distancealpha 1 $softedges 1 $edgesoftnessstart .5 $edgesoftnessend .46 $scaleedgesoftnessbasedonscreenres 1 $glow 1 $glowcolor "[0 0 0]" $glowalpha .4 $glowstart .1 $glowend .5 //$glowx .98 //$glowy .98 $vertexcolor 1 $vertexalpha 1 $no_fullbright 1 $ignorez 1 }
Los comandos más interesantes aquí son start y end. Sus valores determinan el rango de los valores alfa en los que cada efecto se aplica.
$softedges
se aplica del 50 % al 46 % de opacidad$glow
se aplica del 10 % al 50 % de opacidad
Con $glowcolor
para el negro y $glowalpha
al 40 %, el efecto brillo se verá como una sombra.
Efectos
$softedges
Desvanece todos los canales de color de $edgesoftnessstart
(opaco) a $edgesoftnessend
(transparente).
$scaleedgesoftnessbasedonscreenres <bool >
- Pendiente: Describir
$glow
Crea un gradiente monótono de $glowstart
(opaco) a $glowend
(transparente).
$glowcolor <RGB>
- Color del brillo.
$glowalpha <normal >
- Opacidad del brillo.
$glowx <normal>
$glowy <normal>
- Contraste del brillo; bueno para efectos de sombras.
$glowstart <normal>
$glowend <normal>
- Canal alfa.
$glowstart
tiene intensidad total,$glowend
es cuando se hace invisible.
$outline
Igual que en el brillo, pero con la opción añadida de definir la aspereza de los bordes.
$outlinecolor <RGB>
- Color del contorno.
$outlinealpha <normal >
- Opacidad del contorno.
$outlinestart0 <normal>
$outlinestart1 <normal>
- Define el borde exterior del contorno. Cualquier hueco entre dos valores será un gradiente.
- 0 es de exterior a exterior, mientras que 1 es de interior a exterior.
$outlineend0 <normal>
$outlineend1 <normal>
- Define el borde interior del contorno.
- 0 es de exterior a interior, mientras que 1 es de interior a interior. Nota:¡Ambos valores deben diferir en al menos 0,02 o desaparecerá el contorno!
$scaleoutlinesoftnessbasedonscreenres 1
- Escala la suavidad del contorno según la resolución de pantalla del usuario.