GRAPHICA
CURATED

燐光の雨

by GRAPHICA

PROMPT

夜の闇に降る燐光の粒。緑と青の光が明滅しながら、ゆっくりと落ちていく

DATE
2026/6/10
SOURCE
CURATED
MODEL
LIKES
24
VIEW SHADER CODE
float hash21(vec2 p) {
  p = fract(p * vec2(234.34, 435.345));
  p += dot(p, p + 34.23);
  return fract(p.x * p.y);
}

void mainImage(out vec4 fragColor, in vec2 fragCoord) {
  vec2 uv = fragCoord / iResolution.y;
  vec3 col = vec3(0.012, 0.016, 0.028);

  for (int i = 0; i < 4; i++) {
    float fi = float(i);
    float scale = 9.0 + fi * 7.0;
    float speed = 0.10 + fi * 0.06;
    vec2 p = uv * scale + vec2(fi * 13.7, 0.0);
    p.y += iTime * speed * scale * 0.18;
    vec2 id = floor(p);
    vec2 gv = fract(p) - 0.5;
    float rnd = hash21(id);
    if (rnd > 0.82) {
      vec2 off = (vec2(hash21(id + 1.7), hash21(id + 9.3)) - 0.5) * 0.55;
      float d = length(gv - off);
      float tw = 0.35 + 0.65 * (0.5 + 0.5 * sin(iTime * (0.8 + rnd * 2.6) + rnd * 40.0));
      float halo = smoothstep(0.16, 0.0, d);
      float core = smoothstep(0.05, 0.0, d);
      vec3 tint = mix(vec3(0.35, 0.95, 0.55), vec3(0.45, 0.75, 1.0), hash21(id + 3.1));
      col += (halo * 0.35 + core * 0.9) * tw * tint * (1.0 - fi * 0.18);
    }
  }

  float grad = smoothstep(1.1, -0.2, uv.y);
  col += vec3(0.02, 0.05, 0.04) * grad;
  fragColor = vec4(col, 1.0);
}