WorldVertexTransition: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to 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]]

Revision as of 18:20, 12 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.pngNote: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.
Todo: 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.
Todo: 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