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 上で直接編集できます。