AI GENERATED

宇宙

by touyou

PROMPT

星のきらめき

DATE
2026/7/13
SOURCE
AI GENERATED
MODEL
local-cli-claude-code
LIKES
3
VIEW SHADER CODE
vec3 palette(float t) {
    return 0.5 + 0.5 * cos(6.28318 * (vec3(0.0, 0.33, 0.67) + t));
}

float hash21(vec2 p) {
    p = fract(p * vec2(123.34, 456.21));
    p += dot(p, p + 45.32);
    return fract(p.x * p.y);
}

float stars(vec2 uv, float scale, float t) {
    vec2 id = floor(uv * scale);
    vec2 f = fract(uv * scale) - 0.5;
    float col = 0.0;
    for (int y = -1; y <= 1; y++) {
        for (int x = -1; x <= 1; x++) {
            vec2 off = vec2(float(x), float(y));
            vec2 gid = id + off;
            float h = hash21(gid);
            vec2 jitter = (vec2(h, fract(h * 13.0)) - 0.5) * 0.8;
            vec2 pos = off + jitter - f;
            float d = length(pos);
            float tw = 0.5 + 0.5 * sin(t * (1.0 + h * 3.0) + h * 6.2831);
            float core = smoothstep(0.06, 0.0, d);
            float glow = 0.012 / (d * d + 0.03);
            col += (core + glow * 0.3) * tw * (0.4 + 0.6 * h);
        }
    }
    return col;
}

void mainImage(out vec4 fragColor, in vec2 fragCoord) {
    vec2 uv = (fragCoord * 2.0 - iResolution.xy) / iResolution.y;
    float t = iTime;

    vec3 col = mix(vec3(0.015, 0.02, 0.06), vec3(0.06, 0.03, 0.14), uv.y * 0.5 + 0.5);

    float n = sin(uv.x * 1.4 + uv.y * 1.9 + t * 0.05) * 0.5 + 0.5;
    col += palette(n * 0.25 + 0.62) * 0.07;

    col += stars(uv + vec2(0.0, t * 0.004), 6.0, t) * vec3(0.85, 0.88, 1.0) * 0.85;
    col += stars(uv * 1.6 + 13.1, 10.0, t * 1.3) * vec3(1.0, 0.9, 0.75) * 0.55;
    col += stars(uv * 2.4 + 7.7, 16.0, t * 0.7) * vec3(0.7, 0.8, 1.0) * 0.4;

    float big = stars(uv * 0.55 + 3.3, 3.0, t * 0.4);
    col += big * vec3(1.0, 0.95, 0.85) * 1.1;

    float vig = smoothstep(1.4, 0.3, length(uv));
    fragColor = vec4(col * vig, 1.0);
}

ZIP を展開して .playground を Xcode でダブルクリックし、Live View を表示して ▶ を押すとシェーダーがアニメーションします。Metal ソースは Resources/Shader.metal に独立ファイルとして入っているので、Xcode 上で直接編集できます。