mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-06 03:14:00 +00:00
fix(styles): keep Snow wind sway bounded over time (#782)
The horizontal offset multiplied elapsed time by a sine, so flakes swung faster the longer the app ran. It is now the integral of the intended sway velocity, which stays bounded at any session age; Wind still scales the amplitude. Co-authored-by: Sameh Khamis <[email protected]>
This commit is contained in:
1 parent
95d376f13d
commit
750f3da6eb
3 files changed
+9
-2
No files matched your search
@@ -1,5 +1,8 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
- Snow flakes sway within a fixed range instead of drifting sideways faster the
|
||||||
|
longer the app runs; the Wind setting still scales the sway.
|
||||||
|
|
||||||
- The right rail ignores panels that other CSS hides, such as during an event
|
- The right rail ignores panels that other CSS hides, such as during an event
|
||||||
view, so they no longer force one-panel-at-a-time layout or collapse visible
|
view, so they no longer force one-panel-at-a-time layout or collapse visible
|
||||||
panels. Panels the rail collapses itself are still restored.
|
panels. Panels the rail collapses itself are still restored.
|
||||||
|
|||||||
@@ -1013,6 +1013,8 @@ and sharpen. Display supplies actions and renders settings; effect execution has
|
|||||||
no DOM dependency. Existing presets and the 500 ms transition remain unchanged.
|
no DOM dependency. Existing presets and the 500 ms transition remain unchanged.
|
||||||
Stopping the controller revokes animation before asynchronous UI teardown; final
|
Stopping the controller revokes animation before asynchronous UI teardown; final
|
||||||
destruction removes its stages and restores the borrowed bloom configuration.
|
destruction removes its stages and restores the borrowed bloom configuration.
|
||||||
|
Snow's sideways sway stays within a fixed range at any session age; Wind scales
|
||||||
|
its amplitude.
|
||||||
|
|
||||||
## Display control ownership
|
## Display control ownership
|
||||||
|
|
||||||
|
|||||||
+4
-2
@@ -29,11 +29,13 @@ export const snowShader = {
|
|||||||
float depth = 0.5 + layer * 0.5;
|
float depth = 0.5 + layer * 0.5;
|
||||||
float speed = 0.4 + layer * 0.3;
|
float speed = 0.4 + layer * 0.3;
|
||||||
float size = mix(0.01, 0.025, layer);
|
float size = mix(0.01, 0.025, layer);
|
||||||
float windForce = sin(time * 0.5 + layer * 3.14) * (0.05 + wind * 0.2);
|
float windForce = 0.05 + wind * 0.2;
|
||||||
|
|
||||||
vec2 snowUV = uv * vec2(1.0, 0.5) * (4.0 + layer * 4.0);
|
vec2 snowUV = uv * vec2(1.0, 0.5) * (4.0 + layer * 4.0);
|
||||||
snowUV.y += time * speed;
|
snowUV.y += time * speed;
|
||||||
snowUV.x += time * windForce;
|
// Offset is the integral of a swaying velocity sin(time * 0.5 + phase) * windForce,
|
||||||
|
// so the sway stays bounded however long the app has been running.
|
||||||
|
snowUV.x -= 2.0 * cos(time * 0.5 + layer * 3.14) * windForce;
|
||||||
|
|
||||||
vec2 cell = floor(snowUV);
|
vec2 cell = floor(snowUV);
|
||||||
vec2 f = fract(snowUV);
|
vec2 f = fract(snowUV);
|
||||||
|
|||||||
Reference in new issue
Block a user