这篇条目有关 Source引擎。如需详情,点击这里。

Zh/$lightwarptexture: Difference between revisions

From Valve Developer Community
< Zh
Jump to navigation Jump to search
mNo edit summary
(deepseek translation)
Line 1: Line 1:
{{LanguageBar}}
{{translate}}
{{Source topicon}}
{{Source topicon}}
{{Translate|type=machine}}
[[File:Lightwarp snow.jpg|thumb|200px|该技术首次应用于{{L|Day of Defeat: Source|《反恐精英:起源》}}的雪地图,例如Kalt。]]
[[File:Lightwarp heavy.png|thumb|150px|{{code|$lightwarptexture}}是{{L|Team Fortress 2|《军团要塞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|颜色校正]]
[[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|可以实现海报化的颜色效果,但光照必须严格控制。]]


{{Note|同样适用于[[LightmappedGeneric]]、[[WorldVertexTransition]]、[[EyeRefract]]。}}
{{this is a|shader parameter|name=$lightwarptexture|shader=VertexLitGeneric|since=Source 2006|notitlechange=1|nocat=1|dx=dx95}} 它根据[[texel]]的亮度对其进行着色。可以将其视为局部化的[[颜色校正]]。
 
{{Note|也可用于[[LightmappedGeneric]]、[[WorldVertexTransition]]、[[EyeRefract]]。}}


== 注意事项 ==
== 注意事项 ==
{{Important|{{code|$lightwarptexture}} 必须在所有其他纹理之后指定,否则会覆盖它们。}}
{{Important|{{code|$lightwarptexture}}必须在所有其他纹理之后指定,否则它将覆盖它们。}}
{{Important|确保纹理在VTF中启用钳位模式,否则会渲染错误。为此,请使用“Clamp S”和“Clamp T”[[Texture flags|图像标志]]。}}
{{Important|确保纹理在VTF中被钳制,否则渲染会不正确。为此使用'''Clamp S'''和'''Clamp T'''[[Texture flags|图像标志]]。}}
{{Important|{{Ent|VertexLitGeneric}} 中使用 {{code|$lightwarptexture}} 需要一个 {{Ent|$bumpmap}}。如果未指定,将使用默认的凹凸贴图!默认贴图将使 {{Ent|$bumpmap}} 看起来已在VMT中指定!
{{Important|{{code|$lightwarptexture}}{{Ent|VertexLitGeneric}}上需要{{Ent|$bumpmap}}。如果未指定,将使用默认的!'''就像VMT中有{{Ent|$bumpmap}}一样!'''
{{Warning|这意味着所有与 {{Ent|$bumpmap}} 不兼容的参数也无法与 {{code|$lightwarptexture}} 配合使用。
{{Warning|这意味着所有不与{{Ent|$bumpmap}}兼容的参数也不适用于{{code|$lightwarptexture}}
* [[$detail#Parameters and Effects|$detailblendmode]] 参数5-9将无法正常工作(除非使用 {{Ent|$phong}} 时的5 & 6)。
* [[$detail#Parameters and Effects|$detailblendmode]] 5-9不起作用 - 当使用{{Ent|$phong}}时,5和6会起作用。
* {{Ent|$envmapmask}} 在非 {{L|Mapbase|2}} 引擎中无法正常工作。
* {{Ent|$envmapmask}}不起作用,除了在{{mapbase|2}}中。
* {{Ent|$selfillum_envmapmask_alpha}} 在任何分支中均无法正常工作。
* {{Ent|$selfillum_envmapmask_alpha}}在任何分支中都不起作用。
}} }}
}} }}
{{Note|在 {{src13|2}} 和 {{csgobranch|2}} 中,{{code|$lightwarptexture}} 需要与 {{Ent|$phong}} 一起使用,单独无效。}}
{{Note|在{{src13|2}}''''''{{csgobranch|2}}中,{{Ent|VertexLitGeneric}}上没有{{Ent|$phong}}时不起作用。}}
{{Note|{{code|$lightwarptexture}} {{Ent|LightmappedGeneric}} 中似乎在 {{csgobranch|2}} 中完全不存在。}}
{{Note|在{{csgobranch|2}}中,{{code|$lightwarptexture}}似乎根本不存在于{{Ent|LightmappedGeneric}}中。}}


{{Bug|在 {{Ent|LightmappedGeneric}} 和 {{Ent|WorldVertexTransition}} 中同时使用 {{Ent|$detail}} 或 {{Ent|$bumpmap2}} 时无效。}}
{{Bug|在{{Ent|LightmappedGeneric}}和{{Ent|WorldVertexTransition}}上使用{{Ent|$detail}}''''''{{Ent|$bumpmap2}}时不起作用。}}
{{Bug|使用 [[Glowing_Textures#.24selfillum|$selfillumfresnel]] 但未启用 {{Ent|$phong}} 时无效。}}
{{Bug|在不使用{{Ent|$phong}}的情况下使用[[Glowing_Textures#.24selfillum|$selfillumfresnel]]时不起作用。}}
{{Bug|{{Ent|$seamless_scale}} 一起使用时无效。}}
{{Bug|使用{{Ent|$seamless_scale}}时不起作用。}}


== 光偏移纹理 ==
== 光照扭曲纹理 ==
光偏移纹理是一条一维像素带。暗纹素将被着色为左侧的颜色,亮纹素将被着色为右侧的颜色。50% 灰色表示无颜色偏移。
光照扭曲纹理是一维像素条。暗色像素将使用左侧的颜色着色,亮色像素将使用右侧的颜色着色。50%灰色表示无着色。
{{note|光偏移在光照贴图的刷子和置换物上与顶点照明模型上表现略有不同。一个完全 50% 灰色的 {{code|$lightwarptexture}} 在刷子或置换物上看起来像没有光偏移一样,而在没有 [[$phong|phong]] 的模型上会表现为均匀受光(类似于GoldSrc的平面阴影纹理模式)。}}
{{note|光照扭曲在光照贴图的刷子和位移上与顶点光照模型略有不同。完全50%灰色的{{code|$lightwarptexture}}在刷子或位移上会表现为没有光照扭曲,而相同的{{code|$lightwarptexture}}在没有[[$phong|phong]]的模型上会导致模型均匀光照(类似于GoldSrc的平面着色纹理模式)。}}


=== VTF 参数 ===
=== VTF参数 ===
光偏移纹理应使用未压缩的 BGR888 格式,以避免光照渐变中出现不必要的颜色条纹{{ref|1}},并启用 UV 钳位。
光照扭曲纹理应使用未压缩的BGR888格式,以避免光照梯度上的颜色带{{ref|1}},并且应进行UV钳制。


如果使用 {{vtex|4}},请使用以下编译参数:
如果使用{{vtex|4}},请使用以下编译参数:
<pre>
<pre>
nocompress 1 // 禁用纹理压缩,防止颜色条纹
nocompress 1 // 禁用纹理压缩,以防止颜色带
nomip 1 // 禁用 mipmaps,在此情况下不必要
nomip 1 // 禁用mipmaps,在此情况下不需要
nolod 1 // 始终使用该纹理的全分辨率版本(由于本身分辨率较低)
nolod 1 // 始终使用此纹理的全分辨率版本(由于本身分辨率较低)
clamps 1 // 防止在光照极端条件下颜色混合
clamps 1 // 防止光照极端的色调混合在一起
clampt 1 // 可选?
clampt 1 // 可选?
stripalphachannel 1 // 如果存在,移除不必要的 alpha 通道
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]]
: 这是上方 {{L|Day of Defeat: Source|《反恐精英:起源》}} 屏幕截图中使用的光偏移纹理。它旨在为较暗的雪区域添加轻微的蓝色调,而不会影响较亮的区域。
: 这是上面{{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]]
: 适用于所有 {{L|Team Fortress 2|《军团要塞2》}} 角色,不仅是 Pyro。这种纹理创建了红色终止线的高对比阴影,体现了游戏独特的插画风格。
: 这应用于所有{{tf2|2}}角色,而不仅仅是Pyro。它创建了高对比度的阴影和红色调的终止线,这是游戏模仿的插画艺术的典型特征。
; 色调分层(自定义):[[File:Warp bw.png|border|自定义纹理]]
; 海报化(自定义):[[File:Warp bw.png|border|自定义纹理]]
: 这种自定义光偏移纹理创造了一种色调分层的“线稿”风格。然而,仅启用光偏移还不够:环境光必须设置为 0 以使未受光区域为黑色,世界光照必须具有视图依赖性以确保始终投射阴影。
: 此自定义扭曲纹理创建了海报化的“线稿”风格。然而,仅启用光照扭曲是不够的:环境光照必须为0以使未照亮区域变黑,并且世界光照必须依赖于观察者以确保阴影始终投射。
; 卡通渲染(自定义):[[File:Cel_lightwarp.png|border|自定义纹理]]
; 卡通着色(自定义):[[File:Cel_lightwarp.png|border|自定义纹理]]
: 卡通渲染通过用清晰的光照分界替代平滑的光照渐变,让对象看起来更加卡通化。
: 卡通着色可以通过用锐利的步骤替换平滑的光照梯度,使物体看起来更卡通化。


其他可能的 {{code|$lightwarptexture}} 用途包括增强对比度、调整顶点光照阴影转换、柔化高光等。
{{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>] 在 GameBanana 上</li>
<li>[https://gamebanana.com/mods/466641 Lightwarp Fixes <nowiki>[Team Fortress 2] [Mods]</nowiki> on GameBanana]
</ol>
</ol>


{{ACategory|Shader parameters|l}}
{{ACategory|Shader parameters}}

Revision as of 10:14, 28 January 2025

English (en)中文 (zh)Translate (Translate)
Info content.png
This page needs to be translated.
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 complies with the alternate languages guide.(en)

该技术首次用于胜利之日:起源 胜利之日:起源的雪地地图,例如Kalt。
$lightwarptexture军团要塞2 军团要塞2插画风格角色渲染的基石。
可以实现海报化的颜色效果,但光照必须严格控制。

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

Note.png注意:也可用于LightmappedGenericWorldVertexTransitionEyeRefract

注意事项

Icon-Important.png重要:$lightwarptexture必须在所有其他纹理之后指定,否则它将覆盖它们。
Icon-Important.png重要:确保纹理在VTF中被钳制,否则渲染会不正确。为此使用Clamp SClamp T图像标志
Icon-Important.png重要:$lightwarptextureVertexLitGeneric上需要$bumpmap。如果未指定,将使用默认的!就像VMT中有$bumpmap一样!
Warning.png警告:这意味着所有不与$bumpmap兼容的参数也不适用于$lightwarptexture
Note.png注意:起源2013 起源2013CS:GO 引擎分支 CS:GO 引擎分支中,VertexLitGeneric上没有$phong时不起作用。
Note.png注意:CS:GO 引擎分支 CS:GO 引擎分支中,$lightwarptexture似乎根本不存在于LightmappedGeneric中。
Icon-Bug.png错误:LightmappedGenericWorldVertexTransition上使用$detail$bumpmap2时不起作用。  [todo tested in ?]
Icon-Bug.png错误:在不使用$phong的情况下使用$selfillumfresnel时不起作用。  [todo tested in ?]
Icon-Bug.png错误:使用$seamless_scale时不起作用。  [todo tested in ?]

光照扭曲纹理

光照扭曲纹理是一维像素条。暗色像素将使用左侧的颜色着色,亮色像素将使用右侧的颜色着色。50%灰色表示无着色。

Note.png注意:光照扭曲在光照贴图的刷子和位移上与顶点光照模型略有不同。完全50%灰色的$lightwarptexture在刷子或位移上会表现为没有光照扭曲,而相同的$lightwarptexture在没有phong的模型上会导致模型均匀光照(类似于GoldSrc的平面着色纹理模式)。

VTF参数

光照扭曲纹理应使用未压缩的BGR888格式,以避免光照梯度上的颜色带[1],并且应进行UV钳制。

如果使用VTEX VTEX,请使用以下编译参数:

nocompress 1 // 禁用纹理压缩,以防止颜色带
nomip 1 // 禁用mipmaps,在此情况下不需要
nolod 1 // 始终使用此纹理的全分辨率版本(由于本身分辨率较低)
clamps 1 // 防止光照极端的色调混合在一起
clampt 1 // 可选?
stripalphachannel 1 // 移除不必要的alpha通道(如果存在)

示例

🖿ground/snow_warp.vtf (胜利之日:起源)
dod\materials\ground\snow_warp
这是上面胜利之日:起源 胜利之日:起源屏幕中使用光照扭曲纹理。它旨在为较暗的雪地添加微妙的蓝色色调,而不影响较亮的区域。
🖿models/player/pyro/pyro_lightwarp.vtf (军团要塞2)
tf\materials\models\player\pyro\pyro_lightwarp
这应用于所有军团要塞2 军团要塞2角色,而不仅仅是Pyro。它创建了高对比度的阴影和红色调的终止线,这是游戏模仿的插画艺术的典型特征。
海报化(自定义):自定义纹理
此自定义扭曲纹理创建了海报化的“线稿”风格。然而,仅启用光照扭曲是不够的:环境光照必须为0以使未照亮区域变黑,并且世界光照必须依赖于观察者以确保阴影始终投射。
卡通着色(自定义):自定义纹理
卡通着色可以通过用锐利的步骤替换平滑的光照梯度,使物体看起来更卡通化。

$lightwarptexture的其他可能用途包括对比度增强、调整顶点光照阴影过渡、高光软化等。

卡通着色效果。

参考

  1. Lightwarp Fixes [Team Fortress 2] [Mods] on GameBanana