$envmapmask: Difference between revisions
Jump to navigation
Jump to search
Warning:
(Incorrect specular map info. I was shocked to read this, and confirmed it wrong with my own models. White areas are reflective while black areas are matte.) |
Craziestdan (talk | contribs) (correctec) |
||
| Line 2: | Line 2: | ||
'''<code>$envmapmask</code>''' defines a specular mask, which affects how strongly each pixel of a material reflects light from the [[$envmap]]. The mask should be a greyscale image in which entirely reflective areas are white and entirely matte areas are black | '''<code>$envmapmask</code>''' defines a specular mask, which affects how strongly each pixel of a material reflects light from the [[$envmap]]. The mask should be a greyscale image in which entirely reflective areas are white and entirely matte areas are black | ||
{{warning|<code>$envmapmask</code> will not work in materials using <code>[[$bumpmap]]</code>. See [[#Alternative_methods]].}} | {{warning|<code>$envmapmask</code> will not work in model materials using <code>[[$bumpmap]]</code>. See [[#Alternative_methods]].}} | ||
==VMT syntax example== | ==VMT syntax example== | ||
Revision as of 12:28, 3 December 2008
$envmapmask defines a specular mask, which affects how strongly each pixel of a material reflects light from the $envmap. The mask should be a greyscale image in which entirely reflective areas are white and entirely matte areas are black
$envmapmask will not work in model materials using $bumpmap. See #Alternative_methods.VMT syntax example
$envmapmask <texture>
VertexLitGeneric { $envmap env_cubemap $envmapmask "props/tvscreen_test" }
Additional parameters
npc_cscanner's mask.
$envmapmasktransform <matrix>- Adjusts UV mapping of the specular mask.
- DirectX 8 and below use
$envmapmaskscaleinstead.
- The default position is
center .5 .5 scale 1 1 rotate 0 translate 0 0.centerdefines the point of rotation. Only useful ifrotateis being used.scalefits the texture into the material the given number of times.2 1is a 50% scale in the horizontal X axis while the vertical Y axis is still at original scale.rotaterotates the texture counter-clockwise in degrees. Accepts any number, including negatives.translateshifts the texture by the given numbers..5will 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 specular mask by the given value.
- See also
$envmapmasktransform, above. - Requires DirectX 8.
$envmapmaskframe <integer>- The frame to start an animated specular mask on.
Alternative methods
Rather than creating a whole new texture just for a specular mask, you can use the alpha channel of either the $basetexture or $bumpmap. Note that this unfortunately won't reduce the overall amount of data on-disk or in-memory.
If you do use these commands, transformations and other such parameters applied to the base texture/bump map will also apply to the specular mask.
$basealphaenvmapmask <bool>- Use the alpha channel of
$basetextureas the specular mask. - When putting your specular map in the alpha channel you will have to invert it, or else it will work the wrong way round.
$normalmapalphaenvmapmask <bool>- Use the alpha channel of
$bumpmapas the specular mask. - This must be used if the material has a bump map.
See Also
- $basetexture
- $envmap (environment map)
- $phong (diffuse reflection)
- $selfillum