$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 
		
	
|  (Phong does bump accordingly diffuse bump and under some cveats. Add more details for $diffuseexp. $phongalbedoboost bug links to $detail page) | m (→Colors:  fixing where placed notes about $rimlight tint) | ||
| Line 71: | Line 71: | ||
| : {{Warning|<code>$phongalbedotint</code> cannot be used with <code>$phongtint</code>. The later will disable the effect.}} | : {{Warning|<code>$phongalbedotint</code> cannot be used with <code>$phongtint</code>. The later will disable the effect.}} | ||
| : {{Note|<code>$phongalbedotint</code> works by multiplying the <code>$basetexture</code> 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 <code>$phongboost</code>.}} | : {{Note|<code>$phongalbedotint</code> works by multiplying the <code>$basetexture</code> 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 <code>$phongboost</code>.}} | ||
| : {{Note|<code>$phongalbedotint</code> will tint highlights by the original color of the <code>$basetexture</code> even when the material is tinted by <code>$color2</code> or <code>rendercolor.</code> | : {{Note|<code>$phongalbedotint</code> will tint highlights by the original color of the <code>$basetexture</code> even when the material is tinted by <code>$color2</code> or <code>rendercolor.</code>}}|since={{src07}}|shaders=VertexLitGeneric}} | ||
| {{MatParam|$phongalbedoboost|float|Phong albedo overbrightening factor. Ranges 0-255. | {{MatParam|$phongalbedoboost|float|Phong albedo overbrightening factor. Ranges 0-255. | ||
| : {{note| This will multiply the tint that is being applied to phong from $phongalbedotint.}} | : {{note| This will multiply the tint that is being applied to phong from $phongalbedotint.}} | ||
| Line 78: | Line 77: | ||
| [[File:Phongwarp example.png|thumb|200px|The Hunter without and with its <code>$phongwarptexture</code>, showing how it affects the Phong reflection.]] | [[File:Phongwarp example.png|thumb|200px|The Hunter without and with its <code>$phongwarptexture</code>, showing how it affects the Phong reflection.]] | ||
| {{MatParam|$phongtint|RGB matrix|Color tint of the phong reflection. | {{MatParam|$phongtint|RGB matrix|Color tint of the phong reflection. | ||
| : {{Warning|This will override <code>$phongalbedotint</code> if both are used.}}|since={{src07}}|shaders=VertexLitGeneric}} | : {{Warning|This will override <code>$phongalbedotint</code> if both are used.}} | ||
| : {{note| Also tints {{ent|$rimlight}}}}|since={{src07}}|shaders=VertexLitGeneric}} | |||
| [[File:Phongwarp_coordinate_guide.png|thumb|200px|Breakdown of the $phongwarptexture: computed coordinates, texture and result]] | [[File:Phongwarp_coordinate_guide.png|thumb|200px|Breakdown of the $phongwarptexture: computed coordinates, texture and result]] | ||
| {{MatParam|$phongwarptexture|texture|Used to create an iridescence effect, as seen on Episode Two's [[npc_hunter|Hunters]]. | {{MatParam|$phongwarptexture|texture|Used to create an iridescence effect, as seen on Episode Two's [[npc_hunter|Hunters]]. | ||
Revision as of 22:30, 20 March 2023
Template:Shaderparam It provides diffuse reflections, masked by a texture to control its intensity per-texel. 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.
 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.