$phong
< Zh
Jump to navigation
Jump to search
$phong
是一个用于着色器 VertexLitGeneric 的材质着色器 参数,可在所有的 起源 游戏,自从
起源2006 以来中使用。
此参数同样适用于 LightmappedGeneric 和 WorldVertexTransition shaders,并在所有 反恐精英:全球攻势 及以后的游戏中可用(也存在于
之中)。它通过一个纹理控制每个 texel 的强度,提供了
diffuse reflection 的低强度反射以及
specular highlight 的峰值高光。详细说明请参见 Phong materials。

LightmappedGeneric
和 WorldVertexTransition
的 Phong 着色仅在 



LightmappedGeneric
的 Phong 着色在 
$phong <bool>


- 待完善: 记录其他不需要所有Phong参数的游戏(可能包括Portal 2及其更高版本)。
VertexLitGeneric
{
$phong 1
$bumpmap [texture] // 表面的法线贴图
$phongexponent 5 // Phong指数值(任选其一)
$phongexponenttexture [texture] // 控制Phong指数的纹理(任选其一)
$phongboost 1.0 // 高光强度的倍增系数
$phongfresnelranges "[0 0.5 1]" // 控制反射强度的菲涅耳范围设置
}
遮罩

- 使用$selfillumfresnel而不使用$normalmapalphaenvmapmask时,$envmap将使用$basetexture的alpha通道作为遮罩。
- 使用$selfillumfresnel并启用$normalmapalphaenvmapmask时,$envmap将乘以
0.0f
,实际上禁用了该效果! - 当不使用$selfillumfresnel时,$envmap所用的遮罩将是$basetexture的alpha通道,除非也使用了$normalmapalphaenvmapmask。
- 如果使用了$normalmapalphaenvmapmask,则将使用$bumpmap的alpha通道作为Phong遮罩,但使用
$basemapalphaphongmask
或$basemapluminancephongmask
将会覆盖此行为。
$bumpmap
$basemapalphaphongmask
$basemapluminancephongmask
$phongexponent
$phongexponenttexture
$phongexponentfactor
$invertphongmask
$forcephong
$diffuseexp
$shinyblood
$shinybloodexponent
亮度
$phongboost
$phongfresnelranges
$phongdisablehalflambert
颜色

在
反恐精英:全球攻势中使用tile/hr_t/inferno/tile_a的刷子Phong效果。注意阴影区域完全缺乏反射。

刷子着色器参数
$phongmaskcontrastbrightness
$phongamount
$phongbasetint
控制命令
控制台变量/命令 | 参数或默认值 | 描述符 | 效果 |
---|---|---|---|
mat_phong | bool | 禁用或启用Phong阴影。默认值为1。 |
另请参阅
外部链接
- $Phong on brushes*: The Hacky Way - TF2maps.net上的指南,解释了如何在CS:GO之前的游戏中伪造$Phong对刷子进行渲染。也可用于伪造在Vertex光照下进行点光源处理的静态模型
- SubstancePainter Source Engine Complex Phong Shader - 提供Substance Painter对Source引擎的复杂Phong着色器