La información en este artículo es para Source. Haga clic aquí para más información.

Es/$translucent: Difference between revisions

From Valve Developer Community
< Es
Jump to navigation Jump to search
m (Removed all forced spanish links and modified some typos)
No edit summary
 
(3 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{langsp}}{{toc-right}}
{{LanguageBar}}
{{this is a|shader parameter|name=$translucent}}{{toc-right}}
Especifica que el material debería ser parcialmente transparente. El canal alfa de {{ent|$basetexture}} se utiliza para determinar la translucidez por píxel.
Especifica que el material debería ser parcialmente transparente. El canal alfa de {{ent|$basetexture}} se utiliza para determinar la translucidez por píxel.


Cualquier objeto que tenga un material <code>$translucent</code> no afecta a [[VIS]], y puede ser visto a través por NPCs desde cualquier ángulo. Sin embargo, las visleaves sí afectan a la clasificación alfa de los materiales translúcidos.
Cualquier objeto que tenga un material <code>$translucent</code> no afecta a {{L|VIS}}, y puede ser visto a través por NPCs desde cualquier ángulo. Sin embargo, las visleaves sí afectan a la clasificación alfa de los materiales translúcidos.


{{note|Activar la translucidez desactivará completamente las sombras creadas por [[env_projectedtexture|texturas proyectadas]] para la textura. Separe las partes opacas y sólidas de la textura, o use [[$alphatest]] en su lugar.}}
{{note|Activar la translucidez desactivará completamente las sombras creadas por {{L|env_projectedtexture|texturas proyectadas}} para la textura. Separe las partes opacas y sólidas de la textura, o use {{L|$alphatest}} en su lugar.}}


==Sintaxis==
==Sintaxis==
{{CodeBlock|$translucent <[[Boolean|bool]]>}}
{{CodeBlock|$translucent <{{L|Boolean|bool}}>}}


==Ejemplo de VMT==
==Ejemplo de VMT==
{{CodeBlock|lines=5|[[LightmappedGeneric]]<nowiki>
{{CodeBlock|lines=5|{{L|LightmappedGeneric}}<nowiki>
{
{
  "</nowiki>[[$basetexture]]<nowiki>" "glass/window001a"
  "</nowiki>{{L|$basetexture}}<nowiki>" "glass/window001a"
  "$translucent" 1
  "$translucent" 1
}</nowiki>}}
}</nowiki>}}


== Parámetros Adicionales ==
== Parámetros Adicionales ==
{{MatParam|$additive|bool|Agrega los valores de color del material a la imagen existente, en lugar de realizar una multiplicación. Esto significa, entre otras cosas, que el material siempre iluminará el mundo. Es útil para efectos como polvo volumétrico, sprites de luz, etc.}}
{{MatParamDef|$additive|bool|Agrega los valores de color del material a la imagen existente, en lugar de realizar una multiplicación. Esto significa, entre otras cosas, que el material siempre iluminará el mundo. Es útil para efectos como polvo volumétrico, sprites de luz, etc.}}


== Precauciones ==
== Precauciones ==
Line 25: Line 26:
[[File:Translucent2p.png]]
[[File:Translucent2p.png]]


A diferencia de <code>'''$translucent'''</code>, que permite grados variables de opacidad, la prueba alfa <code>$alphatest</code> no lo hace: se encienden o apagan las partes de su textura. <code>'''$alphatestreference'''</code>, un parámetro normal, controla la filtración de la máscara de transparencia (usando valores más bajos como .01 resultará en un borde más difuminado mientras que un valor de .99 será extremadamente nítido). Dado que la prueba alfa es más económica que <code>$translucent</code>, se puede utilizar para lograr un efecto similar a los materiales que utilizan el parámetro <code>$translucent</code> a un costo reducido. El uso de <code>'''[[$allowalphatocoverage]]'''</code> habilitará el suavizado de texturas con prueba alfa, dando bordes mucho más suaves. Cuando <code>'''$allowAlphaToCoverage'''</code> está habilitado, <code>'''$alphatestreference'''</code> se ignora y no afectará la apariencia de la textura, aunque seguirá afectando al enmascaramiento de texturas proyectadas (por ejemplo, la linterna).
A diferencia de <code>'''$translucent'''</code>, que permite grados variables de opacidad, la prueba alfa <code>$alphatest</code> no lo hace: se encienden o apagan las partes de su textura. <code>'''$alphatestreference'''</code>, un parámetro normal, controla la filtración de la máscara de transparencia (usando valores más bajos como .01 resultará en un borde más difuminado mientras que un valor de .99 será extremadamente nítido). Dado que la prueba alfa es más económica que <code>$translucent</code>, se puede utilizar para lograr un efecto similar a los materiales que utilizan el parámetro <code>$translucent</code> a un costo reducido. El uso de <code>'''{{L|$allowalphatocoverage}}'''</code> habilitará el suavizado de texturas con prueba alfa, dando bordes mucho más suaves. Cuando <code>'''$allowAlphaToCoverage'''</code> está habilitado, <code>'''$alphatestreference'''</code> se ignora y no afectará la apariencia de la textura, aunque seguirá afectando al enmascaramiento de texturas proyectadas (por ejemplo, la linterna).


