$basetexture: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(Updated $basetexturetransform2 bug)
(Removed the $basetextureoffset/scale parameters, as they're apparently only used by the Shadow shader)
Line 16: Line 16:
{{MatParam|$basetexturetransform|matrix|Transforms the texture before use in the material. This does not affect [[lightmaps]] on the surface.
{{MatParam|$basetexturetransform|matrix|Transforms the texture before use in the material. This does not affect [[lightmaps]] on the surface.
{{VMT UVtransform}}}}
{{VMT UVtransform}}}}
{{MatParam|$basetextureoffset|normal|{{TODO|DX8 version of translate?}}}}
{{MatParam|$basetexturescale|normal|{{TODO|DX8 version of scale?}}}}
{{MatParam|$frame|int|The frame displayed for a multi-frame texture. This is normally set by the [[List_Of_Material_Proxies#Texture_manipulation|AnimatedTexture]] or [[List_Of_Material_Proxies#Entity_integration|TextureToggle]] proxies, but can be set manually. The value must be a valid index, or crashes might occur.}}
{{MatParam|$frame|int|The frame displayed for a multi-frame texture. This is normally set by the [[List_Of_Material_Proxies#Texture_manipulation|AnimatedTexture]] or [[List_Of_Material_Proxies#Entity_integration|TextureToggle]] proxies, but can be set manually. The value must be a valid index, or crashes might occur.}}


Line 24: 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. <code>$basetexture2</code> will instead use the original <code>$basetexturetransform</code>. This is the case in Source 2007, Source 2013, and Alien Swarm. Other games have not been tested.}}}}
{{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|$basetextureoffset2|normal|{{confirm|Does this parameter and the one below it even exist?}}}}
{{MatParam|$basetexturescale2|normal}}
{{MatParam|$frame2|int}}
{{MatParam|$frame2|int}}



Revision as of 11:45, 9 September 2019

Template:Otherlang2 Template:Shaderparam 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 $frame

$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 $basetexturetransform2 $frame2

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

See Also