SolidEnergy: Difference between revisions
m (Remove unnecessary all caps text) |
(Solid Energy parameters) |
||
| Line 14: | Line 14: | ||
*<code>[[$additive]]</code> | *<code>[[$additive]]</code> | ||
{{todo|What other effects does this shader support?}} | {{todo|What other effects does this shader support?}} | ||
== Fresnel behavior == | |||
{{MatParam|$TANGENTTOPACITYRANGES|vector4|Enables view-based opacity falloff based on tangent t direction, great for cylinders, includes last term for scaling backface opacity.}} | |||
{{MatParam|$TANGENTSOPACITYRANGES|vector4|Enables view-based opacity falloff based on tangent s direction, great for cylinders, includes last term for scaling backface opacity.}} | |||
{{MatParam|$FRESNELOPACITYRANGES|vector4|Enables fresnel-based opacity falloff, includes last term for scaling backface opacity.}} | |||
{{MatParam|$NEEDSTANGENTT|bool|Set when tangenttopacityranges is defined.}} | |||
{{MatParam|$NEEDSTANGENTS|bool|Set when tangentsopacityranges is defined.}} | |||
{{Note|When $NEEDSTANGENTT and $NEEDSTANGENTS are both true, $NEEDSTANGENTS is always set to false.}} | |||
{{MatParam|$NEEDSNORMALS|bool|Set when fresnelopacityranges is defined.}} | |||
== Powerup and vortex parameters == | == Powerup and vortex parameters == | ||
Revision as of 15:00, 4 February 2023
Remember to check for any notes left by the tagger at this article's talk page.
SolidEnergy It is used for the fizzler, excursion funnel, light bridge, and laser field materials. Also available in CS:GO.
Supported effects
Fresnel behavior
$TANGENTTOPACITYRANGES
$TANGENTSOPACITYRANGES
$FRESNELOPACITYRANGES
$NEEDSTANGENTT
$NEEDSTANGENTS
Powerup and vortex parameters
These material parameters are used to control the power-up animation, and up to two vortexes which normally appear when objects are nearby. They are generally set by the FizzlerVortex proxy.
MaterialModify proxy can instead be used to control the effects manually, for custom fizzlers.$powerup
$FLOW_VORTEX1
$FLOW_VORTEX_POS1
$FLOW_VORTEX2
$FLOW_VORTEX_POS2
Detail
When using a basetexture, the shader also renders 2 optional detail textures, which are blended with the basetexture. Both of these detail textures use the same syntax of variant parameters as $detail, with "$detail1" or "$detail2" replacing the "$detail" prefix. (eg: $detail1scale 1) This method must be used if the material is to be used on a model, as meshes will not render if a flowmap is applied.
Type 1 (Flowmap) Example
The example shown below is materials/effects/fizzler.vmt from Portal 2.
SolidEnergy
{
$basetexture "effects/fizzler_ripples_dim"
$flowmap "effects/fizzler_flow"
$flowbounds "effects/fizzler_bounds"
$FLOW_NOISE_TEXTURE "effects/fizzler_noise"
$FLOW_UVSCROLLDISTANCE "0.25"
$FLOW_TIMEINTERVALINSECONDS "1.2"
$FLOW_NOISE_SCALE 0.003
$FLOW_LERPEXP 1.5
$FLOW_WORLDUVSCALE 0.008
$FLOW_NORMALUVSCALE 0.008
$FLOW_COLOR "[0.025 0.08 0.1]"
$FLOW_VORTEX_COLOR "[0.64 2.058 2.56]"
$surfaceprop glass
"%keywords" Portal2
$translucent 1
$additive 1
$FLOW_VORTEX_SIZE 35
"360?$outputintensity" 2.8
"SonyPS3?$outputintensity" .7
"srgb_pc?$outputintensity" 2.3
"!srgb_pc?$outputintensity" 1.7
Proxies
{
FizzlerVortex
{
}
}
}
Type 2 (Basetexture and Detail) Example
The example shown below is materials/effects/projected_wall.vmt from Portal 2.
SolidEnergy
{
$basetexture "effects/projected_wall"
$detail1 "effects/projected_wall_draw"
$detail1scale 1
$DETAIL1BLENDMODE 1
$detail2 "effects/projected_wall_noise"
$detail2scale 1
$detail2blendmode 0
$translucent 1
$additive 1
$vertexalpha 0
$vertexcolor 0
$nocull 1
$surfaceprop glass
"%keywords" Portal2
$detailscroll1 "[0 0]"
$detailscroll2 "[0 0]"
$detail2componentscale "[1 1]"
$basescroll "[0 0]"
$basescale "[1 1]"
"!srgb?$outputintensity" .75
Proxies
{
Sine
{
sinemin 0
sinemax 0.94
sineperiod 5
timeoffset 3
resultVar "$detailscroll1[0]"
}
LinearRamp
{
rate -3
initialValue 0
resultVar "$detailscroll1[1]"
}
LinearRamp
{
rate 0.18
initialValue 0
resultVar "$detailscroll2[1]"
}
Sine
{
sinemin 0.99
sinemax 1.01
sineperiod 0.125
timeoffset 0
resultVar "$detail2componentscale[0]"
}
Sine
{
sinemin 0.995
sinemax 1.005
sineperiod 0.1
timeoffset 0.05
resultVar "$basescale[0]"
}
LinearRamp
{
rate 0.15
initialValue 0
resultVar "$basescroll[1]"
}
TextureTransform
{
translateVar $detailscroll1
resultVar $detail1texturetransform
}
TextureTransform
{
translateVar $detailscroll2
scaleVar $detail2componentscale
resultVar $detail2texturetransform
}
TextureTransform
{
translateVar $basescroll
scaleVar $basescale
resultVar $basetexturetransform
}
}
}