$envmapmask: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
Line 20: Line 20:
===$envmapmasktransform===
===$envmapmasktransform===
  "$envmapmasktransform" <matrix>
  "$envmapmasktransform" <matrix>
* Adjusts [[UV mapping]] of [[$envmapmask]]
* Adjusts [[UV map]]ping of [[$envmapmask]]
* The default is "center .5 .5 scale 1 1 rotate 0 translate 0 0".
{{VMT UVtransform}}
* DirectX 9 or HDR required. (LightmappedGeneric, VertexlitGeneric, UnlitGeneric)
* DirectX 9 or HDR required. (LightmappedGeneric, VertexlitGeneric, UnlitGeneric)
* DirectX 8 uses [[$envmapmaskscale]] instead.
* DirectX 8 uses [[$envmapmaskscale]] instead.


===$envmapmaskscale===
===$envmapmaskscale===

Revision as of 03:20, 7 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>
The default position is center .5 .5 scale 1 1 rotate 0 translate 0 0.
  1. center defines the point of rotation. Only useful if rotate is being used.
  2. scale fits the texture into the material the given number of times. 2 1 is a 50% scale in the horizontal X axis while the vertical Y axis is still at original scale.
  3. rotate rotates the texture counter-clockwise in degrees. Accepts any number, including negatives.
  4. translate shifts the texture by the given numbers. .5 will shift it half-way. 1 will shift it once completely over, which is the same as not moving it at all.
Note.pngNote:All values must be included!
Icon-Bug.pngBug:Scaling the texture may cause odd issues where the Texture Lock tool in Hammer will not actually lock the texture in place.  [todo tested in ?]
Icon-Bug.pngBug:Rotating textures applied on brushes will rotate around the map origin (confirm: Orangebox engine only?). A fix for this is to change the center position in the VMT to the brush's origin.  [todo tested in ?]
  • 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