diff options
| author | かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> | 2025-10-23 11:05:21 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-23 11:05:21 +0900 |
| commit | 2e07e50bb49958e75770a9b09b900fae50b43606 (patch) | |
| tree | 399810a1f628c8035c0c9cfc252106c6c5fc9f33 /packages/frontend/src/utility/snowfall-effect.vertex.glsl | |
| parent | refactor(frontend): フロントエンドの型エラー解消 (#16694) (diff) | |
| download | misskey-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.glsl | 37 |
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; +} |