UNPKG

uix-kit

Version:

A free web kits for fast web design and development, compatible with Bootstrap v5.

94 lines 7.4 kB
{ "id": 3282, "name": "Fork of Cosmic Shader", "fragment": "#define TAU 6.28318530718\n#define MAX_ITER 5\n#define tau 6.2831853\n\nprecision highp float;\nprecision highp int;\nuniform vec2 Tiling_Caustic1477531952046_152_resolution;\nuniform vec3 backgroundColor;\nuniform vec3 Tiling_Caustic1477531952046_152_color;\nuniform float Tiling_Caustic1477531952046_152_speed;\nuniform float Tiling_Caustic1477531952046_152_brightness;\nuniform float time;\nuniform float contrast;\nuniform float distortion;\nuniform float Noise_Ripples1477531959288_166_speed;\nuniform vec3 Noise_Ripples1477531959288_166_color;\nuniform float Noise_Ripples1477531959288_166_brightness;\nuniform sampler2D noiseImage;\nuniform vec2 Noise_Ripples1477531959288_166_resolution;\nvarying vec2 Tiling_Caustic1477531952046_152_vUv;\nvarying vec2 Noise_Ripples1477531959288_166_vUv;\nmat2 makem2(in float theta) \n {\n float c = cos(theta);\n float s = sin(theta);\n return mat2(c, -s, s, c);\n }\nfloat noise(in vec2 x) \n {\n return texture2D(noiseImage, x * .01).x;\n }\nfloat fbm(in vec2 p) \n {\n float z = 2.;\n float rz = 0.;\n vec2 bp = p;\n for (float i = 1.;\n i < 6.0; i++) \n {\n rz += abs((noise(p) - 0.5) * 2.0) / z;\n z = z * 2.;\n p = p * 2.;\n }\n return rz;\n }\nfloat dualfbm(in vec2 p) \n {\n vec2 p2 = p * distortion;\n vec2 basis = vec2(fbm(p2 - time * Noise_Ripples1477531959288_166_speed * 1.6), fbm(p2 + time * Noise_Ripples1477531959288_166_speed * 1.7));\n basis = (basis - .5) * .2;\n p += basis;\n return fbm(p * makem2(time * Noise_Ripples1477531959288_166_speed * 0.2));\n }\nvec4 Tiling_Caustic1477531952046_152_main() \n {\n vec4 Tiling_Caustic1477531952046_152_gl_FragColor = vec4(0.0);\n vec2 uv = Tiling_Caustic1477531952046_152_vUv * Tiling_Caustic1477531952046_152_resolution;\n vec2 p = mod(uv * TAU, TAU) - 250.0;\n vec2 i = vec2(p);\n float c = 1.0;\n float inten = 0.005;\n for (int n = 0;\n n < MAX_ITER; n++) \n {\n float t = time * Tiling_Caustic1477531952046_152_speed * (1.0 - (3.5 / float(n + 1)));\n i = p + vec2(cos(t - i.x) + sin(t + i.y), sin(t - i.y) + cos(t + i.x));\n c += 1.0 / length(vec2(p.x / (sin(i.x + t) / inten), p.y / (cos(i.y + t) / inten)));\n }\n c /= float(MAX_ITER);\n c = 1.17 - pow(c, Tiling_Caustic1477531952046_152_brightness);\n vec3 rgb = vec3(pow(abs(c), 8.0));\n Tiling_Caustic1477531952046_152_gl_FragColor = vec4(rgb * Tiling_Caustic1477531952046_152_color + backgroundColor, 1.0);\n return Tiling_Caustic1477531952046_152_gl_FragColor *= 1.0;\n }\nvec4 Noise_Ripples1477531959288_166_main() \n {\n vec4 Noise_Ripples1477531959288_166_gl_FragColor = vec4(0.0);\n vec2 p = (Noise_Ripples1477531959288_166_vUv.xy - 0.5) * Noise_Ripples1477531959288_166_resolution;\n float rz = dualfbm(p);\n vec3 col = (Noise_Ripples1477531959288_166_color / rz) * Noise_Ripples1477531959288_166_brightness;\n col = ((col - 0.5) * max(contrast, 0.0)) + 0.5;\n Noise_Ripples1477531959288_166_gl_FragColor = vec4(col, 1.0);\n return Noise_Ripples1477531959288_166_gl_FragColor *= 1.0;\n }\nvoid main() \n {\n gl_FragColor = (Noise_Ripples1477531959288_166_main() + Tiling_Caustic1477531952046_152_main()); }\n", "vertex": "precision highp float;\nprecision highp int;\nuniform mat4 modelMatrix;\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform mat4 viewMatrix;\nuniform mat3 normalMatrix;\nuniform vec3 cameraPosition;\nuniform float time;\nattribute vec3 position;\nattribute vec3 normal;\nattribute vec2 uv;\nattribute vec2 uv2;\nvarying vec3 Tiling_Caustic1477531952046_152_vPosition;\nvarying vec3 Tiling_Caustic1477531952046_152_vNormal;\nvarying vec2 Tiling_Caustic1477531952046_152_vUv;\nvarying vec2 Tiling_Caustic1477531952046_152_vUv2;\nvarying vec3 Noise_Ripples1477531959288_166_vPosition;\nvarying vec3 Noise_Ripples1477531959288_166_vNormal;\nvarying vec2 Noise_Ripples1477531959288_166_vUv;\nvarying vec2 Noise_Ripples1477531959288_166_vUv2;\nvec4 Tiling_Caustic1477531952046_152_main() \n {\n vec4 Tiling_Caustic1477531952046_152_gl_Position = vec4(0.0);\n Tiling_Caustic1477531952046_152_vNormal = normal;\n Tiling_Caustic1477531952046_152_vUv = uv;\n Tiling_Caustic1477531952046_152_vUv2 = uv2;\n Tiling_Caustic1477531952046_152_vPosition = position;\n Tiling_Caustic1477531952046_152_gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n return Tiling_Caustic1477531952046_152_gl_Position *= 1.0;\n }\nvec4 Noise_Ripples1477531959288_166_main() \n {\n vec4 Noise_Ripples1477531959288_166_gl_Position = vec4(0.0);\n Noise_Ripples1477531959288_166_vNormal = normal;\n Noise_Ripples1477531959288_166_vUv = uv;\n Noise_Ripples1477531959288_166_vUv2 = uv2;\n Noise_Ripples1477531959288_166_vPosition = position;\n Noise_Ripples1477531959288_166_gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n return Noise_Ripples1477531959288_166_gl_Position *= 1.0;\n }\nvoid main() \n {\n gl_Position = Tiling_Caustic1477531952046_152_main() + Noise_Ripples1477531959288_166_main(); }\n", "uniforms": { "cameraPosition": { "type": "v3", "glslType": "vec3" }, "time": { "type": "f", "glslType": "float" }, "backgroundColor": { "value": { "r": 0.08235294117647059, "g": 0.06274509803921569, "b": 0.19607843137254902 }, "type": "c", "glslType": "vec3" }, "Tiling_Caustic1477531952046_152_resolution": { "value": { "x": 1, "y": 1 }, "type": "v2", "glslType": "vec2" }, "Tiling_Caustic1477531952046_152_color": { "value": { "r": 0.4666666666666667, "g": 0.9294117647058824, "b": 0.9529411764705882 }, "type": "c", "glslType": "vec3" }, "Tiling_Caustic1477531952046_152_speed": { "value": "0.5", "type": "f", "glslType": "float" }, "Tiling_Caustic1477531952046_152_brightness": { "value": "1.5", "type": "f", "glslType": "float" }, "noiseImage": { "value": null, "type": "t", "glslType": "sampler2D" }, "distortion": { "value": "1", "type": "f", "glslType": "float" }, "contrast": { "value": "1.4", "type": "f", "glslType": "float" }, "Noise_Ripples1477531959288_166_speed": { "value": "0.1", "type": "f", "glslType": "float" }, "Noise_Ripples1477531959288_166_color": { "value": { "r": 0.6823529411764706, "g": 0.7725490196078432, "b": 0.6666666666666666 }, "type": "c", "glslType": "vec3" }, "Noise_Ripples1477531959288_166_brightness": { "value": "0.1", "type": "f", "glslType": "float" }, "Noise_Ripples1477531959288_166_resolution": { "value": { "x": "2", "y": "2" }, "type": "v2", "glslType": "vec2" } } }