UnlitTwoTexture

From Valve Developer Community
Jump to: navigation, search
  • Two base textures are multiplied together and can be transformed independently. (Just like the Multiply blending mode in typical image editors.)
  • Unrelated to WorldVertexTransition, which is used for making alpha fading transitions between two base textures on displacements.


Note.pngNote:This Shader works on both Brushes and Models
Confirm: Do models require $model in branches before Counter-Strike: Global Offensive?

Parameters

The first Texture that is used, how it is used depends on the effects which are enabled. By default $basetexture will be multiplied with $texture2.

The frame to start an animated $texture2 on.
Transforms the texture before use in the material.
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 horizontal X axis while the vertical Y axis is still at original scale.
  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. 1 will shift it once completely over, which is the same as not moving it at all.
Note.pngNote:All values must be included!
Icon-Bug.pngBug:Scaling the texture may cause odd issues where the Texture Lock tool in Hammer will not actually lock the texture in place.
Icon-Bug.pngBug: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.


Second Texture that is used in different ways depending on which effects are used.
By default $basetexture will be multiplied with $texture2.

Note.pngNote:First texture is applied via $basetexture.
The frame to start an animated $texture2 on.
Transforms the texture before use in the material.
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 horizontal X axis while the vertical Y axis is still at original scale.
  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. 1 will shift it once completely over, which is the same as not moving it at all.
Note.pngNote:All values must be included!
Icon-Bug.pngBug:Scaling the texture may cause odd issues where the Texture Lock tool in Hammer will not actually lock the texture in place.
Icon-Bug.pngBug: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.


tints the result, on brushes.
tints the result, on models.


$beachfoam <boolean> (only in Counter-Strike: Global Offensive)
Introduced with Dangerzone, adds animated wave-like effects using a special texture
Icon-Important.pngImportant:This parameter is intended to be used with $additive.

On the Dangerzone Wave Model, both $texture2 and $basetexture use the 'Beachwaves' Texture.

Blank image.pngTodo: Do both Parameters need to use the same Texture?

The 'Beachwaves' Texture uses the RGB channels for different purposes.

Blank image.pngTodo: Find a better Name for the Texture...
  • Red Channel : Waves Albedo Texture
Blank image.pngTodo: Can this be tinted using $color/$color2?
  • Green Channel : Distortion/Noise for the Red Channel
  • Blue Channel : Distortion/Noise for the Red Channel
Blank image.pngTodo: Further documentation required.



$CrosshairMode <boolean> (only in Counter-Strike: Global Offensive)
Enables "Crosshair mode" using $basetexture for the Crosshair

$texture2 is used for a framebuffer texture.
The result will be blended between Crosshair Texture + CrosshairTint and Crosshair Texture * CrosshairTint using Average Luminance of $texture2 * $CrosshairColorAdapt

$CrosshairTint <RGB matrix> (only in Counter-Strike: Global Offensive)
Tints the $basetexture when using $CrosshairMode
$CrosshairColorAdapt <float> (only in Counter-Strike: Global Offensive)
Used for multiplying the average Luminance of $texture2
Note.pngNote:Default Value "0.4"



E.G.

Stock .vmt hl2/materials/models/props_combine/portalball001_sheet.vmt

"UnlitTwoTexture"
{
	"$basetexture" "models/props_combine/portalball001_sheet"
	"$texture2" "models/props_combine/portalball001b_sheet"
 	"$model" 1
	"$nocull" "1"
	"$additive" "1"
	"Proxies"
	{

		"TextureScroll"
		{
			"texturescrollvar" "$texture2transform"
			"texturescrollrate" -.2
			"texturescrollangle" 60
		}
	}

}

Counter-Strike: Global Offensive models/props/hr_massive/beachwaves/beachwaves.vmt

UnlitTwoTexture
{
    "$beachfoam"   "1"
    "$basetexture" "models/props/hr_massive/beachwaves/beachwaves"
    "$texture2"    "models/props/hr_massive/beachwaves/beachwaves"
    "$additive"    "1"
}

See also