CURATED
星雲のドリフト
by GRAPHICA
PROMPT
深い藍色の宇宙に、ゆっくりと渦を巻く星雲。縁がオレンジの光で染まり、奥から白い光が滲む
- DATE
- 2026/6/12
- SOURCE
- CURATED
- MODEL
- —
- LIKES
- 42
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);
}
float vnoise(vec2 p) {
vec2 i = floor(p);
vec2 f = fract(p);
vec2 u = f * f * (3.0 - 2.0 * f);
return mix(
mix(hash21(i), hash21(i + vec2(1.0, 0.0)), u.x),
mix(hash21(i + vec2(0.0, 1.0)), hash21(i + vec2(1.0, 1.0)), u.x),
u.y
);
}
float fbm(vec2 p) {
float v = 0.0;
float a = 0.5;
mat2 rot = mat2(0.8, -0.6, 0.6, 0.8);
for (int i = 0; i < 6; i++) {
v += a * vnoise(p);
p = rot * p * 2.03;
a *= 0.5;
}
return v;
}
void mainImage(out vec4 fragColor, in vec2 fragCoord) {
vec2 uv = (fragCoord * 2.0 - iResolution.xy) / iResolution.y;
float t = iTime * 0.07;
vec2 q = vec2(fbm(uv + t), fbm(uv + vec2(5.2, 1.3) - t));
vec2 r = vec2(
fbm(uv + 4.0 * q + vec2(1.7, 9.2) + t * 0.6),
fbm(uv + 4.0 * q + vec2(8.3, 2.8) - t * 0.4)
);
float f = fbm(uv + 4.0 * r);
vec3 col = mix(vec3(0.015, 0.025, 0.07), vec3(0.12, 0.30, 0.62), clamp(f * f * 3.6, 0.0, 1.0));
col = mix(col, vec3(0.85, 0.42, 0.18) * 0.7, clamp(length(q) * 0.75, 0.0, 1.0) * f);
col = mix(col, vec3(0.96, 0.92, 0.84), pow(clamp(r.y, 0.0, 1.0), 6.0) * 0.55);
col *= 0.45 + 0.55 * f * 2.1;
col *= 1.0 - 0.42 * dot(uv * 0.55, uv * 0.55);
col = max(col, 0.0);
fragColor = vec4(pow(col, vec3(0.88)), 1.0);
}