diff --git a/6_ice_plasma.frag b/6_ice_plasma.frag index 49f7730..939d15d 100644 --- a/6_ice_plasma.frag +++ b/6_ice_plasma.frag @@ -63,13 +63,13 @@ void main() { float feather = smoothstep(0.0, 0.10, min(min(f.x, 1.0 - f.x), min(f.y, 1.0 - f.y))); float facet = mix(1.0, mix(0.70, 1.25, hash(cell + seed + step(1.0, f.x + f.y) * 37.0)), feather); - float shade = 0.60 + 0.55 * lit; // soft light across the folded planes - float e = mass * facet * shade * 0.075 - + mass * (1.0 - mass) * 4.0 * 0.015 // thin torn silhouette - + mass * pow(lit, 14.0) * 0.045; // glint where a fold faces the light + float shade = 0.05 + 1.10 * lit * lit; // lit tops, near-black undersides + float e = mass * facet * shade * 0.085 + + mass * (1.0 - mass) * 4.0 * 0.040 // thin torn silhouette + + mass * pow(lit, 14.0) * 0.110; // glint where a fold faces the light vec3 col = e * mix(vec3(0.02, 0.42, 0.60), vec3(0.08, 0.64, 0.88), facet * 0.5); // Faint dye in the open gaps so darkness reads as depth, not as a hole. - col += smoothstep(0.40, 0.85, fbm(p * 0.30 + seed * 0.4 + o * 0.3)) * vec3(0.0001, 0.0004, 0.0006); + col += smoothstep(0.40, 0.85, fbm(p * 0.30 + seed * 0.4 + o * 0.3)) * vec3(0.0003, 0.0011, 0.0015); gl_FragColor = vec4(col, (0.42 + layer * 0.26) / 2.6); } diff --git a/7_ice_over.frag b/7_ice_over.frag index 615fc44..f25aacd 100644 --- a/7_ice_over.frag +++ b/7_ice_over.frag @@ -31,7 +31,7 @@ vec2 atlasUV(vec2 world, float layer) { } // Smooth frozen surface: two octaves, no bubbles, no grain. float height(vec2 x) { - return 0.22 * fbm(x * 0.85 + 2.0) + 0.06 * fbm(x * 2.6 - 5.0); + return 0.15 * fbm(x * 1.3 + 2.0) + 0.05 * fbm(x * 3.7 - 5.0); } void main() { vec2 screen = gl_FragCoord.xy / u_res; diff --git a/ice_plasma.html b/ice_plasma.html index 46ebe73..d01b8c9 100644 --- a/ice_plasma.html +++ b/ice_plasma.html @@ -16,8 +16,8 @@ canvas{display:block;width:100%;height:100%;touch-action:none}
Сквозь лёд
Двигайте мышь · скорость − / =