3 const float WAVE_PROGRESS_MIN = 0;
4 const float WAVE_PROGRESS_MAX =
Math.PI;
5 const float WAVE_AMPLITUDE_COEF = 0.7;
6 const float WAVE_TILT = -0.12;
8 const float DISTORT_MIN = 0;
9 const float DISTORT_MAX = -0.8;
13 float m_ProgressAngle;
15 float m_CurveValueClamped;
16 float m_LenseOffsetAngle;
17 float m_LenseOffsetDist;
19 void SetInitialLenseOffset(
float offsetAngle,
float offsetDistance = 0.5)
21 m_LenseOffsetAngle = offsetAngle;
22 m_LenseOffsetDist =
Math.Clamp(offsetDistance,0,1);
25 void SetEffectProgress(
float progress)
27 m_ProgressAngle =
Math.Lerp(WAVE_PROGRESS_MIN,WAVE_PROGRESS_MAX,progress);
28 m_CurveValue = (1 / WAVE_TILT) * (
Math.Atan((WAVE_TILT *
Math.Sin(m_ProgressAngle)) / (1 - WAVE_TILT *
Math.Cos(m_ProgressAngle)))) * WAVE_AMPLITUDE_COEF;
29 m_CurveValueClamped =
Math.Clamp(m_CurveValue,-1,1);
31 float distort =
Math.Lerp(DISTORT_MIN,DISTORT_MAX,m_CurveValueClamped);
32 float centerX =
Math.Lerp(0,m_LenseOffsetDist,
Math.Sin(m_ProgressAngle + m_LenseOffsetAngle));
33 float centerY =
Math.Lerp(0,m_LenseOffsetDist,
Math.Cos(m_ProgressAngle + m_LenseOffsetAngle));
34 float chromAbb =
Math.AbsFloat(m_CurveValueClamped);
36 float chromShiftR = 0.1;
37 float chromShiftG = 0;
38 float chromShiftB = 0.75;
40 float alpha01 =
Math.Sin( -
Math.PI_HALF + 7 * m_ProgressAngle) * 0.5 + 0.5;
41 vector colabA =
"-1 -1 -0.85";
45 array<float> color_mod = {absim[0], absim[1], absim[2], 1.0};
48 vector coloverB =
"0.25 0.9 0.1";
49 vector oversim =
vector.Lerp(coloverA, coloverB, m_CurveValueClamped);
51 array<float> color_overlay = {oversim[0], oversim[1], oversim[2], 0.5};
Distort - PostProcessEffectType.Distort.
Glow - PostProcessEffectType.Glow.
base, not to be used directly, would lead to layering collisions!
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
PostProcessEffectType
Post-process effect type.
PPOperators
PP operators, specify operation between subsequent layers.