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

Zh/$lightwarptexture

From Valve Developer Community
< Zh
Revision as of 04:08, 30 December 2024 by MoRanYue (talk | contribs) (chatgpt translation)
Jump to navigation Jump to search

该技术首次应用于《反恐精英:起源》(en)的雪地图,例如Kalt。
$lightwarptexture《军团要塞2》(en)独特角色渲染风格的重要元素。
可以实现色调分层,但需要对光照进行严格控制。

$lightwarptexture(DX9+ SM3)是一个用于着色器 VertexLitGeneric材质(en)着色器(en)参数,可在所有的 起源 起源 游戏,自从 起源2006 起源2006 以来中使用。 它根据明暗程度调整纹素的颜色,可以看作是局部的颜色校正

Note.png注意:同样适用于LightmappedGenericWorldVertexTransitionEyeRefract

注意事项

Icon-Important.png重要:$lightwarptexture 必须在所有其他纹理之后指定,否则会覆盖它们。
Icon-Important.png重要:确保纹理在VTF中启用钳位模式,否则会渲染错误。为此,请使用“Clamp S”和“Clamp T”图像标志
Icon-Important.png重要:VertexLitGeneric 中使用 $lightwarptexture 需要一个 $bumpmap。如果未指定,将使用默认的凹凸贴图!默认贴图将使 $bumpmap 看起来已在VMT中指定!
Warning.png警告:这意味着所有与 $bumpmap 不兼容的参数也无法与 $lightwarptexture 配合使用。
Note.png注意:起源2013 起源2013CS:GO 引擎分支 CS:GO 引擎分支 中,$lightwarptexture 需要与 $phong 一起使用,单独无效。
Note.png注意:$lightwarptextureLightmappedGeneric 中似乎在 CS:GO 引擎分支 CS:GO 引擎分支 中完全不存在。
Icon-Bug.png错误:LightmappedGenericWorldVertexTransition 中同时使用 $detail$bumpmap2 时无效。  [todo tested in ?]
Icon-Bug.png错误:使用 $selfillumfresnel 但未启用 $phong 时无效。  [todo tested in ?]
Icon-Bug.png错误:$seamless_scale 一起使用时无效。  [todo tested in ?]

光偏移纹理

光偏移纹理是一条一维像素带。暗纹素将被着色为左侧的颜色,亮纹素将被着色为右侧的颜色。50% 灰色表示无颜色偏移。

Note.png注意:光偏移在光照贴图的刷子和置换物上与顶点照明模型上表现略有不同。一个完全 50% 灰色的 $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
这是上方 《反恐精英:起源》(en) 屏幕截图中使用的光偏移纹理。它旨在为较暗的雪区域添加轻微的蓝色调,而不会影响较亮的区域。
🖿models/player/pyro/pyro_lightwarp.vtf (军团要塞2)
tf\materials\models\player\pyro\pyro_lightwarp
适用于所有 《军团要塞2》(en) 角色,不仅是 Pyro。这种纹理创建了红色终止线的高对比阴影,体现了游戏独特的插画风格。
色调分层(自定义):自定义纹理
这种自定义光偏移纹理创造了一种色调分层的“线稿”风格。然而,仅启用光偏移还不够:环境光必须设置为 0 以使未受光区域为黑色,世界光照必须具有视图依赖性以确保始终投射阴影。
卡通渲染(自定义):自定义纹理
卡通渲染通过用清晰的光照分界替代平滑的光照渐变,让对象看起来更加卡通化。

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

卡通渲染效果预览。

参考资料

  1. Lightwarp Fixes [Team Fortress 2] [Mods] 在 GameBanana 上