Difference between revisions of "$basetexture"

From Valve Developer Community
Jump to: navigation, search
(Removed the $basetextureoffset/scale parameters, as they're apparently only used by the Shadow shader)
(Added Template:Game link usage; mentioned Mapbase fix)
 
Line 22: Line 22:
 
Some shaders (most notably [[WorldVertexTransition]]) allow the use of two albedos. The second texture is handled by a mirrored set of commands with '2' in their name:
 
Some shaders (most notably [[WorldVertexTransition]]) allow the use of two albedos. The second texture is handled by a mirrored set of commands with '2' in their name:
 
{{MatParam|$basetexture2|texture}}
 
{{MatParam|$basetexture2|texture}}
{{MatParam|$basetexturetransform2|matrix|{{bug|<code>$basetexturetransform2</code> doesn't exist in the DX9 version of WorldVertexTransition, only working with the DX8 shader. In DX9, <code>$basetexture2</code> will instead move with the original <code>$basetexturetransform</code> in sync with <code>$basetexture</code>. This is the case in Source 2007, Source 2013, and Alien Swarm. Other games have not been tested.}}}}
+
{{MatParam|$basetexturetransform2|matrix|{{bugfix|<code>$basetexturetransform2</code> doesn't exist in the DX9 version of WorldVertexTransition, only working with the DX8 shader. In DX9, <code>$basetexture2</code> will instead move with the original <code>$basetexturetransform</code> in sync with <code>$basetexture</code>. This is the case in {{Game link|Source 2007}}, {{Game link|Source 2013}}, and {{Game link|Alien Swarm}}. Other games have not been tested.|{{Game link|Mapbase}} adds support for <code>$basetexturetransform2</code> in Source 2013. The specific code can be found [https://github.com/mapbase-source/source-sdk-2013 on its repository] in the [[LightmappedGeneric]] shader files.|code}}}}
 
{{MatParam|$frame2|int}}
 
{{MatParam|$frame2|int}}
  

Latest revision as of 03:29, 25 December 2019

Русский

$basetexture is a material shader parameter available in all Source games. It defines an albedo texture. It is very rare for a material not to use this parameter and some shaders will load a default texture if it stays undefined.

VMT syntax

$basetexture	<texture without extension, relative to <game>\materials\>
LightmappedGeneric
{
	$basetexture	brick\brickwall031b
}

Additional parameters

$basetexturetransform <matrix>
Transforms the texture before use in the material. This does not affect lightmaps on the surface.
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 X axis.
  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.
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.
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.
$frame <integer>
The frame displayed for a multi-frame texture. This is normally set by the AnimatedTexture or TextureToggle proxies, but can be set manually. The value must be a valid index, or crashes might occur.

$basetexture2

Some shaders (most notably WorldVertexTransition) allow the use of two albedos. The second texture is handled by a mirrored set of commands with '2' in their name:

$basetexture2 <texture>
$basetexturetransform2 <matrix>
Bug: $basetexturetransform2 doesn't exist in the DX9 version of WorldVertexTransition, only working with the DX8 shader. In DX9, $basetexture2 will instead move with the original $basetexturetransform in sync with $basetexture. This is the case in <Source><Source> Source 2007, <Source><Source> Source 2013, and <Alien Swarm> Alien Swarm. Other games have not been tested.
Code Fix: <Mapbase> Mapbase adds support for $basetexturetransform2 in Source 2013. The specific code can be found on its repository in the LightmappedGeneric shader files.
$frame2 <integer>

There are further '2' commands applying to various shader effects, which are each documented in their respective articles.

See Also