Zh/$envmapmask: Difference between revisions
< Zh
Jump to navigation
Jump to search
No edit summary |
(deepseek translation) |
||
Line 1: | Line 1: | ||
{{ | {{Machine Translation}} | ||
{{LanguageBar}} | {{LanguageBar}} | ||
{{toc-right}} | {{toc-right}} | ||
{{this is a|shader parameter|name=$envmapmask}} | {{this is a|shader parameter|name=$envmapmask}} 它定义了'''高光遮罩''',用于控制材质的每个像素对{{ent|$envmap}}光线的反射强度。遮罩应为灰度图像,其中纯白区域表示完全反射,纯黑区域表示无反射。对于不依赖<code>$envmap</code>的漫反射类型高光,请参见{{ent|$phong}}。 | ||
{{bug|hidetested=1| | {{bug|hidetested=1|在{{src07|2}}引擎游戏中,若<code>$envmapmask</code>未存储在子文件夹中,将导致纹理无法在游戏中加载。}} | ||
{{warning|<code>$envmapmask</code> | {{warning|<code>$envmapmask</code>在多数情况下无法与使用{{ent|$bumpmap}}/的材质共同作用;详见[[#替代方法]]。 | ||
{{note| | {{note|例外情况: | ||
* '''{{L|LightmappedReflective}}''' | * '''{{L|LightmappedReflective}}'''(使用{{ent|$normalmap}}) | ||
* {{mapbase| | * {{mapbase|仅限}} '''{{L|VertexLitGeneric}}''' | ||
* {{csgo| | * {{csgo|仅限}}'''{{L|LightmappedGeneric}}''' | ||
}} }} | }} }} | ||
{{warning|<code>$envmapmask</code> | {{warning|<code>$envmapmask</code>完全无法与使用{{ent|$phong}}的材质共同工作。默认情况下,它会使用$basetexture的alpha通道作为环境贴图遮罩。}} | ||
{{note| | {{note|尽管高光遮罩传统上是灰阶的,但也可使用彩色图像。此时颜色数据将作为逐像素的$envmaptint参数生效。}} | ||
== | ==VMT语法示例== | ||
$envmapmask < | $envmapmask <纹理路径> | ||
{{L|VertexLitGeneric}} | {{L|VertexLitGeneric}} | ||
Line 25: | Line 25: | ||
} | } | ||
== | ==附加参数== | ||
[[File:Scanner mask.jpg|thumb|250px|{{L|npc_cscanner}} | [[File:Scanner mask.jpg|thumb|250px|{{L|npc_cscanner}}的遮罩效果]] | ||
{{MatParam|$envmapmasktransform| | {{MatParam|$envmapmasktransform|矩阵| | ||
: | : 用于变换高光遮罩纹理。 | ||
{{bug| | {{bug|在{{ent|VertexLitGeneric}}材质上无效。}} | ||
{{VMT UVtransform}}|dx9=1}} | {{VMT UVtransform}}|dx9=1}} | ||
{{MatParam|$envmapmaskscale| | {{MatParam|$envmapmaskscale|浮点数|按给定值缩放高光遮罩。另见上文<code>$envmapmasktransform</code>参数。|dx8=1}} | ||
{{MatParam|$envmapmaskframe| | {{MatParam|$envmapmaskframe|整数|动画高光遮罩的起始帧编号。}} | ||
====CS:GO | ====CS:GO WorldVertexTransition专用参数==== | ||
{{MatParam|$envmapmask2| | {{MatParam|$envmapmask2|纹理|{{ent|WorldVertexTransition}}第二层的高光遮罩。|only={{csgo}}|shaders=WorldVertexTransition}} | ||
{{MatParam|$envmapmasktransform2| | {{MatParam|$envmapmasktransform2|矩阵|<code>$envmapmask2</code>的纹理变换矩阵。|only={{csgo}}|shaders=WorldVertexTransition}} | ||
{{MatParam|$envmapframe2| | {{MatParam|$envmapframe2|整数|动画<code>$envmapmask2</code>的起始帧编号。|only={{csgo}}|shaders=WorldVertexTransition}} | ||
== | ==替代方法== | ||
无需为高光遮罩创建全新纹理,可将其嵌入{{ent|$basetexture}}或{{code|$bumpmap}}的{{L|alpha通道}}中。使用{{code|$bumpmap}}的模型材质'''必须'''采用此方法。但请注意,这''不会''降低内存占用。 | |||
若使用以下命令,应用于{{code|$basetexture / $bumpmap}}的变换及其他参数将同时影响高光遮罩。 | |||
{{MatParam|$basealphaenvmapmask| | {{MatParam|$basealphaenvmapmask|布尔值|使用{{code|$basetexture}}的alpha通道作为高光遮罩。}} | ||
{{note| | {{note| | ||
* | * 嵌入{{code|$basetexture}}的alpha通道作用相反:透明区域反光,不透明区域哑光。这是因为(例如)窗户纹理的alpha遮罩通常为黑色以实现透明效果——而黑色遮罩区域恰好应是高反光区域。为避免仅为反转alpha遮罩而复制纹理文件,可使用此材质参数。 | ||
* | * 在{{src07|2}}和{{csgo|2}}中,模型的alpha通道'''不会'''反转,但笔刷材质的alpha通道'''会'''反转! | ||
:* | :* 在{{src13}}中,模型的alpha通道仅在{{cmd|$phong}}禁用时反转! | ||
* {{l4d2}} | * {{l4d2}}中若存在'''$envmap'''则自动启用。不透明区域反光,透明区域哑光。设为{{L|布尔值|true}}可反转{{code|$basetexture}}的alpha通道行为。当材质无需透明效果时,允许{{code|{{L|$bumpmap}}}}拥有独立的{{code|{{L|$phong}}}}遮罩。}} | ||
{{bug|<ul> | {{bug|<ul> | ||
<li> | <li> 在CSGO中,此参数会破坏使用{{ent|$translucent}}的材质。请改用{{code|$envmapmask}}或{{code|$normalmapalphaenvmapmask}}。<br> | ||
<li> | <li> 在以下引擎中:{{gmod}}{{src13}}{{tf2}}{{as}}{{csgo}}的{{ent|VertexLitGeneric}}('''未启用'''{{ent|$phong}})、{{ent|WorldVertexTransition}}和{{ent|LightmappedGeneric}}材质上,<code>$basealphaenvmapmask</code>无法与{{ent|$bumpmap}}共用。<br> | ||
<li> | <li> 在以下引擎中:{{gmod}}{{src13}}{{tf2}}{{as}}{{csgo}}的{{ent|LightmappedGeneric}}和{{ent|WorldVertexTransition}}材质上,<code>$basealphaenvmapmask</code>无法与{{ent|$selfillum}}、{{ent|$seamless_detail}}或{{ent|$distancealpha}}共用。<br> | ||
<li> | <li> 在{{csgo}}的{{ent|LightmappedGeneric}}和{{ent|WorldVertexTransition}}材质上,<code>$basealphaenvmapmask</code>无法与{{L|$detail#参数与效果|$detailblendmode}} "9"或{{ent|$envmapanisotropy}}共用。<br> | ||
<li> | <li> 在{{csgo}}的{{ent|Lightmapped_4WayBlend}}材质上,<code>$basealphaenvmapmask</code>无法与{{ent|$selfillum}}共用。 | ||
<li> | <li> 在{{ent|LightmappedGeneric}}材质上无法与{{ent|$bumpmap}}共用 | ||
</ul>}} | </ul>}} | ||
<br>{{MatParam|$normalmapalphaenvmapmask| | <br>{{MatParam|$normalmapalphaenvmapmask|布尔值|使用{{code|$bumpmap}}或{{code|$normalmap}}的alpha通道作为高光遮罩。 | ||
{{warning| | {{warning|若同时使用{{code|{{L|$phong|$basemapalphaphongmask}}}}或{{code|{{L|$phong|$basemapluminancephongmask}}}},将导致{{ent|$envmap}}的遮罩被后者覆盖。<br> | ||
使用{{ent|$phong}}时'''存在额外限制''',请查阅其条目了解潜在问题。}} | |||
}} | }} | ||
{{bug| | {{bug| | ||
* | * 在以下引擎中:{{gmod}}{{src13}}{{tf2}}{{as}}{{csgo}}的{{ent|VertexLitGeneric}}('''未启用'''{{ent|$phong}})材质上,<code>$normalmapalphaenvmapmask</code>无法与{{L|发光纹理#.24selfillum|$selfillumfresnel}}共用。<br> | ||
:{{note| | :{{note| 在{{ent|$phong}}和{{L|发光纹理#.24selfillum|$selfillumfresnel}}共同作用时使用<code>$normalmapalphaenvmapmask</code>有特殊限制,请查阅{{ent|$phong}}条目获取详情。}} | ||
* | * 在{{csgo}}的{{ent|LightmappedGeneric}}和{{ent|WorldVertexTransition}}材质上,{{code|{{L|$normalmapalphaenvmapmask}}}}无法与{{L|$detail#参数与效果|$detailblendmode}} "9"或{{ent|$envmapanisotropy}}共用。}}<br> | ||
<br>{{MatParam|$selfillum_envmapmask_alpha| | <br>{{MatParam|$selfillum_envmapmask_alpha|浮点数|使用{{code|$envmapmask}}的alpha通道替代{{code|$basetexture}}的alpha作为{{ent|$selfillum}}遮罩。<br> | ||
: {{bug| | : {{bug|此参数会取代{{code|$selfillum}}。若两者共用将导致错误,材质无法渲染。}} | ||
: {{warning| | : {{warning|仅适用于{{ent|VertexLitGeneric}}材质——注意<code>$envmapmask</code>在VertexLitGeneric上'''无法'''与{{ent|$bumpmap}}或{{ent|$phong}}共同工作。}} | ||
{{todo| | {{todo|此参数并非<code>$envmapmask</code>的替代方案,实际需依赖该参数。<code>应移至"附加参数"章节</code>,并确保其他页面链接不受影响。}}}} | ||
<br>{{MatParam|$envmapmaskintintmasktexture| | <br>{{MatParam|$envmapmaskintintmasktexture|布尔值|使用{{ent|$tintmasktexture}}的红色通道作为高光遮罩。|only={{csgo}}|shaders=VertexLitGeneric}} | ||
== | ==在3ds Max中将高光层级合并至法线贴图Alpha通道== | ||
要将高光层级贴图合并到法线贴图的Alpha通道,可创建复合贴图节点:法线贴图置于图层1,高光贴图置于遮罩1。右键点击复合贴图,选择"渲染贴图"并将新图像保存为文件(保存时需保持Gamma值为1.0,并选择32位/像素)。 | |||
Wall Worm 2.72+中的[Alpha Spec工具](http://dev.wallworm.com/topic/34/alpha_spec.html)可自动完成此流程。 | |||
== | ==另请参阅== | ||
* {{L|$basetexture}} | * {{L|$basetexture}} | ||
* {{L|$envmap}} | * {{L|$envmap}}(环境贴图) | ||
* {{L|$phong}} | * {{L|$phong}}(漫反射) | ||
* {{L|$selfillum }} | * {{L|$selfillum}}(自发光) | ||
{{ACategory|Shader parameters | {{ACategory|Shader parameters}} | ||
{{ACategory|VMT Reflections}} | {{ACategory|VMT Reflections}} |
Revision as of 20:53, 7 August 2025

This page is Machine translated
It is not recommended to use machine translation without any corrections.
If the article is not corrected in the long term, it will be removed.
Also, please make sure the article complies with the alternate languages guide.
It is not recommended to use machine translation without any corrections.
If the article is not corrected in the long term, it will be removed.
Also, please make sure the article complies with the alternate languages guide.
$envmapmask
是一个材质着色器 参数,可在所有的 起源 游戏中使用。 它定义了高光遮罩,用于控制材质的每个像素对$envmap光线的反射强度。遮罩应为灰度图像,其中纯白区域表示完全反射,纯黑区域表示无反射。对于不依赖
$envmap
的漫反射类型高光,请参见$phong。


$envmapmask
未存储在子文件夹中,将导致纹理无法在游戏中加载。
$envmapmask
完全无法与使用$phong的材质共同工作。默认情况下,它会使用$basetexture的alpha通道作为环境贴图遮罩。
VMT语法示例
$envmapmask <纹理路径>
VertexLitGeneric { $envmap env_cubemap $envmapmask "props/tvscreen_test" }
附加参数

npc_cscanner 的遮罩效果
$envmapmasktransform
$envmapmaskscale
$envmapmaskframe
CS:GO WorldVertexTransition专用参数
$envmapmask2
$envmapmasktransform2
$envmapframe2
替代方法
无需为高光遮罩创建全新纹理,可将其嵌入$basetexture或$bumpmap的alpha通道 中。使用$bumpmap的模型材质必须采用此方法。但请注意,这不会降低内存占用。
若使用以下命令,应用于$basetexture / $bumpmap的变换及其他参数将同时影响高光遮罩。

- 嵌入$basetexture的alpha通道作用相反:透明区域反光,不透明区域哑光。这是因为(例如)窗户纹理的alpha遮罩通常为黑色以实现透明效果——而黑色遮罩区域恰好应是高反光区域。为避免仅为反转alpha遮罩而复制纹理文件,可使用此材质参数。
- 在
起源2007和
反恐精英:全球攻势中,模型的alpha通道不会反转,但笔刷材质的alpha通道会反转!
- 在
中,模型的alpha通道仅在$phong禁用时反转!
- 在

- 在CSGO中,此参数会破坏使用$translucent的材质。请改用$envmapmask或$normalmapalphaenvmapmask。
- 在以下引擎中:
的VertexLitGeneric(未启用$phong)、WorldVertexTransition和LightmappedGeneric材质上,
$basealphaenvmapmask
无法与$bumpmap共用。
- 在以下引擎中:
的LightmappedGeneric和WorldVertexTransition材质上,
$basealphaenvmapmask
无法与$selfillum、$seamless_detail或$distancealpha共用。
- 在
的LightmappedGeneric和WorldVertexTransition材质上,
$basealphaenvmapmask
无法与$detailblendmode "9"或$envmapanisotropy共用。
- 在
的Lightmapped_4WayBlend材质上,
$basealphaenvmapmask
无法与$selfillum共用。 - 在LightmappedGeneric材质上无法与$bumpmap共用

- 在以下引擎中:
的VertexLitGeneric(未启用$phong)材质上,
$normalmapalphaenvmapmask
无法与$selfillumfresnel 共用。
注意: 在$phong和$selfillumfresnel 共同作用时使用
$normalmapalphaenvmapmask
有特殊限制,请查阅$phong条目获取详情。
- 在
的LightmappedGeneric和WorldVertexTransition材质上,$normalmapalphaenvmapmask无法与$detailblendmode "9"或$envmapanisotropy共用。 [todo tested in ?]
$selfillum_envmapmask_alpha
$envmapmaskintintmasktexture
在3ds Max中将高光层级合并至法线贴图Alpha通道
要将高光层级贴图合并到法线贴图的Alpha通道,可创建复合贴图节点:法线贴图置于图层1,高光贴图置于遮罩1。右键点击复合贴图,选择"渲染贴图"并将新图像保存为文件(保存时需保持Gamma值为1.0,并选择32位/像素)。
Wall Worm 2.72+中的[Alpha Spec工具](http://dev.wallworm.com/topic/34/alpha_spec.html)可自动完成此流程。
另请参阅
- $basetexture
- $envmap (环境贴图)
- $phong (漫反射)
- $selfillum (自发光)