$phong
< Zh
$phong
是一个用于着色器 VertexLitGeneric 的材质着色器 参数,可在所有的 起源 游戏,自从 起源2006 以来中使用。
它提供低强度的 漫反射 和顶点强度的 镜面高光,由控制每个纹素强度的纹理遮罩。有关完整解释,请参见 冯氏材质 。
注意:
LightmappedGeneric
和 WorldVertexTransition
的冯氏着色功能只在 CS:GO 引擎分支 中可用。It requires the material to be lit by the sunlight from a env_cascade_light
entity to work properly and uses the dynamic shadows generated by it as a mask on top of the traditional phong masking.注意:在 Mapbase中也提供了
LightmappedGeneric
的冯氏着色功能,但实现方式有所不同。语法
$phong <bool >
注意:All parameters in the following example must be specified in the material, otherwise Phong shading won't show up at all, except in Insurgency.
- 待完善: Other games that don't require all phong parameters present (likely Portal 2 and up)
VertexLitGeneric
{
$phong 1
$bumpmap [贴图]
$phongexponent 5 // either/or
$phongexponenttexture [贴图] // either/or
$phongboost 1.0
$phongfresnelranges "[0 0.5 1]"
}
参数
蒙版
警告:There are some caveats regarding
$normalmapalphaenvmapmask
and $selfillumfresnel when using $phong
!- Using $selfillumfresnel without
$normalmapalphaenvmapmask
will mask the$envmap
using the$basetexture
's alpha channel. - Using $selfillumfresnel with
$normalmapalphaenvmapmask
will multiply the$envmap
by0.0f
. Effectively disabling the effect! - When not using $selfillumfresnel. The mask used for
$envmap
will be the$basetexture
's alpha channel unless$normalmapalphaenvmapmask
is also used. - If
$normalmapalphaenvmapmask
is used, the$bumpmap
's alpha channel will be used for Phong masking. Using either$basemapalphaphongmask
or$basemapluminancephongmask
will override it.
Phong requires mask. The alpha channel of a bump map acts as a Phong mask by default.
Shader(s): VertexLitGeneric
Use
$basetexture
's alpha channel as the Phong mask instead of $bumpmap
's alpha channel .
警告:Using this with
$normalmapalphaenvmapmask
will override the mask used for $envmap
to be the contents of the $basetexture
's alpha channel!警告: Garry's Mod Using this with
$normalmapalphaenvmapmask
and $envmap
renders in $envmap
and $phong
be masked by both $basemapalphaphongmask
alpha channel and $normalmapalphaenvmapmask
alpha channel.
Shader(s): VertexLitGeneric
Mask phong intensity based on the brightness of the
$basetexture
.
错误:Basetexture Luminance will replace the mask used for
$envmap
, if $normalmapalphaenvmapmask
is used. [todo tested in?]错误:Doesn't work in Garry's Mod. [todo tested in?]
A global exponent value. Overrides an exponent mask if present.
$phongexponent2
is forWorldVertexTransition
's second material in CS:GO 引擎分支.
Shader(s): VertexLitGeneric
A per-texel exponent map. In an exponent map:
- Red channel: Exponent mask (size of highlight, 0-255, where a value of 0 is a large highlight, 255 small.)
- Green channel: Albedo tint mask (only if
$phongalbedotint 1
, 0-255, where a value of 0 is no tint, 255 full tint.) - Blue channel: Nothing.
- Alpha channel:
$rimlight
mask (only if$rimmask 1
.)
- 注意:
LightmappedGeneric
andWorldVertexTransition
do not have support for$phongexponenttexture
. You must use$phongexponent
instead.
Shader(s): VertexLitGeneric
Multiply the exponent from the
$phongexponenttexture
by this amount. 提示: The default value of this parameter is
"0.0"
. However, a more reasonable default value would be "149.0"
Shader(s): VertexLitGeneric
Shader(s): VertexLitGeneric
Force phong shading on phong-using materials even at low GPU levels when
mat_phong
is disabled.
Shader(s): VertexLitGeneric, Infected
Diffuse exponent used for dynamic lights only.
注意:have this with
$halflambert
greatly decrease it effect.
Shader(s): VertexLitGeneric, Infected
Derive phong mask from areas that are more red than others. Only when variation is disabled.
Shader(s): VertexLitGeneric, Infected
Exponent for the above.
亮度
$phongboost <float >
Shader(s): VertexLitGeneric, LightmappedGeneric((仅存在于 之中))
Phong brightness factor. Larger values create a more intense highlight, useful for surfaces like metal and glass.
See Phong Fresnel ranges. Default is
"[0 0.5 1]"
.
- 注意:
$envmap
is also affected by these fresnel ranges if both it and Phong are enabled in a material. - 注意: drives the x component of a phongwarptexture if specified.
Shader(s): VertexLitGeneric
Disables forced half-lambertian shading on Phong materials.
注意:This parameter is effectively forced on in CS:GO 引擎分支 due to
$halflambert
being disabled.色彩
Shader(s): VertexLitGeneric
Tints the phong reflection by the color of the
$basetexture
. The amount of tint is defined by the green channel of $phongexponenttexture
. A $phongexponenttexture
must be specified in order for $phongalbedotint
to work.
- 警告:
$phongalbedotint
cannot be used with$phongtint
. The later will disable the effect. - 注意:
$phongalbedotint
works by multiplying the$basetexture
over the reflection, without darkening the albedo. The reflection will get dimmer as a result, so account for this in the phong mask or with$phongboost
. - 注意:
$phongalbedotint
will tint highlights by the original color of the$basetexture
even when the material is tinted by$color2
orrendercolor.
Shader(s): VertexLitGeneric
Shader(s): VertexLitGeneric
Color tint of the phong reflection.
- 警告:This will override
$phongalbedotint
if both are used. - 注意: Also tints
$rimlight
Shader(s): VertexLitGeneric
Used to create an iridescence effect, as seen on Episode Two's Hunters .
- The highlight is multiplied with a texture. The coordinates of the sampled pixel are as follows:
- x: 1 - (distance to the center of the highlight)
- y: 1 - (fresnel component as computed by Phong Fresnel ranges)
- 注意:Disables the initial phongfresnelranges masking
笔刷/固体着色器参数(仅存在于 之中)
Shader(s): LightmappedGeneric, WorldVertexTransition
The first value controls the contrast level between light and dark areas in the mask, and the second value controls the overall brightness.
$phongmaskcontrastbrightness2
is forWorldVertexTransition
's second material.- 待完善: Find out the range of both values.
Shader(s): LightmappedGeneric, WorldVertexTransition
The first 3 values control the color tint, and the fourth value controls the brightness. The fourth value can go beyond 1, but affects the brightness of the whole texture, not just the highlight.
$phongamount2
is forWorldVertexTransition
's second material.
Shader(s): LightmappedGeneric, WorldVertexTransition
Allows the
$basetexture
and/or $basetexture2
to tint the color of the Phong highlight.控制台命令
mat_phong
<boolean >- 禁用或启用冯氏反射渲染。默认为 1。