{{note|El efecto de <code>'''$allowAlphaToCoverage'''</code> solo será visible si el usuario tiene MSAA activado.}}
{{note|El efecto de <code>'''$allowAlphaToCoverage'''</code> solo será visible si el usuario tiene MSAA activado.}}


{{tip|Las texturas de pincel en pinceles del mundo que no son detalles usan el [[BSP tree|árbol BSP]] para mejorar la ordenación alfa, reduciendo la probabilidad de que ocurra este tipo de error. Evite vincular pinceles translúcidos simples a [[func_detail]] a menos que sea necesario; de todos modos, no afectarán a VIS.}}
{{tip|Las texturas de pincel en pinceles del mundo que no son detalles usan el {{L|BSP tree|árbol BSP}} para mejorar la ordenación alfa, reduciendo la probabilidad de que ocurra este tipo de error. Evite vincular pinceles translúcidos simples a {{L|func_detail}} a menos que sea necesario; de todos modos, no afectarán a VIS.}}


=== Compatibilidad con Otros Efectos ===
=== Compatibilidad con Otros Efectos ===
Ciertos parámetros de sombreador (como {{ent|$envmap}}) desactivan la translucidez. Si tienes problemas para que funcione, prueba comentando otras partes del material.
Ciertos parámetros de sombreador (como {{ent|$envmap}}) desactivan la translucidez. Si tienes problemas para que funcione, prueba comentando otras partes del material.


{{note|{{csgo|4}}, {{gmod|4}} y {{l4d2|4}} admiten <code>[[$envmap]]</code> con translucidez.}}
{{note|{{csgo|4}}, {{gmod|4}} y {{l4d2|4}} admiten <code>{{L|$envmap}}</code> con translucidez.}}


=== Filtros de Bordes ===
=== Filtros de Bordes ===
Line 46: Line 47:
{{note|Este proceso se llama '''dilatación''' y también ayuda en la generación adecuada de mipmaps.}}
{{note|Este proceso se llama '''dilatación''' y también ayuda en la generación adecuada de mipmaps.}}


