$envmapmask: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
Line 39: Line 39:
===$selfillum_envmapmask_alpha===
===$selfillum_envmapmask_alpha===
  $selfillum_envmapmask_alpha <float>
  $selfillum_envmapmask_alpha <float>
* Defines that selfillum value comes from envmap mask alpha. {{todo|confirm: ie it uses the alpha channel of [[$envmapmask]]
* Defines that selfillum value comes from envmap mask alpha. {{todo|confirm: ie it uses the alpha channel of [[$envmapmask]]?}}
* Default value is ''0.0''.
* Default value is ''0.0''.
* Requires DirectX 9.
* Requires DirectX 9.

Revision as of 15:05, 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