SolidEnergy: Difference between revisions
m (Changed parameters of {{this is a}} to comply with the updated version. This action was performed by a bot.) |
(Added info on $flowbounds and fixed a minor typo) |
||
Line 11: | Line 11: | ||
*<code>[[$flowmap]]</code> | *<code>[[$flowmap]]</code> | ||
*<code>[[$flowbounds]]</code> | |||
*<code>[[$translucent]]</code> | *<code>[[$translucent]]</code> | ||
*<code>[[$additive]]</code> | *<code>[[$additive]]</code> | ||
Line 46: | Line 47: | ||
{{MatParam|$detail2|string|Detail texture 2}} | {{MatParam|$detail2|string|Detail texture 2}} | ||
etc | etc | ||
== Flowbounds == | |||
If a flowmap is used, the material uses an additional texture comprised of three greyscale masks on each of the color channels. | |||
* Red controls the flow speed | |||
* Green controls the tint amount from <code>$flow_color</code> | |||
* Blue controls the additive intensity, such as the ripples of a [[Emancipation Grid|Fizzler]] | |||
{{MatParam|$flowbounds|string|Flowbounds texture}} | |||
{{MatParam|$flow_color|RGB matrix|Color tint of the flowmap}} | |||
== Refract {{p2ce|only}} == | == Refract {{p2ce|only}} == | ||
These parameters control the refraction effects added in {{p2ce|nt=1|3.1}}. | These parameters control the refraction effects added in {{p2ce|nt=1|3.1}}. | ||
{{Bug|Any transparent textures or sprite effects will not render through this texture. Any {{ent|func_brush}} with | {{Bug|Any transparent textures or sprite effects will not render through this texture. Any {{ent|func_brush}} with alpha effects applied to it will render on top of this texture.}} | ||
{{MatParam|$refract|bool|Enables refraction effects}} | {{MatParam|$refract|bool|Enables refraction effects}} | ||
{{MatParam|$refractscale|float|Scale of the refraction}} | {{MatParam|$refractscale|float|Scale of the refraction}} |
Revision as of 20:29, 3 June 2024

Remember to check for any notes left by the tagger at this article's talk page.
SolidEnergy
is a Pixel shader available in all Source games since
Portal 2. It is used for the fizzler, excursion funnel, light bridge, and laser field materials. Also available in CS:GO.
Supported effects
$flowmap
$flowbounds
$translucent
$additive
$refract
(only in)
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.
Flowbounds
If a flowmap is used, the material uses an additional texture comprised of three greyscale masks on each of the color channels.
- Red controls the flow speed
- Green controls the tint amount from
$flow_color
- Blue controls the additive intensity, such as the ripples of a Fizzler
Refract (only in
)
These parameters control the refraction effects added in P2:CE.

$refract
$refractscale
$refracteffectscale
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 } } }