$envmapmask: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
mNo edit summary
 
No edit summary
Line 1: Line 1:
#REDIRECT [[$envmap]]
<div style="float:right;padding:0 1em;background:#FFF;">__TOC__</div>
* The ''specular map'' or '''envmapmask''' affects how the surface reflects light from the [[$envmap]].
* The (greyscale) envmapmask defines shiney areas as black (0), and dull areas as white (255).
 
"$envmapmask" <texture>
* Masks the [[$envmap]] reflections according to the alpha channel of the named <code><texture></code>.
 
==VMT syntax example==
"[[VertexLitGeneric]]"
{
"[[$envmapmask]]" "props/tvscreen_test"
  "[[$envmapmasktransform]]" "center .5 .5 scale .25 .25 rotate 0 translate 0 0" //dx9 only
  "[[$envmapmaskscale]]" .25 //duplicates dx9 transform/scale (25%) for dx8 GPUs
  "[[$envmapmaskframe]]" ???
  "[[$selfillum_envmapmask_alpha]]" 1 //dx9 only
}
 
==Additional Parameters==
 
===$envmapmasktransform===
"$envmapmasktransform" <matrix>
* Adjusts [[UV mapping]] of [[$envmapmask]]
* The default is "center .5 .5 scale 1 1 rotate 0 translate 0 0".
* DirectX 9 or HDR required. (LightmappedGeneric, VertexlitGeneric, UnlitGeneric)
* DirectX 8 uses [[$envmapmaskscale]] instead.
 
 
===$envmapmaskscale===
"$envmapmaskscale" <float>
* Scales the [[$envmapmask]] by the <nowiki><float></nowiki> value.
* DirectX 8 required. (LightmappedGeneric, VertexlitGeneric, UnlitGeneric)
* Also see [[$envmapmasktransform]].
 
 
===$envmapmaskframe===
"$envmapmaskframe" <integer>
* ?
 
===$selfillum_envmapmask_alpha===
$selfillum_envmapmask_alpha <float>
* Defines that selfillum value comes from envmap mask alpha. {{todo|confirm: ie it uses the alpha channel of [[$envmapmask]]
* Default value is ''0.0''.
* Requires DirectX 9.
* A new parameter.
* See also [[$selfillum]]
 
==Alternative Methods==
* Rather than creating a whole new VTF just for the [[$envmapmask]], you can use the alpha channel of either the [[$basetexture]] or [[$bumpmap]] to store the Specular Map. If so, transform, etc parameters applied to the basetexture/normalmap will also apply to the Specular map.
 
===$basealphaenvmapmask===
"$basealphaenvmapmask" 1
* Use the alpha channel of the [[$basetexture]] texture as the specular map.
 
===$normalmapalphaenvmapmask===
"$normalmapalphaenvmapmask" 1
* Use the alpha channel of the [[$bumpmap]] texture as the specular map.
 
==See Also==
* compare [[$phong]].
 
 
 
[[Category:List of Shader Parameters]]
[[Category:List of Shader Parameters]]
[[Category:VMT Reflections]]
[[Category:VMT Reflections]]

Revision as of 13:17, 5 April 2008

  • The specular map or envmapmask affects how the surface reflects light from the $envmap.
  • The (greyscale) envmapmask defines shiney areas as black (0), and dull areas as white (255).
"$envmapmask" <texture>
  • Masks the $envmap reflections according to the alpha channel of the named <texture>.

VMT syntax example

"VertexLitGeneric"
{
"$envmapmask" "props/tvscreen_test"
  "$envmapmasktransform" "center .5 .5 scale .25 .25 rotate 0 translate 0 0"	//dx9 only
  "$envmapmaskscale" .25			//duplicates dx9 transform/scale (25%) for dx8 GPUs
  "$envmapmaskframe" ???
  "$selfillum_envmapmask_alpha" 1	//dx9 only
}

Additional Parameters

$envmapmasktransform

"$envmapmasktransform" <matrix>
  • Adjusts UV mapping of $envmapmask
  • The default is "center .5 .5 scale 1 1 rotate 0 translate 0 0".
  • DirectX 9 or HDR required. (LightmappedGeneric, VertexlitGeneric, UnlitGeneric)
  • DirectX 8 uses $envmapmaskscale instead.


$envmapmaskscale

"$envmapmaskscale" <float>


$envmapmaskframe

"$envmapmaskframe" <integer>
  • ?

$selfillum_envmapmask_alpha

$selfillum_envmapmask_alpha <float>
  • Defines that selfillum value comes from envmap mask alpha. {{todo|confirm: ie it uses the alpha channel of $envmapmask
  • Default value is 0.0.
  • Requires DirectX 9.
  • A new parameter.
  • See also $selfillum

Alternative Methods

  • Rather than creating a whole new VTF just for the $envmapmask, you can use the alpha channel of either the $basetexture or $bumpmap to store the Specular Map. If so, transform, etc parameters applied to the basetexture/normalmap will also apply to the Specular map.

$basealphaenvmapmask

"$basealphaenvmapmask" 1
  • Use the alpha channel of the $basetexture texture as the specular map.

$normalmapalphaenvmapmask

"$normalmapalphaenvmapmask" 1
  • Use the alpha channel of the $bumpmap texture as the specular map.

See Also