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

$lightwarptexture

From Valve Developer Community
< Zh
Jump to navigation Jump to search
English (en)中文 (zh)Translate (Translate)

该技术首次应用于胜利之日:起源 胜利之日:起源的雪地地图,例如Kalt。
$lightwarptexture军团要塞2 军团要塞2卡通风格角色渲染的核心要素。
可实现分阶色彩效果,但需严格控制光照。

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

Note.png注意:也可用于LightmappedGeneric(en)WorldVertexTransition(en)EyeRefract(en)

注意事项

Icon-Important.png重要:$lightwarptexture必须在所有其他纹理之后指定,否则会覆盖其他纹理。
Icon-Important.png重要:确保纹理在VTF中启用钳位模式,否则渲染会异常。需使用Clamp SClamp T图像标志(en)
Icon-Important.png重要:VertexLitGeneric$lightwarptexture需要$bumpmap。若未指定,将自动使用默认法线贴图!效果等同于在VMT中声明了$bumpmap
Warning.png警告: 这意味着所有与$bumpmap冲突的参数也会与此参数冲突:
Note.png注意:起源2013 起源2013CS:GO 引擎分支 CS:GO 引擎分支中,VertexLitGeneric必须启用$phong才能使用本参数。
Note.png注意:CS:GO 引擎分支 CS:GO 引擎分支LightmappedGeneric似乎完全未实现$lightwarptexture
Icon-Bug.png错误:LightmappedGenericWorldVertexTransition上同时使用$detail$bumpmap2会导致失效。  [todo tested in ?]
Icon-Bug.png错误:未启用$phong时,$selfillumfresnel(en)会导致失效。  [todo tested in ?]
Icon-Bug.png错误:使用$seamless_scale时失效。  [todo tested in ?]

光扭曲纹理

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

Note.png注意:光照贴图笔刷/位移面与顶点光照模型的光扭曲效果略有差异。完全50%灰度的$lightwarptexture在笔刷/位移面上会呈现无光扭曲效果,而相同纹理在未启用$phong(en)的模型上会导致均匀光照(类似GoldSrc的平面着色模式)。

VTF参数

光扭曲纹理应使用未压缩的BGR888格式以避免光照渐变中的色阶断层[1],并启用UV钳位。

使用VTEX VTEX时,建议编译参数:

nocompress 1 // 禁用纹理压缩,防止色阶断层
nomip 1      // 禁用mipmap(低分辨率纹理无需生成)
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