$phong: Difference between revisions
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
 Note:Phong shading for
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.
 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
Note:Phong shading for  Mapbase, but it is implemented differently.
 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
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.
 Insurgency.
 Warning:There are some caveats regarding $normalmapalphaenvmapmask and $selfillumfresnel when using $phong!
Warning:There are some caveats regarding $normalmapalphaenvmapmask and $selfillumfresnel when using $phong!
 
  
Brush Shader Parameters (only in 
		
	
| m (→Colors:  fixing where placed notes about $rimlight tint) | m (Phong is not only for diffuse reflections, but also for specular highlights. ie.: at high $phongboost levels) | ||
| Line 2: | Line 2: | ||
| [[File:Alyx phong closeup.jpg|thumb|200px|Phong shading provides Alyx's skin, hairband and lip highlights.]] | [[File:Alyx phong closeup.jpg|thumb|200px|Phong shading provides Alyx's skin, hairband and lip highlights.]] | ||
| {{Shaderparam|$phong|since=Source 2006|shader1=VertexLitGeneric|shader2=LightmappedGeneric|shader3=WorldVertexTransition}} It provides diffuse reflections, masked by a texture  | {{Shaderparam|$phong|since=Source 2006|shader1=VertexLitGeneric|shader2=LightmappedGeneric|shader3=WorldVertexTransition}} It provides [[Wikipedia:Diffuse_reflection|diffuse reflections]] at low intensity and [[Wikipedia:Specular_highlights|specular highlights]] at apex intensity, masked by a texture which control per-texel its intensity. For a full explanation, see [[Phong materials]]. | ||
| {{Note|Phong shading for <code>LightmappedGeneric</code> and <code>WorldVertexTransition</code> is only available in {{csgobranch|4}}. It requires the material to be lit by the sunlight from a {{ent|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 <code>LightmappedGeneric</code> and <code>WorldVertexTransition</code> is only available in {{csgobranch|4}}. It requires the material to be lit by the sunlight from a {{ent|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 <code>LightmappedGeneric</code> is also available in {{mapbase|4}}, but it is implemented differently.}} | {{Note|Phong shading for <code>LightmappedGeneric</code> is also available in {{mapbase|4}}, but it is implemented differently.}} | ||
Revision as of 17:23, 14 April 2023
Template:Shaderparam 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.
 Note:Phong shading for
Note:Phong shading for LightmappedGeneric and WorldVertexTransition is only available in  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.
 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
Note:Phong shading for LightmappedGeneric is also available in  Mapbase, but it is implemented differently.
 Mapbase, but it is implemented differently.Syntax
$phong <bool>
 Note:All parameters in the following example must be specified in the material, otherwise Phong shading won't show up at all, except in
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.
 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:There are some caveats regarding $normalmapalphaenvmapmask and $selfillumfresnel when using $phong!
Warning: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 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.
 Counter-Strike: Global Offensive using tile/hr_t/inferno/tile_a. Note the complete absence of the reflection in the shaded area.
 Counter-Strike: Global Offensive using tile/hr_t/inferno/tile_a. Note the complete absence of the reflection in the shaded area.
 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  )
)
$phongmaskcontrastbrightness
$phongamount
$phongbasetint
Console Commands
- mat_phong <boolean>
- Disable or enable phong shading. Default 1.




























