$phong: Difference between revisions
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
Note:Phong shading for 
 CS:GO engine branch. 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.
Note:Phong shading for 
 Mapbase, but it is implemented differently.
Note:All parameters in the following example must be specified in the material, otherwise Phong shading won't show up at all, except in 
 Insurgency.
Warning:There are some caveats regarding $normalmapalphaenvmapmask and $selfillumfresnel when using $phong!
  
Brush Shader Parameters (only in 
		
	
Thunder4ik (talk | contribs) m (clean up, replaced: See Also → See also, {{Language subpage → {{langsp)  | 
				SirYodaJedi (talk | contribs)  m (→See also:  split)  | 
				||
| Line 104: | Line 104: | ||
* {{ent|$lightwarptexture}}  | * {{ent|$lightwarptexture}}  | ||
* {{ent|$rimlight}}  | * {{ent|$rimlight}}  | ||
== External links ==  | |||
* [https://tf2maps.net/threads/phong-on-brushes-the-hacky-way.26765 $Phong on brushes*: The Hacky Way (a TF2maps.net guide on how to fake $Phong on brushes for games prior to CS:GO)]  | * [https://tf2maps.net/threads/phong-on-brushes-the-hacky-way.26765 $Phong on brushes*: The Hacky Way (a TF2maps.net guide on how to fake $Phong on brushes for games prior to CS:GO)]  | ||
*[https://share.substance3d.com/libraries/6595 SubstancePainter Source Engine Complex Phong Shader]  | *[https://share.substance3d.com/libraries/6595 SubstancePainter Source Engine Complex Phong Shader]  | ||
Revision as of 13:01, 19 January 2024
$phong  is a   s2  available in all 
 Source games since 
 Source 2006. It is also available on the 
LightmappedGeneric and 
WorldVertexTransition shaders in all games since 
 Counter-Strike: Global Offensive. It provides diffuse reflections at low intensity and specular highlights at apex intensity, masked by a texture which control per-texel its intensity. For a full explanation, see Phong materials.
LightmappedGeneric and WorldVertexTransition is only available in LightmappedGeneric is also available in Syntax
$phong <bool>
- 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
- Using $selfillumfresnel without $normalmapalphaenvmapmask will mask the $envmap using the $basetexture's alpha channel.
 - Using $selfillumfresnel with $normalmapalphaenvmapmask will multiply the $envmap by 
0.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 
$basemapalphaphongmaskor$basemapluminancephongmaskwill override it. 
$bumpmap
$basemapalphaphongmask
$basemapluminancephongmask
$phongexponent
$phongexponenttexture
$phongexponentfactor
$invertphongmask
$forcephong
$diffuseexp
$shinyblood
$shinybloodexponent
Brightness
$phongboost
$phongfresnelranges
$phongdisablehalflambert
Colors
$phongalbedotint
$phongalbedoboost
Brush phong in 
 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 
)(also in 
)
$phongmaskcontrastbrightness
$phongamount
$phongbasetint
Console Commands
- mat_phong <boolean>
 - Disable or enable phong shading. Default 1.
 
See also
- Phong materials
 - $envmap (environment map)
 - $lightwarptexture
 - $rimlight