{"history":[{"breakpoints":[],"visible":true,"aspectRatio":1,"userDownsample":1,"layerType":"effect","type":"gradient","usesPingPong":false,"texture":false,"animating":false,"mouseMomentum":0,"mouseSpring":0,"isMask":0,"compiledFragmentShaders":["#version 300 es\n// Copyright (c) Unicorn Studio. Licensed under the Unicorn Studio Commercial License.\n// Unauthorized copying, redistribution, or use in competing products is prohibited.\nprecision highp float;in vec2 vTextureCoord;uniform vec2 uMousePos;const float PI = 3.14159265359;vec2 rotate(vec2 coord, float angle) {\nfloat s = sin(angle);\nfloat c = cos(angle);\nreturn vec2(\ncoord.x * c - coord.y * s,\ncoord.x * s + coord.y * c\n);\n}out vec4 fragColor;vec3 getBgColor(vec2 uv) {return vec3(0, 0, 0);\n}void main() {vec2 uv = vTextureCoord;\nvec2 pos = vec2(0.5, 0.5) + mix(vec2(0), (uMousePos-0.5), 0.0000);\nuv -= pos;\nuv /= max(0.5000*2., 1e-5);\nuv = rotate(uv, (0.0000 - 0.5) * 2. * PI);\nvec4 color = vec4(getBgColor(uv), 1.0) * 1.0000;\nfragColor = color;\n}"],"compiledVertexShaders":["#version 300 es\n// Copyright (c) Unicorn Studio. Licensed under the Unicorn Studio Commercial License.\n// Unauthorized copying, redistribution, or use in competing products is prohibited.\nprecision mediump float;in vec3 aVertexPosition;\nin vec2 aTextureCoord;uniform mat4 uMVMatrix;\nuniform mat4 uPMatrix;out vec2 vTextureCoord;\nout vec3 vVertexPosition;void main() {\ngl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);\nvTextureCoord = aTextureCoord;\n}"],"speed":0.25,"trackMouse":0,"trackAxes":"xy","data":{"downSample":0.5,"depth":false,"uniforms":{},"isBackground":true},"id":"e85f0b5c-df93-4d75-9f17-812bfaec4418","publicId":"gradient"},{"breakpoints":[],"aspectRatio":1.7917760279965005,"userDownsample":1,"states":{"appear":[],"scroll":[],"hover":[],"mousemove":[]},"effects":[],"anchorPoint":8,"mask":0,"maskInvert":0,"maskDepth":0,"maskDepthLayer":0,"layerType":"image","width":1945.8687664041995,"widthMode":1,"height":1086,"heightMode":2,"left":0.5,"top":0.5,"src":"https://assets.unicorn.studio/images/yz2fMXDBxXUg89RVHVlO0vQPLsJ3/background-3.jpg","imageNaturalSize":{"type":"Vec2","_x":2048,"_y":1143},"compiledFragmentShaders":["#version 300 es\n// Copyright (c) Unicorn Studio. Licensed under the Unicorn Studio Commercial License.\n// Unauthorized copying, redistribution, or use in competing products is prohibited.\nprecision highp float;in vec2 vTextureCoord;\nin vec3 vVertexPosition;uniform sampler2D uSourceImage;uniform vec2 uArtboardResolution;\nuniform vec2 uMousePos;\nuniform sampler2D uBgTexture;const float TAU = 6.28318530718;\nconst float PI = 3.14159265359;out vec4 fragColor;vec2 rotate2D(vec2 p, float angle) {\nfloat s = sin(angle);\nfloat c = cos(angle);\nreturn vec2(p.x * c - p.y * s, p.x * s + p.y * c);\n}vec2 getAnchorOffsets() {\nreturn vec2(0.5, 0.5);\n}vec4 sampleImage(vec2 canvasUV, vec2 mouseOffset, vec2 mouseRotOffset) {\nvec2 canvasPos = vec2(canvasUV.x * uArtboardResolution.x, (1.0 - canvasUV.y) * uArtboardResolution.y);\nvec2 imageUV;float absWidth = 1945.8688;\nfloat absHeight = 1086.0000 * uArtboardResolution.y;\nabsWidth = absWidth;\nabsHeight = (1 != 2 && 2 == 2) ? absWidth / 1.7918 : absHeight;vec2 elementSizePx = vec2(absWidth, absHeight);\nvec2 elementPosPx = vec2(0.5000, 0.5000) * uArtboardResolution - getAnchorOffsets() * elementSizePx;vec2 centerPos = elementPosPx + (elementSizePx * 0.5);\nvec2 relPos = canvasPos - centerPos + mouseOffset;\nvec2 unrotatedRelPos = rotate2D(relPos, 0.0000 * -TAU);\nvec2 elementPos = unrotatedRelPos + (elementSizePx * 0.5);\nimageUV = elementPos / elementSizePx;\nvec2 flippedUV = vec2(imageUV.x, 1.0 - imageUV.y);\nvec4 color = textureLod(uSourceImage, flippedUV, 0.0);\nif (imageUV.x >= 0.0 && imageUV.x <= 1.0 && imageUV.y >= 0.0 && imageUV.y <= 1.0) {\nreturn color;\n} else {\nreturn vec4(0.0);\n}\n}vec4 getNormalOutput(vec4 color, vec4 background) {\nreturn mix(background, color + background * (1.0 - color.a), 1.0000);\n}vec4 getOutputByMode(vec4 color, vec4 background) {\nreturn getNormalOutput(color, background);\n}vec4 applyImageAdjustments(vec4 color) {\nvec3 exposureColor = clamp(color.rgb + -0.0100, 0.0, 1.0);\ncolor.rgb = mix(color.rgb, exposureColor, color.a);vec3 contrasted = 1.0400 * (color.rgb - 0.5) + 0.5;\ncolor.rgb = mix(color.rgb, contrasted, color.a);color.rgb = clamp(color.rgb, 0.0, 1.0);\ncolor.rgb *= color.a;\nreturn color;\n}vec4 getCompositeOutput(vec2 uv, vec2 mouseOffsetPx, vec2 mouseRotOffset) {\nvec4 background = vec4(0);background = texture(uBgTexture, vTextureCoord);\nvec4 color = sampleImage(uv, mouseOffsetPx, mouseRotOffset);\ncolor = applyImageAdjustments(color);return getOutputByMode(color, background);\n}void main() {\nvec2 uv = vTextureCoord;\nvec2 mouseOffsetUV = (uMousePos - 0.5) * 0.0000;\nvec2 mouseOffsetPx = mouseOffsetUV;\nvec2 mouseRotOffset = (uMousePos - 0.5) * 0.0000 * PI * 0.5;\nuv -= mouseOffsetUV;\nfragColor = getCompositeOutput(uv, mouseOffsetPx, mouseRotOffset);\n}"],"compiledVertexShaders":["#version 300 es\n// Copyright (c) Unicorn Studio. Licensed under the Unicorn Studio Commercial License.\n// Unauthorized copying, redistribution, or use in competing products is prohibited.\nprecision highp float;in vec3 aVertexPosition;\nin vec2 aTextureCoord;uniform mat4 uMVMatrix;\nuniform mat4 uPMatrix;\nuniform vec2 uMousePos;out vec2 vTextureCoord;\nout vec3 vVertexPosition;void main() {\nfloat angleX = uMousePos.y * 0.5 - 0.25;\nfloat angleY = (1.-uMousePos.x) * 0.5 - 0.25;mat4 rotateX = mat4(1.0, 0.0, 0.0, 0.0,\n0.0, cos(angleX), -sin(angleX), 0.0,\n0.0, sin(angleX), cos(angleX), 0.0,\n0.0, 0.0, 0.0, 1.0);\nmat4 rotateY = mat4(cos(angleY), 0.0, sin(angleY), 0.0,\n0.0, 1.0, 0.0, 0.0,\n-sin(angleY), 0.0, cos(angleY), 0.0,\n0.0, 0.0, 0.0, 1.0);mat4 rotationMatrix = rotateX * rotateY;\ngl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);\nvVertexPosition = (rotationMatrix * vec4(aVertexPosition, 1.0)).xyz;\nvTextureCoord = (vec4(aTextureCoord, 0.0, 1.0)).xy;\n}"],"data":{"uniforms":{"artboardResolution":{"name":"uArtboardResolution","type":"2f","value":{"type":"Vec2","_x":1920,"_y":1080}},"aspectRatio":{"name":"uAspectRatio","type":"1f","value":1.7917760279965005}},"elementOpacity":1},"id":"cde40026-2cad-4a43-ad80-21d2923f650d","publicId":"image"},{"breakpoints":[],"visible":true,"aspectRatio":1,"userDownsample":1,"layerType":"effect","type":"fastFog","usesPingPong":false,"texture":false,"animating":true,"mouseMomentum":0.16,"mouseSpring":0,"isMask":0,"compiledFragmentShaders":["#version 300 es\n// Copyright (c) Unicorn Studio. Licensed under the Unicorn Studio Commercial License.\n// Unauthorized copying, redistribution, or use in competing products is prohibited.\nprecision highp float;\nprecision highp int;in vec3 vVertexPosition;\nin vec2 vTextureCoord;uniform sampler2D uTexture;\nuniform float uTime;\nuniform vec2 uMousePos;\nuniform vec2 uResolution;\nfloat ease (int easingFunc, float t) {\nreturn t * (2.0 - t);\n}out vec4 fragColor;mat2 rot(float a) {\nreturn mat2(cos(a),-sin(a),sin(a),cos(a));\n}const float PHI = 1.618033988;\nconst float PI = 3.14159265359;float interleavedGradientNoise(vec2 st) {\nreturn fract(52.9829189 * fract(dot(st, vec2(0.06711056, 0.00583715))));\n}float ignGaussian4(vec2 st) {\nfloat n0 = interleavedGradientNoise(st + vec2(0.5, 0.5));\nfloat n1 = interleavedGradientNoise(st + vec2(5.2, 1.3));\nfloat n2 = interleavedGradientNoise(st + vec2(1.7, 9.2));\nfloat n3 = interleavedGradientNoise(st + vec2(8.3, 2.8));\nreturn (n0 + n1 + n2 + n3 - PHI) * PHI;\n}vec2 rot90(vec2 v) {\nreturn vec2(v.y, -v.x);\n}float dot_noise(vec3 p) {\nconst mat3 GOLD = mat3(\n-0.571464913, +0.814921382, +0.096597072,\n-0.278044873, -0.303026659, +0.911518454,\n+0.772087367, +0.494042493, +0.399753815);\nreturn dot(cos(GOLD * p), sin(PHI * p * GOLD));\n}float cheap_fbm(vec3 p) {\nmat2 rota = mat2(0.6, -0.8, 0.8, 0.6);\nfloat nos = 0.;\nfloat amp = 1. + 0.8400 * 10.;\nfloat xp = sqrt(2.);\nfloat halfxp = xp * 0.5;\nfor(int i = 0; i < 10; i++) {\nfloat theta = uTime * 0.05 + float(i);\np.xy *= xp;\np.xy += sin(rota * p.xy * xp + theta) * 0.2;\nfloat nz = dot_noise(vec3(p.xy * rota, p.z + theta));\nnos += nz * amp * rota[0][0];\namp *= halfxp;\nrota *= mat2(0.6, -0.8, 0.8, 0.6);\n}\nnos *= 1./float(10);\nfloat density = -3. + 0.2500 * 6.;\nreturn smoothstep(-3., 3., nos + density);\n}float fnoise(vec2 uv) {\nfloat aspectRatio = uResolution.x/uResolution.y;\nvec2 aspect = vec2(aspectRatio, 1);\nfloat multiplier = 10.0 * (0.6440 / ((aspectRatio + 1.) / 2.));vec2 st = ((uv * aspect - vec2(0.5038440417353103, 0.5283116724632375) * aspect)) * multiplier * rot((0.6453) * 2. * PI);\nst *= vec2((1.0 + 0.0000 * 2.0), 1.0);vec2 mPos = vec2(0.5038440417353103, 0.5283116724632375) + mix(vec2(0), (uMousePos-0.5), 0.0000);\nvec2 pos = mix(vec2(0.5038440417353103, 0.5283116724632375), mPos, floor(1.0000));\nfloat dist = ease(2, max(0.,1.-distance(uv * aspect, mPos * aspect) * 4. * (1. - 1.0000)));if (0 == 1) {\ndist = max(0., (0.5 - dist));\n}\nfloat time = uTime * 0.05;\nvec2 drift = vec2(time * 0.2) * 2.0 * 1.0000 * rot(0.125 * 2. * PI);\nfloat fbm = cheap_fbm(vec3(st - drift, time)) * dist;\nfbm = fbm / (1. + fbm);\nreturn fbm;\n}vec4 fastFogBlur(vec2 uv) {\nfloat fogNoise = fnoise(uv);\nvec2 px = gl_FragCoord.xy;\nvec2 texel = 1.0 / uResolution;\nfloat aspectRatio = uResolution.x / uResolution.y;\nvec2 aspect = vec2(aspectRatio, 1.0);\nfloat blurStrength = 0.5000;\nfloat baseRadius = (blurStrength * 100.0) * texel.y;if (baseRadius <= texel.y) {\nreturn vec4(texture(uTexture, uv).rgb, fogNoise);\n}float noise = interleavedGradientNoise(px * 1.212);\nfloat angle = noise * 2.0 * PI;\nvec2 screenAxis = vec2(cos(angle), sin(angle));\nvec2 screenAxisPerp = rot90(screenAxis);\nvec2 axis = screenAxis / aspect;\nvec2 axisPerp = screenAxisPerp / aspect;\nvec2 diag = (axis + axisPerp) * 0.7071;\nvec2 diagPerp = (axisPerp - axis) * 0.7071;float jitter = ignGaussian4(px);\njitter = clamp(jitter, -PHI, PHI);\njitter *= 0.46;float radius = baseRadius * (1.0 + jitter) * fogNoise;\nradius = max(radius, 0.0);if (radius <= texel.y * 0.5) {\nreturn vec4(texture(uTexture, uv).rgb, clamp(fogNoise, 0.0, 1.0));\n}float innerR = radius * 0.5;\nvec4 color = vec4(0.0);\ncolor += texture(uTexture, uv + axis * radius);\ncolor += texture(uTexture, uv - axis * radius);\ncolor += texture(uTexture, uv + axisPerp * radius);\ncolor += texture(uTexture, uv - axisPerp * radius);\ncolor += texture(uTexture, uv + diag * innerR);\ncolor += texture(uTexture, uv - diag * innerR);\ncolor += texture(uTexture, uv + diagPerp * innerR);\ncolor += texture(uTexture, uv - diagPerp * innerR);\nreturn vec4((color * 0.125).rgb, clamp(fogNoise, 0.0, 1.0));\n}void main() {\nvec2 uv = vTextureCoord;\nvec4 color = vec4(0);color = fastFogBlur(uv);\nfragColor = color;}","#version 300 es\n// Copyright (c) Unicorn Studio. Licensed under the Unicorn Studio Commercial License.\n// Unauthorized copying, redistribution, or use in competing products is prohibited.\nprecision highp float;\nprecision highp int;in vec3 vVertexPosition;\nin vec2 vTextureCoord;uniform sampler2D uTexture;\nuniform vec2 uResolution;out vec4 fragColor;const float PHI = 1.618033988;\nconst float PI = 3.14159265359;float interleavedGradientNoise(vec2 st) {\nreturn fract(52.9829189 * fract(dot(st, vec2(0.06711056, 0.00583715))));\n}vec2 rot90(vec2 v) {\nreturn vec2(v.y, -v.x);\n}vec4 gaussianBlur(vec2 uv) {\nfloat fogNoise = clamp(texture(uTexture, uv).a, 0.0, 1.0);\nfloat radius = 0.5000 * 60.0 * fogNoise;\nradius = max(radius, 0.000);\nfloat jitter = interleavedGradientNoise(gl_FragCoord.xy);\nvec2 texel = (radius / uResolution);\nvec2 at = texel * vec2(1.0, uResolution.x / uResolution.y);vec4 color = vec4(0.0);color += texture(uTexture, uv + vec2(at.x, 0.0)) * 0.0719;\ncolor += texture(uTexture, uv - vec2(at.x, 0.0)) * 0.0719;\ncolor += texture(uTexture, uv + vec2(0.0, at.y)) * 0.0719;\ncolor += texture(uTexture, uv - vec2(0.0, at.y)) * 0.0719;\ncolor += texture(uTexture, uv + at) * 0.0635;\ncolor += texture(uTexture, uv - at) * 0.0635;\ncolor += texture(uTexture, uv + vec2(at.x, -at.y)) * 0.0635;\ncolor += texture(uTexture, uv + vec2(-at.x, at.y)) * 0.0635;vec2 at2 = rot90(at) * 2.0;\ncolor += texture(uTexture, uv + vec2(at2.x, 0.0)) * 0.0494;\ncolor += texture(uTexture, uv - vec2(at2.x, 0.0)) * 0.0494;\ncolor += texture(uTexture, uv + vec2(0.0, at2.y)) * 0.0494;\ncolor += texture(uTexture, uv - vec2(0.0, at2.y)) * 0.0494;\ncolor += texture(uTexture, uv + at2) * 0.0300;\ncolor += texture(uTexture, uv - at2) * 0.0300;\ncolor += texture(uTexture, uv + vec2(at2.x, -at2.y)) * 0.0300;\ncolor += texture(uTexture, uv + vec2(-at2.x, at2.y)) * 0.0300;vec2 at3 = at * 3.0;\ncolor += texture(uTexture, uv + vec2(at3.x, 0.0)) * 0.0265;\ncolor += texture(uTexture, uv - vec2(at3.x, 0.0)) * 0.0265;\ncolor += texture(uTexture, uv + vec2(0.0, at3.y)) * 0.0265;\ncolor += texture(uTexture, uv - vec2(0.0, at3.y)) * 0.0265;\ncolor += texture(uTexture, uv + at3) * 0.0087;\ncolor += texture(uTexture, uv - at3) * 0.0087;\ncolor += texture(uTexture, uv + vec2(at3.x, -at3.y)) * 0.0087;\ncolor += texture(uTexture, uv + vec2(-at3.x, at3.y)) * 0.0087;return color;\n}void main() {\nvec2 uv = vTextureCoord;\nvec4 color = vec4(0);color = gaussianBlur(uv);\nfragColor = color;}","#version 300 es\n// Copyright (c) Unicorn Studio. Licensed under the Unicorn Studio Commercial License.\n// Unauthorized copying, redistribution, or use in competing products is prohibited.\nprecision highp float;\nprecision highp int;in vec3 vVertexPosition;\nin vec2 vTextureCoord;uniform sampler2D uTexture;\nuniform sampler2D uBgTexture;\nuniform vec2 uResolution;\nuvec2 pcg2d(uvec2 v) {\nv = v * 1664525u + 1013904223u;\nv.x += v.y * v.y * 1664525u + 1013904223u;\nv.y += v.x * v.x * 1664525u + 1013904223u;\nv ^= v >> 16;\nv.x += v.y * v.y * 1664525u + 1013904223u;\nv.y += v.x * v.x * 1664525u + 1013904223u;\nreturn v;\n}float randFibo(vec2 p) {\nuvec2 v = floatBitsToUint(p);\nv = pcg2d(v);\nuint r = v.x ^ v.y;\nreturn float(r) / float(0xffffffffu);\n}vec3 blend (int blendMode, vec3 src, vec3 dst) {\nreturn src + dst;\n}out vec4 fragColor;vec3 chromatic_aberration(vec3 color, vec2 uv, float amount) {\nvec2 offset = normalize(vTextureCoord - 0.5) * amount / vec2(uResolution.x/uResolution.y, 1);\nvec4 left = texture(uTexture, uv - offset);\nvec4 right = texture(uTexture, uv + offset);color.r = left.r;\ncolor.b = right.b;return color;\n}const float PHI = 1.618033988;\nconst float PI = 3.14159265359;float interleavedGradientNoise(vec2 st) {\nreturn fract(52.9829189 * fract(dot(st, vec2(0.06711056, 0.00583715))));\n}vec4 fogComposite(vec2 uv) {\nfloat ign = interleavedGradientNoise(gl_FragCoord.xy) - 0.5;\nfloat fogNoise = clamp(texture(uTexture, uv).a, 0.0, 1.0);\nvec2 jitter = vec2(0, ign * 0.02) * 0.5000;\nvec4 blur = texture(uTexture, uv + jitter);\nblur.a = clamp(fogNoise, 0.0, 1.0);\nfloat fogMask = clamp(fogNoise * 2., 0., 1.);\nvec4 bg = texture(uBgTexture, uv);vec3 grain = vec3(randFibo(uv + fogNoise));blur.rgb = chromatic_aberration(blur.rgb, uv, fogMask * 0.01 * 0.5000 * (0.2400 * 1.5));\nblur.rgb = (blur.rgb * (0.4800 + 0.5)) + grain * 0.05;\nvec4 foggedBlur = vec4(blur.rgb * vec3(0.9607843137254902, 0, 0.19607843137254902), bg.a);\nfoggedBlur.rgb += (0.1200 * 0.25 * fogMask * vec3(0.9607843137254902, 0, 0.19607843137254902));\nfoggedBlur.rgb = blend(1, bg.rgb, foggedBlur.rgb * fogMask);\nreturn foggedBlur;\n}void main() {\nvec2 uv = vTextureCoord;\nvec4 color = vec4(0);color = fogComposite(uv);\nfragColor = color;}"],"compiledVertexShaders":["#version 300 es\n// Copyright (c) Unicorn Studio. Licensed under the Unicorn Studio Commercial License.\n// Unauthorized copying, redistribution, or use in competing products is prohibited.\nprecision mediump float;in vec3 aVertexPosition;\nin vec2 aTextureCoord;uniform mat4 uMVMatrix;\nuniform mat4 uPMatrix;\nuniform mat4 uTextureMatrix;out vec2 vTextureCoord;\nout vec3 vVertexPosition;void main() {\ngl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);\nvTextureCoord = (uTextureMatrix * vec4(aTextureCoord, 0.0, 1.0)).xy;\n}"],"speed":0.18,"trackMouse":0,"trackAxes":"xy","data":{"downSample":0.5,"depth":false,"uniforms":{},"isBackground":false,"passes":[{"prop":"pass","value":1,"downSample":0.5,"passDescription":"Blur the fog field for a softer result."},{"prop":"pass","value":2,"includeBg":true,"passDescription":"Composite the fog over the background."}]},"id":"04203936-6b4d-4610-a167-34018a71cc90","publicId":"fast_fog"},{"breakpoints":[],"visible":true,"aspectRatio":1,"userDownsample":1,"layerType":"effect","type":"vignette","usesPingPong":false,"texture":false,"animating":false,"mouseMomentum":0,"mouseSpring":0,"isMask":0,"compiledFragmentShaders":["#version 300 es\n// Copyright (c) Unicorn Studio. Licensed under the Unicorn Studio Commercial License.\n// Unauthorized copying, redistribution, or use in competing products is prohibited.\nprecision highp float;\nin vec3 vVertexPosition;\nin vec2 vTextureCoord;\nuniform sampler2D uTexture;\nuniform vec2 uResolution;\nvec4 applyLayerMix(vec4 color, vec4 bg, float amount) {\ncolor.rgb = mix(bg.rgb, color.rgb, amount);\ncolor.a = max(bg.a, amount);\nreturn color;\n}const float TAU = 6.28318530718;out vec4 fragColor;\nmat2 rot(float a) {\nreturn mat2(cos(a),-sin(a),sin(a),cos(a));\n}\nvoid main() {\nvec2 uv = vTextureCoord;\nvec4 color = texture(uTexture, uv);\nfloat displacement = 0.0;vec2 aspectRatio = vec2(uResolution.x/uResolution.y, 1.0);\nvec2 skew = vec2(0.5000, 1.0 - 0.5000);\nfloat halfRadius = 0.9260 * 0.5;\nfloat innerEdge = halfRadius - 1.0000 * halfRadius * 0.5;\nfloat outerEdge = halfRadius + 1.0000 * halfRadius * 0.5;\nvec2 pos = vec2(0.705574912891986, 0.4442508710801394);\nvec2 scaledUV = uv * aspectRatio * rot(-0.0972 * TAU) * skew;\nvec2 scaledPos = pos * aspectRatio * rot(-0.0972 * TAU) * skew;\nfloat radius = distance(scaledUV, scaledPos);\nfloat falloff = smoothstep(innerEdge + displacement, outerEdge + displacement, radius);\nvec4 vignetteColor;vignetteColor = applyLayerMix(vec4(vec3(0, 0, 0), 1.0), color, falloff * 1.0000);\nvec4 col = mix(color * (1.-falloff), vec4(vignetteColor.rgb, vignetteColor.a), 1.0000);\nfragColor = col;}"],"compiledVertexShaders":["#version 300 es\n// Copyright (c) Unicorn Studio. Licensed under the Unicorn Studio Commercial License.\n// Unauthorized copying, redistribution, or use in competing products is prohibited.\nprecision mediump float;in vec3 aVertexPosition;\nin vec2 aTextureCoord;uniform mat4 uMVMatrix;\nuniform mat4 uPMatrix;\nuniform mat4 uTextureMatrix;out vec2 vTextureCoord;\nout vec3 vVertexPosition;void main() {\ngl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);\nvTextureCoord = (uTextureMatrix * vec4(aTextureCoord, 0.0, 1.0)).xy;\n}"],"trackMouse":0,"trackAxes":"xy","data":{"depth":false,"uniforms":{},"isBackground":false},"id":"4a82b2d1-df37-4f8e-92fc-e89e631df9cb","publicId":"vignette"}],"options":{"name":"BLR","fps":60,"dpi":1.5,"scale":1,"includeLogo":false,"isProduction":false,"flatten":false},"version":"2.1.12","id":"EALARkgCvPu09RLVlKOF"}
