Difference between revisions of "$basetexture"

From Valve Developer Community
Jump to: navigation, search
($basetexture2: https://github.com/ValveSoftware/source-sdk-2013/search?q=%24basetexture2 I also checked a 2007 repo, no luck)
(Changed to use Shaderparam and MatParam templates)
 
Line 2: Line 2:
 
|ru=$basetexture:ru
 
|ru=$basetexture:ru
 
}}
 
}}
The '''$basetexture''' [[VMT]] command defines an [[albedo]] texture. It is very rare for a [[material]] not to use this parameter and some [[shader|shaders]] will load a default [[texture]] if it stays undefined.
+
{{Shaderparam|$basetexture}} It defines an [[albedo]] texture. It is very rare for a [[material]] not to use this parameter and some [[shader|shaders]] will load a default [[texture]] if it stays undefined.
  
 
==VMT syntax  ==
 
==VMT syntax  ==
Line 14: Line 14:
  
 
== Additional parameters ==
 
== Additional parameters ==
 
+
{{MatParam|$basetexturetransform|matrix|Transforms the texture before use in the material. This does not affect [[lightmaps]] on the surface.
; <code>$basetexturetransform <matrix></code>
+
{{VMT UVtransform}}}}
: Transforms the texture before use in the material. This does not affect [[lightmaps]] on the surface.
+
{{MatParam|$basetextureoffset|normal|{{TODO|DX8 version of translate?}}}}
{{VMT UVtransform}}
+
{{MatParam|$basetexturescale|normal|{{TODO|DX8 version of scale?}}}}
; <code>$basetextureoffset <[[normal]]></code>
+
{{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.}}
: {{TODO|DX8 version of translate?}}
 
; <code>$basetexturescale <normal></code>
 
: {{TODO|DX8 version of scale?}}
 
 
 
; <code>$frame <int></code>
 
: 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.
 
  
 
==  $basetexture2 ==
 
==  $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:
 
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}}
* '''<code>$basetexture2</code>'''
+
{{MatParam|$basetexturetransform2|matrix|{{bug|<code>$basetexturetransform2</code> doesn't seem to work in Source 2007 [http://forums.steampowered.com/forums/showpost.php?p{{=}}7669785&postcount{{=}}4 source].}}}}
* '''<code>$basetexturetransform2</code>'''
+
{{MatParam|$basetextureoffset2|normal|{{todo|Does this parameter and the one below it even exist?}}}}
{{bug|1=<code>$basetexturetransform2</code> doesn't seem to work in Source 2007 [http://forums.steampowered.com/forums/showpost.php?p=7669785&postcount=4 source].}}
+
{{MatParam|$basetexturescale2|normal}}
* '''<code>$basetextureoffset2 <normal></code>'''{{todo|do this parameter and the one below it even exist?}}
 
* '''<code>$basetexturescale2 <normal></code>'''
 
  
 
There are further '2' commands applying to various shader effects, which are each documented in their respective articles.
 
There are further '2' commands applying to various shader effects, which are each documented in their respective articles.

Latest revision as of 22:11, 9 June 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.
$basetextureoffset <normal>
To do: DX8 version of translate?
$basetexturescale <normal>
To do: DX8 version of scale?
$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 seem to work in Source 2007 source.
$basetextureoffset2 <normal>
To do: Does this parameter and the one below it even exist?
$basetexturescale2 <normal>

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

See Also