$envmapmask: Difference between revisions
Jump to navigation
Jump to search
Note:If you do this, transformations and other such parameters applied to the base texture/normal map will also apply to the specular mask.
TomEdwards (talk | contribs) No edit summary |
|||
Line 1: | Line 1: | ||
{{toc-right}} | |||
The ''specular mask'' or '''envmapmask''' affects how strongly the surface reflects light from the [[$envmap]]. It is a greyscale image in which entirely reflective areas are black and entirely matte areas are white. | |||
==VMT syntax example== | ==VMT syntax example== | ||
$envmapmask <texture> | |||
[[VertexLitGeneric]] | |||
{ | { | ||
[[$envmap]] env_cubemap | |||
'''$envmapmask "props/tvscreen_test"''' | |||
$envmapmasktransform "center .5 .5 scale .25 .25 rotate 0 translate 0 0" ''//dx9 only'' | |||
$envmapmaskscale .25 ''// dx8 only'' | |||
$envmapmaskframe 1 | |||
$selfillum_envmapmask_alpha 1 ''//dx9 only'' | |||
} | } | ||
==Additional Parameters== | ==Additional Parameters== | ||
; <code>$envmapmasktransform <matrix></code> | |||
: Adjusts [[UV map]]ping of <code>$envmapmask</code>. | |||
: DirectX 8 and below use <code>$envmapmaskscale</code> instead. | |||
{{VMT UVtransform}} | {{VMT UVtransform}} | ||
; <code>$envmapmaskscale <[[float]]></code> | |||
: Scales the <code>$envmapmask</code> by the given value. | |||
: See also <code>$envmapmasktransform</code>, above. | |||
: Requires DirectX 8. | |||
; <code>$envmapmaskframe <[[integer]]></code> | |||
: The frame of an animated texture to use as the mask. | |||
; <code>$selfillum_envmapmask_alpha <[[bool]]></code> | |||
: Derives [[self-illumination]] values from the [[alpha channel]] of <code>$envmapmask</code>. | |||
: Requires DirectX 9. | |||
: See also <code>[[$selfillum]]</code>. | |||
==Alternative Methods== | ==Alternative Methods== | ||
Rather than creating a whole new VTF just for a specular mask, you can use the alpha channel of either the [[$basetexture]] or [[$bumpmap]]. | |||
{{note|If you do this, transformations and other such parameters applied to the base texture/normal map will also apply to the specular mask.}} | |||
; <code>$basealphaenvmapmask <bool></code> | |||
: Use the alpha channel of [[$basetexture]] as the specular mask. | |||
; <code>$normalmapalphaenvmapmask <bool></code> | |||
: Use the alpha channel of [[$bumpmap]] as the specular mask. | |||
==See Also== | |||
* [[$envmap]] | |||
* [[$phong]] (diffuse reflection) | |||
[[Category:List of Shader Parameters]] | [[Category:List of Shader Parameters]] | ||
[[Category:VMT Reflections]] | [[Category:VMT Reflections]] | ||
[[Category:VMT Texture Reference]] | [[Category:VMT Texture Reference]] |
Revision as of 04:43, 9 July 2008
The specular mask or envmapmask affects how strongly the surface reflects light from the $envmap. It is a greyscale image in which entirely reflective areas are black and entirely matte areas are white.
VMT syntax example
$envmapmask <texture>
VertexLitGeneric { $envmap env_cubemap $envmapmask "props/tvscreen_test" $envmapmasktransform "center .5 .5 scale .25 .25 rotate 0 translate 0 0" //dx9 only $envmapmaskscale .25 // dx8 only $envmapmaskframe 1 $selfillum_envmapmask_alpha 1 //dx9 only }
Additional Parameters
$envmapmasktransform <matrix>
- Adjusts UV mapping of
$envmapmask
. - DirectX 8 and below use
$envmapmaskscale
instead.
- The default position is center .5 .5 scale 1 1 rotate 0 translate 0 0.
- center defines the point of rotation. Only useful if rotate is being used.
- 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.
- rotate rotates the texture counter-clockwise in degrees. Accepts any number, including negatives.
- 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:All values must be included!
Bug: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 ?]
Bug: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 ?]
$envmapmaskscale <float>
- Scales the
$envmapmask
by the given value. - See also
$envmapmasktransform
, above. - Requires DirectX 8.
$envmapmaskframe <integer>
- The frame of an animated texture to use as the mask.
$selfillum_envmapmask_alpha <bool>
- Derives self-illumination values from the alpha channel of
$envmapmask
. - Requires DirectX 9.
- See also
$selfillum
.
Alternative Methods
Rather than creating a whole new VTF just for a specular mask, you can use the alpha channel of either the $basetexture or $bumpmap.

$basealphaenvmapmask <bool>
- Use the alpha channel of $basetexture as the specular mask.
$normalmapalphaenvmapmask <bool>
- Use the alpha channel of $bumpmap as the specular mask.