73 constexpr float ANIM_DURATION = 1500.0f;
74 constexpr float NOISE_ANIMATION_DURATION = 7000.0f;
75 constexpr float MAX_NOISE_PHASE = NOISE_ANIMATION_DURATION / 214.0f;
76 constexpr float PI_ROTATE_RIGHT =
SK_ScalarPI * 0.0078125f;
77 constexpr float PI_ROTATE_LEFT =
SK_ScalarPI * -0.0078125f;
82 builder.uniform(
"in_progress") = this->
sawtoothLerp(0.0f, 1.0f, ANIM_DURATION);
83 builder.uniform(
"in_maxRadius") = 400.0f;
86 builder.uniform(
"in_hasMask") = 1.0f;
88 float phase = this->
sawtoothLerp(0, MAX_NOISE_PHASE, NOISE_ANIMATION_DURATION);
89 builder.uniform(
"in_noisePhase") = phase;
90 builder.uniform(
"in_turbulencePhase") = phase * 1000.0f;
92 const float scale = 1.5f;
93 builder.uniform(
"in_tCircle1") =
SkV2{
scale * .5f + (phase * 0.01f * cosf(
scale * .55f)),
94 scale * .5f + (phase * 0.01f * sinf(
scale * .55f))};
95 builder.uniform(
"in_tCircle2") =
SkV2{
scale * .2f + (phase * -.0066f * cosf(
scale * .45f)),
96 scale * .2f + (phase * -.0066f * sinf(
scale * .45f))};
97 builder.uniform(
"in_tCircle3") =
SkV2{
scale + (phase * -.0066f * cosf(
scale * .35f)),
98 scale + (phase * -.0066f * sinf(
scale * .35f))};
100 float rotation1 = phase * PI_ROTATE_RIGHT + 1.7f *
SK_ScalarPI;
101 builder.uniform(
"in_tRotation1") =
SkV2{cosf(rotation1), sinf(rotation1)};
103 float rotation2 = phase * PI_ROTATE_LEFT + 2.0f *
SK_ScalarPI;
104 builder.uniform(
"in_tRotation2") =
SkV2{cosf(rotation2), sinf(rotation2)};
106 float rotation3 = phase * PI_ROTATE_RIGHT + 2.75f *
SK_ScalarPI;
107 builder.uniform(
"in_tRotation3") =
SkV2{cosf(rotation3), sinf(rotation3)};
109 builder.uniform(
"in_color") =
SkV4{0.0f, 0.6f, 0.0f, 1.0f};
110 builder.uniform(
"in_sparkleColor") =
SkV4{1.0f, 1.0f, 1.0f, 1.0f};