This article's documentation is for anything that uses the Source engine. Click here for more information.

$phong

From Valve Developer Community
Revision as of 17:20, 9 January 2025 by Darkness8163 (talk | contribs) (→‎Colors: fixed a typo in the word latter)
Jump to navigation Jump to search
English (en)Español (es)Русский (ru)中文 (zh)Translate (Translate)

$phong is a material shader parameter for the VertexLitGeneric shader available in all Source Source games since Source 2006 Source 2006.

Phong shading provides Alyx's skin, hairband and lip highlights.

It is also available on the LightmappedGeneric and WorldVertexTransition shaders in all games since Counter-Strike: Global Offensive Counter-Strike: Global Offensive(also in Garry's ModXengineMapbase). It provides Wikipedia icon diffuse reflections at low intensity and Wikipedia icon specular highlights at apex intensity, masked by a texture which control per-texel its intensity. For a full explanation, see Phong materials.

Note.pngNote:Phong shading for LightmappedGeneric and WorldVertexTransition is only available in CS:GO engine branchStrata Source. 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. ((in all games since Strata Source) env_projectedtexture also affects brushes with phong enabled)
Icon-Bug.pngBug*:Garry's Mod Garry's Mod reads lighting direction for brush phong from env_sun instead; maps with multiple suns may not get accurate phong reflections on brushes.
Note.pngNote:Phong shading for LightmappedGeneric is also available in Mapbase Mapbase, but it is implemented differently.

Syntax

$phong <bool>
Note.pngNote:All parameters in the following example must be specified in the material, otherwise Phong shading won't show up at all, except in Insurgency Insurgency.
Todo: Other games that don't require all phong parameters present (likely Portal 2 and up)
VertexLitGeneric
{
	$phong 1

	$bumpmap				[texture]
	$phongexponent			5			// either/or
	$phongexponenttexture	[texture]	// either/or
	$phongboost				1.0
	$phongfresnelranges		"[0 0.5 1]"
}

Parameters

Masking

Warning.pngWarning:There are some caveats regarding $normalmapalphaenvmapmask and $selfillumfresnel when using $phong!


$bumpmap $basemapalphaphongmask $basemapluminancephongmask $phongexponent $phongexponenttexture $phongexponentfactor $invertphongmask $forcephong $diffuseexp $shinyblood $shinybloodexponent

Brightness

$phongboost $phongfresnelranges $phongdisablehalflambert

Colors

$phongalbedotint

An example model showing how AlbedoTint appears on a model.

$phongalbedoboost

The Hunter without and with its $phongwarptexture, showing how it affects the Phong reflection.

$phongtint

Breakdown of the $phongwarptexture: computed coordinates, texture and result

$phongwarptexture

Brush phong in Counter-Strike: Global Offensive Counter-Strike: Global Offensive using tile/hr_t/inferno/tile_a. Note the complete absence of the reflection in the shaded area.

Brush Shader Parameters

(only in CS:GO engine branch)(also in Garry's Mod)

$phongmaskcontrastbrightness $phongamount $phongbasetint

Console Commands

mat_phong <booleanRedirectInput/boolean>
Disable or enable phong shading. Default 1.

See also

External links