$translucent
This page either contains information that is only partially or incorrectly translated, or there isn't a translation yet.
If this page cannot be translated for some reason, or is left untranslated for an extended period of time after this notice is posted, the page should be requested to be deleted.
Also, please make sure the article tries to comply with the alternate languages guide.
$translucent
是一个材质着色器 参数,可在所有的 起源 游戏中使用。
指定材质应该是部分透明的。Alpha通道 被用来根据$basetexture的每个像素决定透明度。
任何使用$translucent
材质的对象不会影响VIS ,并且NPC可以从任何角度透过它看到。然而,Visleaves 确实会影响透明材质的Alpha排序。
VMT语法示例
$translucent <布尔值 >
LightmappedGeneric { $basetexture glass\window001a $translucent 1 }
额外参数
注意事项
闪烁和反向深度
透明材质有时会导致材质闪烁,或者与附近表面产生排序问题。在这些情况下,考虑使用$alphatest
代替$translucent
。虽然这会显著降低质量,但通常可以解决问题,并且绘制速度更快。与透明材质不同,Alpha测试还会投射手电筒阴影。
与允许不同透明度的$translucent
不同,Alpha测试不允许——纹理的部分要么完全显示,要么完全隐藏。$alphatestreference
是一个常规参数,控制透明度遮罩的过滤(使用较低的值如.01会产生更模糊的边缘,而值为.99会非常锐利)。由于Alpha测试比$translucent
成本更低,可以用来实现类似于$translucent
参数材质的效果,同时降低开销。使用$allowalphatocoverage
将启用Alpha测试纹理的抗锯齿,使其边缘更加柔和。当启用$allowAlphaToCoverage
时,$alphatestreference
将被忽略,并不会影响纹理外观,但仍会影响投影纹理的模板(例如手电筒)。
$allowAlphaToCoverage
的效果只有在用户启用MSAA时才会可见。与其他效果的兼容性
某些着色器参数[哪些参数?]会禁用透明性。如果无法正常工作,可以逐一注释掉材质的其他部分,找出冲突的原因。
已知的冲突包括:
- $selfillum,因为它需要Alpha遮罩来决定发光效果,并“占用”了透明度。同样,即使用$selfillummask作为单独的纹理也无法解决问题。
- $blendtintbybasealpha,在模型上使用时。它使用Alpha遮罩来决定着色的程度,也会“占用”透明度。
滤镜边界
纹理过滤会将邻近像素混合在一起,即使其中一些像素是完全透明的。如果Alpha值突然下降与颜色值的下降重叠,可能会产生不需要的轮廓效果。当Alpha通道 降到零时,您可能会遇到此问题,并停止看到像素。
为了解决这个问题,可以简单地将图像的颜色稍微延伸到Alpha通道下降的区域之外。这可以通过复制透明层并将其涂抹到相关区域来轻松实现。
(对于旧版本GIMP 的用户,当图层合并时,程序会自动移除Alpha值为零的像素的颜色信息。作为一种解决方法,可以将这些像素的Alpha值设置为1。
从GIMP 2.8.14开始,Alpha值为0的像素在保存为TGA格式时保留其颜色信息。
-transparent
标志转换的松散BMP 纹理生成适当的透明像素。参见
- $alpha,用于全纹理透明度
- $distancealpha,用于矢量样式的Alpha边缘
- $vertexalpha
- $alphatest,用于二元透明度。