Zh/$lightwarptexture: Difference between revisions
< Zh
Jump to navigation
Jump to search
mNo edit summary |
(deepseek translation) |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
{{LanguageBar}} | |||
{{Source topicon}} | {{Source topicon}} | ||
{{ | [[File:Lightwarp snow.jpg|thumb|200px|该技术首次应用于{{dods|2}}的雪地地图,例如Kalt。]] | ||
[[File:Lightwarp heavy.png|thumb|150px|{{code|$lightwarptexture}}是{{tf2|2}}卡通风格角色渲染的核心要素。]] | |||
[[File:Lightwarp BW.png|thumb|150px|可实现分阶色彩效果,但需严格控制光照。]] | |||
{{ | {{this is a|shader parameter|name=$lightwarptexture|shader=VertexLitGeneric|since=Source 2006|notitlechange=1|nocat=1|dx=dx95}} 该参数根据[[texel]]的亮度进行染色,可视为局部化的[[color correction|色彩校正]]。 | ||
{{Note|也可用于{{L|LightmappedGeneric}}、{{L|WorldVertexTransition}}、{{L|EyeRefract}}。}} | |||
== 注意事项 == | == 注意事项 == | ||
{{Important|{{code|$lightwarptexture}} | {{Important|{{code|$lightwarptexture}}必须在所有其他纹理之后指定,否则会覆盖其他纹理。}} | ||
{{Important| | {{Important|确保纹理在VTF中启用钳位模式,否则渲染会异常。需使用'''Clamp S'''和'''Clamp T'''{{L|Texture flags|图像标志}}。}} | ||
{{Important| | {{Important|{{Ent|VertexLitGeneric}}的{{code|$lightwarptexture}}需要{{Ent|$bumpmap}}。若未指定,将自动使用默认法线贴图!'''效果等同于在VMT中声明了{{Ent|$bumpmap}}!''' | ||
{{Warning|这意味着所有与 {{Ent|$bumpmap}} | {{Warning| 这意味着所有与{{Ent|$bumpmap}}冲突的参数也会与此参数冲突: | ||
* {{L|$detail#Parameters and Effects|$detailblendmode}} 5-9失效 - 使用{{Ent|$phong}}时5和6仍有效 | |||
* {{Ent|$envmapmask}} | * {{Ent|$envmapmask}}仅在{{mapbase|2}}中有效 | ||
* {{Ent|$selfillum_envmapmask_alpha}} | * {{Ent|$selfillum_envmapmask_alpha}}在所有分支中均无效 | ||
}} }} | }} }} | ||
{{Note|在 {{src13|2}} 和 {{csgobranch|2}} 中,{{ | {{Note|在{{src13|2}}和{{csgobranch|2}}中,{{Ent|VertexLitGeneric}}必须启用{{Ent|$phong}}才能使用本参数。}} | ||
{{Note|{{ | {{Note|{{csgobranch|2}}的{{Ent|LightmappedGeneric}}似乎完全未实现{{code|$lightwarptexture}}。}} | ||
{{Bug|在 {{Ent|LightmappedGeneric}} 和 {{Ent|WorldVertexTransition}} | {{Bug|在{{Ent|LightmappedGeneric}}和{{Ent|WorldVertexTransition}}上同时使用{{Ent|$detail}}或{{Ent|$bumpmap2}}会导致失效。}} | ||
{{Bug| | {{Bug|未启用{{Ent|$phong}}时,{{L|Glowing_Textures#.24selfillum|$selfillumfresnel}}会导致失效。}} | ||
{{Bug| | {{Bug|使用{{Ent|$seamless_scale}}时失效。}} | ||
== | == 光扭曲纹理 == | ||
光扭曲纹理是一维像素条。暗部区域将应用左侧颜色染色,亮部则应用右侧颜色。50%灰度表示无染色。 | |||
{{note| | {{note|光照贴图笔刷/位移面与顶点光照模型的光扭曲效果略有差异。完全50%灰度的{{code|$lightwarptexture}}在笔刷/位移面上会呈现无光扭曲效果,而相同纹理在未启用{{L|$phong}}的模型上会导致均匀光照(类似GoldSrc的平面着色模式)。}} | ||
=== | === VTF参数 === | ||
光扭曲纹理应使用未压缩的BGR888格式以避免光照渐变中的色阶断层{{ref|1}},并启用UV钳位。 | |||
使用{{vtex|4}}时,建议编译参数: | |||
<pre> | <pre> | ||
nocompress 1 // | nocompress 1 // 禁用纹理压缩,防止色阶断层 | ||
nomip 1 // | nomip 1 // 禁用mipmap(低分辨率纹理无需生成) | ||
nolod 1 // | nolod 1 // 始终使用完整分辨率版本 | ||
clamps 1 // | clamps 1 // 防止极端光照值混合 | ||
clampt 1 // 可选? | clampt 1 // 可选? | ||
stripalphachannel 1 // | stripalphachannel 1 // 移除冗余的Alpha通道(如有) | ||
</pre> | </pre> | ||
=== 示例 === | === 示例 === | ||
; {{file|ground/snow_warp|vtf}} ({{dods}}):[[File:Warptexture.jpg|border|dod\materials\ground\snow_warp]] | ; {{file|ground/snow_warp|vtf}} ({{dods}}):[[File:Warptexture.jpg|border|dod\materials\ground\snow_warp]] | ||
: | : 这是上文{{dods|2}}截图中使用的光扭曲纹理,用于为暗部雪景添加微妙蓝调而不影响高光区域。 | ||
; {{file|models/player/pyro/pyro_lightwarp|vtf}} ({{tf2}}):[[File:Pyro lightwarp.png|border|tf\materials\models\player\pyro\pyro_lightwarp]] | ; {{file|models/player/pyro/pyro_lightwarp|vtf}} ({{tf2}}):[[File:Pyro lightwarp.png|border|tf\materials\models\player\pyro\pyro_lightwarp]] | ||
: | : 该纹理应用于所有{{tf2|2}}角色(不仅限Pyro),创造出红调阴影边界的高对比度卡通效果。 | ||
; | ; 分阶处理(自定义): [[File:Warp bw.png|border|自定义纹理]] | ||
: | : 此自定义纹理实现"线稿"风格。需将环境光设为0使未照明区域变黑,并控制视角相关阴影投射。 | ||
; | ; 卡通着色(自定义):[[File:Cel_lightwarp.png|border|自定义纹理]] | ||
: | : 通过锐利的光照阶梯替代平滑渐变,增强卡通质感。 | ||
{{code|$lightwarptexture}}还可用于增强对比度、调整顶点光照阴影过渡、柔化高光等。 | |||
::[[File:Celshadingpreview.png|thumb|320px|left| | ::[[File:Celshadingpreview.png|thumb|320px|left|卡通着色效果演示]] | ||
{{clr}} | {{clr}} | ||
== 参考资料 == | == 参考资料 == | ||
<ol> | <ol> | ||
<li>[https://gamebanana.com/mods/466641 Lightwarp Fixes <nowiki>[Team Fortress 2] [Mods]</nowiki>] | <li>[https://gamebanana.com/mods/466641 Lightwarp Fixes <nowiki>[Team Fortress 2] [Mods]</nowiki> on GameBanana] | ||
</ol> | </ol> | ||
{{ACategory|Shader parameters | {{ACategory|Shader parameters}} |
Latest revision as of 04:29, 10 March 2025

该技术首次应用于
胜利之日:起源的雪地地图,例如Kalt。

$lightwarptexture
(DX9+ SM3)是一个用于着色器 VertexLitGeneric 的材质着色器 参数,可在所有的 起源 游戏,自从
起源2006 以来中使用。 该参数根据texel的亮度进行染色,可视为局部化的色彩校正。

注意事项




- $detailblendmode 5-9失效 - 使用$phong时5和6仍有效
- $envmapmask仅在
Mapbase中有效
- $selfillum_envmapmask_alpha在所有分支中均无效








光扭曲纹理
光扭曲纹理是一维像素条。暗部区域将应用左侧颜色染色,亮部则应用右侧颜色。50%灰度表示无染色。

VTF参数
光扭曲纹理应使用未压缩的BGR888格式以避免光照渐变中的色阶断层[1],并启用UV钳位。
使用 VTEX时,建议编译参数:
nocompress 1 // 禁用纹理压缩,防止色阶断层 nomip 1 // 禁用mipmap(低分辨率纹理无需生成) nolod 1 // 始终使用完整分辨率版本 clamps 1 // 防止极端光照值混合 clampt 1 // 可选? stripalphachannel 1 // 移除冗余的Alpha通道(如有)
示例
ground/snow_warp.vtf
()
- 这是上文
胜利之日:起源截图中使用的光扭曲纹理,用于为暗部雪景添加微妙蓝调而不影响高光区域。
models/player/pyro/pyro_lightwarp.vtf
()
- 该纹理应用于所有
军团要塞2角色(不仅限Pyro),创造出红调阴影边界的高对比度卡通效果。
- 分阶处理(自定义)
- 此自定义纹理实现"线稿"风格。需将环境光设为0使未照明区域变黑,并控制视角相关阴影投射。
- 卡通着色(自定义)
- 通过锐利的光照阶梯替代平滑渐变,增强卡通质感。
$lightwarptexture还可用于增强对比度、调整顶点光照阴影过渡、柔化高光等。