$envmap: Difference between revisions
Line 21: | Line 21: | ||
'''Here is a map of the orientation required''' | '''Here is a map of the orientation required''' | ||
{{BoxOut|float=right|width=22em| | {{BoxOut|float=right|width=22em| | ||
Line 36: | Line 31: | ||
* UP=UP | * UP=UP | ||
* DN=Down | * DN=Down | ||
---- | |||
* CW = Clockwise | |||
* CCW = Counter Clockwise | |||
---- | |||
* 00_00_00 eg. (customcubemap_00_00_00.tga) | |||
* 00_01_00 eg. (customcubemap_00_01_00.tga) | |||
}} | }} | ||
https://dl.dropbox.com/u/10798900/Pictures/tut/orientation_convention_source.png | |||
== Additional Parameters == | == Additional Parameters == |
Revision as of 02:34, 20 July 2012
The $envmap
VMT parameter creates specular reflections, which are seen on smooth surfaces. It does this by defining an "environment map" (specifically a cubemap) to draw as a reflection; normally that of the nearest env_cubemap entity. The reflection is not dynamic.
The other form of reflection supported by Source is the diffuse phong type.
Syntax
$envmap env_cubemap
"env_cubemap" is normally used, as it tells VBSP to swap in the name of the nearest env_cubemap when the map compiles. However it is also possible to use a static cubemap image that has been manually created.
Creating a custom static cubemap texture
Creating a custom cubemap texture might be required for some circumstances and is used occasionally in some Valve models.
For this to work you will need to have the 6 sides of the cubemap saved as individual textures in the correct orientation for it to appear correctly in the Source Engine.
Here is a map of the orientation required
Cube Sides
- FT=Front
- BK=Back
- RT=Right
- LF-Left
- UP=UP
- DN=Down
- CW = Clockwise
- CCW = Counter Clockwise
- 00_00_00 eg. (customcubemap_00_00_00.tga)
- 00_01_00 eg. (customcubemap_00_01_00.tga)
https://dl.dropbox.com/u/10798900/Pictures/tut/orientation_convention_source.png
Additional Parameters
$envmapmask <texture>
- See
$envmapmask
. A VTF file that determines per-texel reflection intensity. $envmaptint "[<red float> <green float> <blue float>]"
- Controls the intensity of the reflection's red, green and blue color channels. Any positive number can be used. Default is
"[1 1 1]"
, which means 100% intensity.Note:You must use quotemarks, as there are space characters within the value.
Tip:This command is often used to dim the brightness of a specular reflection without the overhead of an
$envmapmask
. $envmapcontrast <normal>
- Controls the contrast of the reflection. 0 is natural contrast, while 1 is the full squaring of the color (i.e. color*color).
Tip:Use higher contrasts to diminish relatively darker areas and increase "hot spots".
Note:Will not work when Phong is enabled.
$envmapsaturation <normal>
- Controls the colour saturation of the reflection. 0 is greyscale, while 1 is natural saturation.
Note:Will not work when Phong is enabled.
$envmapframe <int>
- The frame to start an animated cubemap on.
$envmapmode <int?>
- Todo: ?
$basetexturenoenvmap <bool>
$basetexture2noenvmap <bool>
- Probably used for materials with two albedos, to make one or the other matte. Require DirectX 9; see also
$basetexture
and$basetexture2
. $envmapoptional <choices>
- Sets the oldest DirectX version that should draw the reflection. Choose from:
80
(DirectX 8)81
(DirectX 8.1)90
(DirectX 9)95
(DirectX 9 with Shader Model 3)
$envmapsphere <bool>
- Determines whether the material's envmap should be a spheremap (deprecated) instead of a cubemap. Set this to 1 to use a spheremap.
Console commands
buildcubemaps
- Generates cubemaps for use in materials. If this isn't run, objects will reflect the skybox (OB) or have an invalid, white reflection (Ep1).
r_showenvcubemap <bool>
- Debug command to display cubemaps on all dynamic objects at full intensity. It was used to create the image at the start of this article.
See Also
- $envmapmask (specular mask)
- $phong (for diffuse reflection)
- Cubemap