Difference between revisions of "WorldVertexTransition"

From Valve Developer Community
Jump to: navigation, search
(VBSP automatically converts WVT to LightMappedGeneric on normal brushes)
(Rewrite to provide details for parameters, removed todo for $outline as this doesn't seem to be enabled for this shader, added $lightwarptexture and $selfillum information)
 
Line 1: Line 1:
 
[[File:Blendmodulate.jpg|thumb|250px|Application without and with <code>[[$blendmodulatetexture]]</code>.]]
 
[[File:Blendmodulate.jpg|thumb|250px|Application without and with <code>[[$blendmodulatetexture]]</code>.]]
  
'''<code>WorldVertexTransition</code>''' is the [[shader]] used to blend the vertices of a [[displacement]] surface between two different materials. It handles two at once by using a mirrored set of parameters with "2" in their name.
+
'''<code>WorldVertexTransition</code>''' is a [[material]] [[shader]] used to blend the vertices of a [[displacement]] surface between two different materials. It handles two at once by using a mirrored set of parameters with "2" in their name.
  
 
The pattern of the blend is defined by Hammer's [[Displacement#Blended displacement materials (alpha channel painting)|alpha painting tool]]. The blend is normally a linear gradient, but it can also be "stamped" by a texture specified with <code>[[$blendmodulatetexture]]</code>. This command makes the material look considerably better for very little [[budget|cost]] - use it often!
 
The pattern of the blend is defined by Hammer's [[Displacement#Blended displacement materials (alpha channel painting)|alpha painting tool]]. The blend is normally a linear gradient, but it can also be "stamped" by a texture specified with <code>[[$blendmodulatetexture]]</code>. This command makes the material look considerably better for very little [[budget|cost]] - use it often!
Line 20: Line 20:
 
  }
 
  }
  
* Just about all visual effects can be selectively applied to one sub-material or the other. See the relevant articles for more details.
+
* Some visual effects can be selectively applied to one sub-material or the other. See the relevant articles for more details.
 
* The Hammer material browser won't be able to display a preview of the material unless it's given a <code>[[%tooltexture]]</code>.
 
* The Hammer material browser won't be able to display a preview of the material unless it's given a <code>[[%tooltexture]]</code>.
  
== Supported effects ==
+
== Supported Parameters ==
  
* <code>[[$blendmodulatetexture]]</code>
+
; <code>[[$blendmodulatetexture]]</code>
* <code>[[$seamless_scale]]</code>
+
: Modulate the blending between materials using a special texture.
* <code>[[$bumpmap]]</code>
+
; <code>[[$bumpmap]]</code>
* <code>[[$ssbump]]</code> (whole material only)
+
: Bumpmapping.
* <code>[[$detail]]</code> (whole material only)
+
; <code>[[$detail]]</code>
* <code>[[$envmap]]</code> (might disable <code>[[$blendmodulatetexture]]</code> if both used)
+
: Detail texturing. Applies the same detail texture to both materials.
* {{todo|<code>[[$outline]]</code>?}}
+
; <code>[[$envmap]]</code>
* <code>[[$translucent]]</code> and <code>[[$alpha]]</code> (whole material only)
+
: Specular reflections. {{todo|Might disable <code>$blendmodulatetexture</code> if both are used.}}
 +
; <code>[[$lightwarptexture]]</code>  
 +
: Per-texel color modification via a warp texture. Applies the lightwarp to both materials.
 +
; <code>[[$seamless_scale]]</code>
 +
: Mitigate displacement texture stretching.
 +
; <code>[[$selfillum]]</code>
 +
: Self-illumination. Applies the self-illumination to both materials. {{todo|Might disable <code>$blendmodulatetexture</code> if both are used.}}
 +
; <code>[[$ssbump]]</code>
 +
: Self-shadowing bumpmapping. If two bumpmaps are used, both must be self-shadowing bumpmaps in order for this to work properly.
 +
; <code>[[$translucent]]</code> and <code>[[$alpha]]</code>
 +
: Expensive and cheap transparency. Applies the transparency to both materials.
  
 
== See also ==
 
== See also ==
  
* [[LightmappedGeneric]]
+
* [[LightmappedGeneric]], the standard shader for lightmapped surfaces.
* [[Lightmapped_4WayBlend]]
+
* [[Lightmapped_4WayBlend]], an upgraded displacement blend shader for {{csgo}}.
* [[WorldTwoTextureBlend]]
+
* [[LightmappedTwoTexture]], a brush shader that multiplies a texture on top of another one.
* [[LightmappedTwoTexture]]
+
* [[WorldTwoTextureBlend]], a brush shader that applies a texture on top of another one using $detail.
* [[Displacement]]
+
* [[Displacement]], the surface type this shader is used on.
  
 
[[Category:Shaders]]
 
[[Category:Shaders]]

Latest revision as of 01:20, 13 May 2019

Application without and with $blendmodulatetexture.

WorldVertexTransition is a material shader used to blend the vertices of a displacement surface between two different materials. It handles two at once by using a mirrored set of parameters with "2" in their name.

The pattern of the blend is defined by Hammer's alpha painting tool. The blend is normally a linear gradient, but it can also be "stamped" by a texture specified with $blendmodulatetexture. This command makes the material look considerably better for very little cost - use it often!

Note:This shader now only works on displacements. If used on a regular brush, VBSP will generate and pack a LightmappedGeneric version of the material automatically, discarding the secondary texture.

Example

WorldVertexTransition
{
	$basetexture nature/dirtfloor006a
	$surfaceprop dirt

	$basetexture2 nature/rockfloor005a
	$surfaceprop2 rock

	%tooltexture nature/blendrockgrass004a_tooltexture
}
  • Some visual effects can be selectively applied to one sub-material or the other. See the relevant articles for more details.
  • The Hammer material browser won't be able to display a preview of the material unless it's given a %tooltexture.

Supported Parameters

$blendmodulatetexture
Modulate the blending between materials using a special texture.
$bumpmap
Bumpmapping.
$detail
Detail texturing. Applies the same detail texture to both materials.
$envmap
Specular reflections. To do: Might disable $blendmodulatetexture if both are used.
$lightwarptexture
Per-texel color modification via a warp texture. Applies the lightwarp to both materials.
$seamless_scale
Mitigate displacement texture stretching.
$selfillum
Self-illumination. Applies the self-illumination to both materials. To do: Might disable $blendmodulatetexture if both are used.
$ssbump
Self-shadowing bumpmapping. If two bumpmaps are used, both must be self-shadowing bumpmaps in order for this to work properly.
$translucent and $alpha
Expensive and cheap transparency. Applies the transparency to both materials.

See also