Aftershock: Difference between revisions
Deprecated (talk | contribs) (Rewritten, added all parameters from code, added example, added requirement of the time proxy, added maintenance templates, needs testing) |
Deprecated (talk | contribs) m (Added water to see also) |
||
Line 50: | Line 50: | ||
== See Also == | == See Also == | ||
* {{ent|Refract}} | * {{ent|Refract}} | ||
* {{ent|Water_(shader)}} | |||
[[Category:Shaders]] | [[Category:Shaders]] | ||
[[Category:Stubs]] | [[Category:Stubs]] |
Revision as of 10:19, 27 June 2019

For help, see the VDC Editing Help and Wikipedia cleanup process. Also, remember to check for any notes left by the tagger at this article's talk page.

You can upload screenshots at Special:Upload. For help, see Help:Images.
Aftershock
It draws animated and scrolling refraction. It is able to smoothly fade out with alpha blending depending on its distance to the ground (per vertex; calculated with the material parameters $GroundMin
and $GroundMax
) and the dot product of the per vertex geometry normal and world view vector (scaled by $SilhouetteThickness
). Furthermore this shader does solely support the vertexformat that studiomodels use.
Parameters
$normalmap
$bumpframe
$bumptransform
$refractamount
$colortint
$bluramount
$groundmin
$groundmax
$silhouettecolor
$silhouettethickness
Time Proxy
For any reason, you may want to modulate time by scale it. The below material proxy is a simple sample to work properly.

"$time" "0.0"
"$CurrentTime" "0.0" // declare a custom VMT Parameter to "CurrentTime" Proxie output
"$timeMult" "0.5" // declare a custom VMT Parameter to use at "Multiply" Proxie
"Proxies"
{
"CurrentTime"
{
// It pass CurrentTime Proxie to "$CurrentTime" variable to scale materials effects such $emissiveblendscrollvector.
"resultVar" "$CurrentTime"
}
"Multiply"
{
"srcVar1" "$CurrentTime" // get $CurrentTime VMT parameter to multiply with srcVar2
"srcVar2" "$timeMult" // get $timeMult VMT parameter to multiply with srcVar1
"resultVar" "$time" // writes multiplication product into $time, scaling "CurrentTime"
}
}
Example
The only known material using this shader, found in Half-Life 2: Episode Two ,
materials/models/props_combine/sphere.vmt
"Aftershock" { "<dx90" { "$fallbackmaterial" "models\props_combine\sphere_dx8" } "$normalmap" "models/props_combine/aftershock-normal" "$refractamount" "0.02" "$colortint" "[1.0 1.3 1.6]" "$SilhouetteThickness" "0.2" "$SilhouetteColor" "[0.3 0.3 0.5]" "$GroundMin" "-0.3" "$GroundMax" "-0.1" "$BlurAmount" "0.01" "$time" "0.0" "Proxies" { "CurrentTime" { "resultVar" "$time" } } }