('''Para usuarios de versiones antiguas de [[GIMP]]''', el programa '''eliminará automáticamente la información de color de los píxeles con alfa cero''' cuando se combinan capas. Como solución temporal, podrías asignar a esos píxeles un valor alfa de uno en su lugar.
('''Para usuarios de versiones antiguas de {{L|GIMP}}''', el programa '''eliminará automáticamente la información de color de los píxeles con alfa cero''' cuando se combinan capas. Como solución temporal, podrías asignar a esos píxeles un valor alfa de uno en su lugar.


A partir de GIMP 2.8.14, los píxeles con un valor alfa de 0 conservan su información de color al guardarse como tga.
A partir de GIMP 2.8.14, los píxeles con un valor alfa de 0 conservan su información de color al guardarse como tga.
{{tip|Para las conversiones desde {{gldsrc|4}}:
{{tip|Para las conversiones desde {{gldsrc|4}}:
[[xwad]] generará automáticamente píxeles transparentes adecuados para cualquier textura [[WAD]] convertida que contenga el prefijo {{key|{}}}, cualquier sprite [[SPR]] convertido marcado como {{mono|AlphaTest}}, y cualquier textura [[BMP]] suelta convertida que se haya convertido usando el indicador {{code|-transparent}}.}}
{{L|xwad}} generará automáticamente píxeles transparentes adecuados para cualquier textura {{L|WAD}} convertida que contenga el prefijo {{key|{}}}, cualquier sprite {{L|SPR}} convertido marcado como {{mono|AlphaTest}}, y cualquier textura {{L|BMP}} suelta convertida que se haya convertido usando el indicador {{code|-transparent}}.}}


== Vease también ==
== Vease también ==
* <code>[[$alpha/es|$alpha]]</code> para translucidez en toda la textura
* <code>{{L|$alpha}}</code> para translucidez en toda la textura
* <code>[[$distancealpha]]</code> para bordes alfa tipo vector
* <code>{{L|$distancealpha}}</code> para bordes alfa tipo vector
* <code>[[$vertexalpha]]</code>
* <code>{{L|$vertexalpha}}</code>
* <code>[[$alphatest/es|$alphatest]]</code> para opacidad binaria
* <code>{{L|$alphatest}}</code> para opacidad binaria
 
{{ACategory|Shader parameters|translucent}}

Latest revision as of 12:07, 23 August 2025

English (en)Español (es)Français (fr)中文 (zh)Translate (Translate)

$translucent es un parámetro de un shader(en) disponible en todos los juegos de Source Source.

Especifica que el material debería ser parcialmente transparente. El canal alfa de $basetexture se utiliza para determinar la translucidez por píxel.

Cualquier objeto que tenga un material $translucent no afecta a VIS(en), y puede ser visto a través por NPCs desde cualquier ángulo. Sin embargo, las visleaves sí afectan a la clasificación alfa de los materiales translúcidos.

Note.pngNota:Activar la translucidez desactivará completamente las sombras creadas por texturas proyectadas(en) para la textura. Separe las partes opacas y sólidas de la textura, o use $alphatest(en) en su lugar.

Sintaxis

$translucent <bool(en)>

Ejemplo de VMT

  1.  
  2.  
  3.  
  4.  
  5.  
LightmappedGeneric(en) { "$basetexture(en)" "glass/window001a" "$translucent" 1 }

Parámetros Adicionales

Agrega los valores de color del material a la imagen existente, en lugar de realizar una multiplicación. Esto significa, entre otras cosas, que el material siempre iluminará el mundo. Es útil para efectos como polvo volumétrico, sprites de luz, etc.

Precauciones

Parpadeo y Profundidad Inversa

La translucidez a veces puede hacer que un material parpadee o cause problemas de ordenación con superficies cercanas. En ambos casos, considere usar $alphatest en lugar de $translucent cuando esto ocurra. Esto reduce drásticamente la calidad, pero generalmente resuelve el problema y es mucho más rápido de dibujar. Además, lanzará sombras de linterna, a diferencia de los materiales translúcidos.

Translucent2p.png

A diferencia de $translucent, que permite grados variables de opacidad, la prueba alfa $alphatest no lo hace: se encienden o apagan las partes de su textura. $alphatestreference, un parámetro normal, controla la filtración de la máscara de transparencia (usando valores más bajos como .01 resultará en un borde más difuminado mientras que un valor de .99 será extremadamente nítido). Dado que la prueba alfa es más económica que $translucent, se puede utilizar para lograr un efecto similar a los materiales que utilizan el parámetro $translucent a un costo reducido. El uso de $allowalphatocoverage(en) habilitará el suavizado de texturas con prueba alfa, dando bordes mucho más suaves. Cuando $allowAlphaToCoverage está habilitado, $alphatestreference se ignora y no afectará la apariencia de la textura, aunque seguirá afectando al enmascaramiento de texturas proyectadas (por ejemplo, la linterna).

Note.pngNota:El efecto de $allowAlphaToCoverage solo será visible si el usuario tiene MSAA activado.
Tip.pngConsejo:Las texturas de pincel en pinceles del mundo que no son detalles usan el árbol BSP(en) para mejorar la ordenación alfa, reduciendo la probabilidad de que ocurra este tipo de error. Evite vincular pinceles translúcidos simples a func_detail(en) a menos que sea necesario; de todos modos, no afectarán a VIS.

Compatibilidad con Otros Efectos

Ciertos parámetros de sombreador (como $envmap) desactivan la translucidez. Si tienes problemas para que funcione, prueba comentando otras partes del material.

Note.pngNota:Counter-Strike: Global Offensive Counter-Strike: Global Offensive, Garry's Mod Garry's Mod y Left 4 Dead 2 Left 4 Dead 2 admiten $envmap(en) con translucidez.

Filtros de Bordes

Wikipedia icon Filtrado de texturas mezclará los píxeles cercanos incluso si algunos de ellos son completamente transparentes. Esto puede crear efectos no deseados de contornos si las caídas abruptas en el canal alfa coinciden con caídas en el color, lo cual puede ocurrir cuando el canal alfa alcanza cero y ya no puedes ver los píxeles.

Un borde de filtrado no deseado.

Para resolver este problema, simplemente mezcla los colores de tu imagen ligeramente más allá de donde el canal alfa cae. Esto se puede lograr fácilmente duplicando la capa translúcida y difuminándola en las áreas relevantes.

Corrigiendo los bordes de filtrado.
Note.pngNota:Este proceso se llama dilatación y también ayuda en la generación adecuada de mipmaps.

(Para usuarios de versiones antiguas de GIMP(en), el programa eliminará automáticamente la información de color de los píxeles con alfa cero cuando se combinan capas. Como solución temporal, podrías asignar a esos píxeles un valor alfa de uno en su lugar.

A partir de GIMP 2.8.14, los píxeles con un valor alfa de 0 conservan su información de color al guardarse como tga.

Tip.pngConsejo:Para las conversiones desde GoldSrc GoldSrc: xwad(en) generará automáticamente píxeles transparentes adecuados para cualquier textura WAD(en) convertida que contenga el prefijo {}, cualquier sprite SPR(en) convertido marcado como AlphaTest, y cualquier textura BMP(en) suelta convertida que se haya convertido usando el indicador -transparent.

Vease también