summaryrefslogtreecommitdiff
path: root/packages/frontend/src/utility/snowfall-effect.vertex.glsl
diff options
context:
space:
mode:
authorかっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>2025-10-23 11:05:21 +0900
committerGitHub <noreply@github.com>2025-10-23 11:05:21 +0900
commit2e07e50bb49958e75770a9b09b900fae50b43606 (patch)
tree399810a1f628c8035c0c9cfc252106c6c5fc9f33 /packages/frontend/src/utility/snowfall-effect.vertex.glsl
parentrefactor(frontend): フロントエンドの型エラー解消 (#16694) (diff)
downloadmisskey-2e07e50bb49958e75770a9b09b900fae50b43606.tar.gz
misskey-2e07e50bb49958e75770a9b09b900fae50b43606.tar.bz2
misskey-2e07e50bb49958e75770a9b09b900fae50b43606.zip
refactor(frontend): 既存のGLSLを単独のファイルに移行 (#16677)
* refactor(frontend): 既存のGLSLを単独のファイルに移行 * fix: glslファイルを参照元ファイルと同じ場所に移動
Diffstat (limited to 'packages/frontend/src/utility/snowfall-effect.vertex.glsl')
-rw-r--r--packages/frontend/src/utility/snowfall-effect.vertex.glsl37
1 files changed, 37 insertions, 0 deletions
diff --git a/packages/frontend/src/utility/snowfall-effect.vertex.glsl b/packages/frontend/src/utility/snowfall-effect.vertex.glsl
new file mode 100644
index 0000000000..bfca1a76ee
--- /dev/null
+++ b/packages/frontend/src/utility/snowfall-effect.vertex.glsl
@@ -0,0 +1,37 @@
+#version 300 es
+
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+in vec4 a_position;
+in vec4 a_color;
+in vec3 a_rotation;
+in vec3 a_speed;
+in float a_size;
+out vec4 v_color;
+out float v_rotation;
+uniform float u_time;
+uniform mat4 u_projection;
+uniform vec3 u_worldSize;
+uniform float u_gravity;
+uniform float u_wind;
+uniform float u_spin_factor;
+uniform float u_turbulence;
+
+void main() {
+ v_color = a_color;
+ v_rotation = a_rotation.x + (u_time * u_spin_factor) * a_rotation.y;
+
+ vec3 pos = a_position.xyz;
+
+ pos.x = mod(pos.x + u_time + u_wind * a_speed.x, u_worldSize.x * 2.0) - u_worldSize.x;
+ pos.y = mod(pos.y - u_time * a_speed.y * u_gravity, u_worldSize.y * 2.0) - u_worldSize.y;
+
+ pos.x += sin(u_time * a_speed.z * u_turbulence) * a_rotation.z;
+ pos.z += cos(u_time * a_speed.z * u_turbulence) * a_rotation.z;
+
+ gl_Position = u_projection * vec4(pos.xyz, a_position.w);
+ gl_PointSize = (a_size / gl_Position.w) * 100.0;
+}