Es/$distancealpha: Difference between revisions
m (Nesciuse moved page $distancealpha/es to Es/$distancealpha over redirect: Language prefixes) |
m (Setting bug notice hidetested=1 param on page where the bug might not need tested in param specified) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{ | {{LanguageBar|title = $distancealpha}} | ||
{{toc-right}} | {{toc-right}} | ||
<tt> | <tt>{{L|$distancealpha}}</tt> 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 {{L|alpha channel|canales alfa}} por encima, por debajo y entre medias de los efectos aplicados. Esta función se añadió al motor {{source|2}} con el lanzamiento {{src07|4}}. Es ideal para elementos de interfaz, vegetación, vallas de cadenas y otros elementos. | ||
;Ventajas | ;Ventajas | ||
Line 11: | Line 12: | ||
[https://steamcdn-a.akamaihd.net/apps/valve/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf Para (mucho) más detalle, véase el papel SIGGRAPH.] | [https://steamcdn-a.akamaihd.net/apps/valve/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf Para (mucho) más detalle, véase el papel SIGGRAPH.] | ||
{{bug|Los materiales alfa en la distancia no se renderizan correctamente en la vista 3D de Hammer.}} | {{bug|hidetested=1|Los materiales alfa en la distancia no se renderizan correctamente en la vista 3D de Hammer.}} | ||
== Creación de texturas == | == 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 | 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 {{L|Vtex (Source 1)|VTEX}} si se superan los 2048x2048, provocando un cuelgue. | ||
La imagen debe ser completamente normal, excepto si el canal alfa puede evitar los gradientes. | La imagen debe ser completamente normal, excepto si el canal alfa puede evitar los gradientes. | ||
Para compilar las texturas, es necesario usar | Para compilar las texturas, es necesario usar {{L|Vtex (Source 1)|VTEX}}; herramientas de terceros no soportan la distancia alfa aún. | ||
Tu archivo <tt>.txt</tt> debe ser similar a este aspecto: | Tu archivo <tt>.txt</tt> debe ser similar a este aspecto: | ||
Line 43: | Line 44: | ||
Este material se mustra en {{tf2|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. | Este material se mustra en {{tf2|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. | ||
{{L|UnlitGeneric}} | |||
{ | { | ||
{{L|$basetexture}} hud\class_spy_outline | |||
{{L|$translucent}} 1 | |||
'''$distancealpha 1''' | '''$distancealpha 1''' | ||
Line 62: | Line 63: | ||
''//$glowy .98'' | ''//$glowy .98'' | ||
{{L|$vertexcolor}} 1 | |||
{{L|$vertexalpha}} 1 | |||
{{L|$no_fullbright}} 1 | |||
{{L|$ignorez}} 1 | |||
} | } | ||
Line 79: | Line 80: | ||
Desvanece todos los canales de color de <code>$edgesoftnessstart</code> (opaco) a <code>$edgesoftnessend</code> (transparente). | Desvanece todos los canales de color de <code>$edgesoftnessstart</code> (opaco) a <code>$edgesoftnessend</code> (transparente). | ||
;<code>$scaleedgesoftnessbasedonscreenres < | ;<code>$scaleedgesoftnessbasedonscreenres <{{L|bool}}></code> | ||
:{{todo:es|Describir}} | :{{todo:es|Describir}} | ||
Line 87: | Line 88: | ||
; <code>$glowcolor <RGB></code> | ; <code>$glowcolor <RGB></code> | ||
: Color del brillo. | : Color del brillo. | ||
; <code>$glowalpha < | ; <code>$glowalpha <{{L|normal}}></code> | ||
: Opacidad del brillo. | : Opacidad del brillo. | ||
; <code>$glowx <normal></code> | ; <code>$glowx <normal></code> | ||
Line 101: | Line 102: | ||
; <code>$outlinecolor <RGB></code> | ; <code>$outlinecolor <RGB></code> | ||
: Color del contorno. | : Color del contorno. | ||
; <code>$outlinealpha < | ; <code>$outlinealpha <{{L|normal}}></code> | ||
: Opacidad del contorno. | : Opacidad del contorno. | ||
; <code>$outlinestart0 <normal></code> | ; <code>$outlinestart0 <normal></code> | ||
Line 113: | Line 114: | ||
; <code>$scaleoutlinesoftnessbasedonscreenres 1</code> | ; <code>$scaleoutlinesoftnessbasedonscreenres 1</code> | ||
: Escala la suavidad del contorno según la resolución de pantalla del usuario. | : Escala la suavidad del contorno según la resolución de pantalla del usuario. | ||
{{ACategory|Shader parameters|distancealpha}} |
Latest revision as of 07:20, 20 May 2025
$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.