WorldVertexTransition: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(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)
(Changed to use Shader and ent templates, added game add 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 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.
{{Shader|WorldVertexTransition}} It isused 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 25: Line 25:
== Supported Parameters ==
== Supported Parameters ==


; <code>[[$blendmodulatetexture]]</code>
; {{ent|$blendmodulatetexture}} {{EP1 add}}
: Modulate the blending between materials using a special texture.
: Modulate the blending between materials using a special texture.
; <code>[[$bumpmap]]</code>
; {{ent|$bumpmap}}
: Bumpmapping.
: Bumpmapping.
; <code>[[$detail]]</code>
; {{ent|$detail}}
: Detail texturing. Applies the same detail texture to both materials.
: Detail texturing. Applies the same detail texture to both materials.
; <code>[[$envmap]]</code>
; {{ent|$envmap}}
: Specular reflections. {{todo|Might disable <code>$blendmodulatetexture</code> if both are used.}}
: Specular reflections. {{todo|Might disable <code>$blendmodulatetexture</code> if both are used.}}
; <code>[[$lightwarptexture]]</code>
; {{ent|$lightwarptexture}} {{EP1 add}}
: Per-texel color modification via a warp texture. Applies the lightwarp to both materials.
: Per-texel color modification via a warp texture. Applies the lightwarp to both materials.
; <code>[[$seamless_scale]]</code>
; {{ent|$seamless_scale}} {{EP2 add}}
: Mitigate displacement texture stretching.
: Mitigation for displacement texture stretching.
; <code>[[$selfillum]]</code>
; {{ent|$selfillum}}
: Self-illumination. Applies the self-illumination to both materials. {{todo|Might disable <code>$blendmodulatetexture</code> if both are used.}}
: Self-illumination. Applies the self-illumination to both materials. {{todo|Might disable <code>$blendmodulatetexture</code> if both are used.}}
; <code>[[$ssbump]]</code>
; {{ent|$ssbump}} {{EP2 add}}
: Self-shadowing bumpmapping. If two bumpmaps are used, both must be self-shadowing bumpmaps in order for this to work properly.
: 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>
; {{ent|$translucent}}
; {{ent|$alpha}}
: Expensive and cheap transparency. Applies the transparency to both materials.
: Expensive and cheap transparency. Applies the transparency to both materials.



Revision as of 12:13, 27 June 2019

Application without and with $blendmodulatetexture.

Shader-ball.png WorldVertexTransition It isused 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 (in all games since Half-Life 2: Episode One)
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 (in all games since Half-Life 2: Episode One)
Per-texel color modification via a warp texture. Applies the lightwarp to both materials.
$seamless_scale Template:EP2 add
Mitigation for displacement texture stretching.
$selfillum
Self-illumination. Applies the self-illumination to both materials.
Todo: Might disable $blendmodulatetexture if both are used.
$ssbump Template:EP2 add
Self-shadowing bumpmapping. If two bumpmaps are used, both must be self-shadowing bumpmaps in order for this to work properly.
$translucent
$alpha
Expensive and cheap transparency. Applies the transparency to both materials.

See also