$translucent: Difference between revisions
TomEdwards (talk | contribs) (→Filtering borders: saving to TGA has nothing to do with it. Did I write that?) |
|||
Line 24: | Line 24: | ||
=== Flickering === | === Flickering === | ||
Translucency can sometimes cause a material to flicker. Consider using '''<code>$alphatest</code>''' instead of <code>$translucent</code> when this happens. It drastically lowers quality, but will usually resolve the issue and is much faster to draw. | Translucency can sometimes cause a material to flicker. Consider using '''<code>$alphatest</code>''' instead of <code>$translucent</code> when this happens. It drastically lowers quality, but will usually resolve the issue and is much faster to draw. | ||
=== Reversed Depth === | |||
When texturing a model with translucent materials, the depths of the polygon mesh can become reversed/incorrect. (Ex: A tree using a partially translucent material for the leaves and smaller branches. Using the standard "$translucent" command will cause the top/back branches to be rendered "ontop" of the lower/front branches.) Using the alternate "$Alphatest" command in place of "$translucent" fixes this problem. | |||
[[File:Translucent1p.png]] [[File:Translucent2p.png]] | |||
=== Compatibility with other effects === | === Compatibility with other effects === |
Revision as of 21:35, 13 November 2009
The $translucent
VMT command specifies that the material should be partially see-through. The alpha channel of $basetexture
is used to decide translucency per-pixel.
Any object that has a $translucent
material does not affect VIS, and can be seen through by NPCs from any angle.
VMT syntax example
$translucent <bool>
LightmappedGeneric { $basetexture glass\window001a $translucent 1 }
Additional parameters
$additive <bool>
- Add the material's colour values to the existing image, instead of performing a multiplication. This means, among other things, that the material will always brighten the world.
Caveats
Flickering
Translucency can sometimes cause a material to flicker. Consider using $alphatest
instead of $translucent
when this happens. It drastically lowers quality, but will usually resolve the issue and is much faster to draw.
Reversed Depth
When texturing a model with translucent materials, the depths of the polygon mesh can become reversed/incorrect. (Ex: A tree using a partially translucent material for the leaves and smaller branches. Using the standard "$translucent" command will cause the top/back branches to be rendered "ontop" of the lower/front branches.) Using the alternate "$Alphatest" command in place of "$translucent" fixes this problem.
Compatibility with other effects
Certain shader parameters (such as $envmap
) can disable translucency. If you are having trouble getting it to work, try commenting out other parts of the material.
Filtering borders
Texture filtering will blend nearby pixels together even if some of of them are entirely transparent. This can create unwanted outlining effects if sudden drop-offs in alpha coincide with drop-offs in colour, which may well happen when the alpha channel reaches zero and you stop being able to see the pixels.
To resolve this issue, simply blend the colours of your image slightly beyond where the alpha channel drops off. This can be easily achieved by duplicating the translucent layer and smudging it into the relevant areas.
(Unfortunately for users of The GIMP, the program will automatically remove colour information for pixels with an alpha of zero whenever layers are combined. The developers are aware of the the problems such behaviour creates but do not intend to change it.)
See also
$alpha
, for texture-wide translucency$distancealpha
, for vector-like alpha edges$vertexalpha