☰
✎ Voronoi Cells
bearbeiten
Bereit
Vertex Shader
Kopieren
attribute vec2 a_position; void main() { gl_Position = vec4(a_position, 0.0, 1.0); }
Fragment Shader
Kopieren
precision mediump float; uniform float u_time; uniform vec2 u_resolution; uniform vec2 u_mouseNorm; uniform vec4 u_mouseClick; vec2 hash2(vec2 p) { return fract(sin(vec2(dot(p, vec2(127.1, 311.7)), dot(p, vec2(269.5, 183.3)))) * 43758.5453); } void main() { vec2 uv = gl_FragCoord.xy / u_resolution.xy; float t = u_time * 0.2; vec2 mouse = u_mouseNorm; vec3 col = vec3(0.05); float m_dist = 1.0; vec2 m_point = vec2(0.0); for (float j = 0.0; j < 3.0; j++) { for (float i = 0.0; i < 3.0; i++) { vec2 g = vec2(i, j); vec2 o = hash2(g + floor(uv * 6.0) + j * 50.0); o = 0.5 + 0.4 * sin(t + 6.2831 * o); vec2 r = g + o - fract(uv * 6.0); float d = dot(r, r); if (d < m_dist) { m_dist = d; m_point = o; } } } col = vec3(0.5 + 0.5*cos(6.2831*m_point.x + vec3(0.0, 1.0, 2.0))); col *= 1.0 - 0.5 * m_dist; float mouseDist = length(uv - mouse); col += vec3(1.0, 0.3, 0.1) * smoothstep(0.15, 0.0, mouseDist) * u_mouseClick.z; gl_FragColor = vec4(col, 1.0); }
💾 Speichern
⬇ Export JSON
← Zurück
Live-Vorschau
FPS: --
↻ Neu laden
⏸ Pause