shaders 2.3.56 → 2.3.59
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/{AngularBlur-HQuGCKow.js → AngularBlur-CHTeMEG5.js} +3 -2
- package/dist/core/{Ascii-BmSlALjq.js → Ascii-CmRuGRU3.js} +2 -1
- package/dist/core/{Aurora-BDnL1XdK.js → Aurora-CF3ANMDG.js} +2 -2
- package/dist/core/{Beam-CyRoRQEj.js → Beam-DtcIK_b_.js} +2 -2
- package/dist/core/{Blob-CunyZ0A6.js → Blob-BnpAPM8l.js} +2 -2
- package/dist/core/{Blur-NNElJwzj.js → Blur-DpAOfmjB.js} +2 -1
- package/dist/core/{Bulge-Ca9hW7y4.js → Bulge-C3jFPuOK.js} +3 -2
- package/dist/core/{CRTScreen-BHKDJ9_0.js → CRTScreen-cc_j5lyg.js} +2 -1
- package/dist/core/{ChannelBlur-A0r5Gx_y.js → ChannelBlur-4f44pSJj.js} +2 -1
- package/dist/core/{Checkerboard-XJh_tV6B.js → Checkerboard-D1ae-0n2.js} +2 -2
- package/dist/core/{ChromaFlow-Cc647Knw.js → ChromaFlow-CeXcR6pL.js} +1 -1
- package/dist/core/{ChromaticAberration-CYvju_kr.js → ChromaticAberration-B4012BNj.js} +3 -2
- package/dist/core/{Circle-ChQqil0S.js → Circle-DOQ5F63j.js} +2 -2
- package/dist/core/{ConcentricSpin-CnuAW_6I.js → ConcentricSpin-Ct7YyQP3.js} +3 -2
- package/dist/core/{ContourLines-DJ0R9q6Y.js → ContourLines-DWw0CHEU.js} +1 -1
- package/dist/core/{CursorRipples-Dn_rE8nA.js → CursorRipples-Dl6VZaiT.js} +3 -2
- package/dist/core/{CursorTrail-DD4YxAqo.js → CursorTrail-B7RS5cXG.js} +2 -2
- package/dist/core/{DiffuseBlur-GlibDd8O.js → DiffuseBlur-o0h84ibu.js} +3 -2
- package/dist/core/{Dither-BOWyA2dp.js → Dither-BIhaGd7d.js} +3 -2
- package/dist/core/{DotGrid-Cm-wz6WU.js → DotGrid-CrBCbO3M.js} +1 -1
- package/dist/core/{Duotone-C8mRw_1e.js → Duotone-HYxV5a8V.js} +4 -3
- package/dist/core/{FloatingParticles-GkVY1twT.js → FloatingParticles-DeWwEtlq.js} +1 -1
- package/dist/core/{FlowField-S_LXjhaN.js → FlowField-Bo4T5OFm.js} +3 -2
- package/dist/core/{GlassTiles--hbefQlc.js → GlassTiles-DR6mVq-O.js} +2 -1
- package/dist/core/{Glitch-lbgQYebN.js → Glitch-D3mDX28q.js} +2 -1
- package/dist/core/{Glow-DM9zbhbr.js → Glow-CN4IeRq4.js} +2 -1
- package/dist/core/{Godrays-DVo1ikUR.js → Godrays-CcJx19_L.js} +1 -1
- package/dist/core/{Grid-BmYSb6Ur.js → Grid-Cvpth9Oi.js} +1 -1
- package/dist/core/{GridDistortion-PNU8pi2I.js → GridDistortion-cTIdpRyG.js} +3 -2
- package/dist/core/{Halftone-BlY2LuT8.js → Halftone-BEPTnKW6.js} +1 -1
- package/dist/core/{Invert-oYct5uwC.js → Invert-c6RNEzsq.js} +1 -3
- package/dist/core/{Kaleidoscope-BXKsOJl2.js → Kaleidoscope-Cnfedu-B.js} +3 -2
- package/dist/core/{LensFlare-BWl8PWjv.js → LensFlare-DNO4UQG8.js} +1 -1
- package/dist/core/{LinearBlur-gV1sIMuQ.js → LinearBlur-C_bpZQcG.js} +3 -2
- package/dist/core/{LinearGradient-C5kz9RSs.js → LinearGradient-Bc1INE7C.js} +2 -2
- package/dist/core/{Liquify-CtUvuV0S.js → Liquify-D5sl_Rtk.js} +3 -2
- package/dist/core/{Mirror-C3Bn9m7T.js → Mirror-C0hacD-B.js} +3 -2
- package/dist/core/{Perspective-NsMXVWAS.js → Perspective-CfC6bKsJ.js} +3 -2
- package/dist/core/{Pixelate-C-LbtIjf.js → Pixelate-Bxo1bkqM.js} +2 -1
- package/dist/core/{Plasma-Dr516u2H.js → Plasma-D5gyjFl8.js} +2 -2
- package/dist/core/{PolarCoordinates-HVxz9oX-.js → PolarCoordinates-BhAihp7Z.js} +3 -2
- package/dist/core/{ProgressiveBlur-Cf2pKf8U.js → ProgressiveBlur-CJavcHQI.js} +3 -2
- package/dist/core/{RadialGradient-Bel2cjwV.js → RadialGradient-D4yl6nJ-.js} +2 -2
- package/dist/core/{RectangularCoordinates-BfeH7Mp6.js → RectangularCoordinates-CtXnf1mj.js} +3 -2
- package/dist/core/{Ripples-DBqbjqb_.js → Ripples-DbZdh29z.js} +2 -2
- package/dist/core/{Sharpness-C5h9h3NY.js → Sharpness-DAu01Qy4.js} +2 -1
- package/dist/core/{Shatter-BDTHZrbz.js → Shatter-CYHavYlJ.js} +3 -2
- package/dist/core/{SimplexNoise-DU-QPbwp.js → SimplexNoise-VmkKWJJ_.js} +2 -2
- package/dist/core/{SineWave-CsoVJf9C.js → SineWave-BJiQQ5mH.js} +1 -1
- package/dist/core/{SolidColor-BOK2t0JT.js → SolidColor-Dym-TMi_.js} +1 -1
- package/dist/core/{Spherize-BxUTtFAg.js → Spherize-tGTqCifk.js} +4 -7
- package/dist/core/{Spiral-DVURsiiQ.js → Spiral-q4HnjiwB.js} +2 -2
- package/dist/core/{Strands-C2l4JaUt.js → Strands-BPQ8qqBR.js} +1 -1
- package/dist/core/{Stretch-uSJDtqi2.js → Stretch-DnMB46Ey.js} +3 -2
- package/dist/core/{Stripes-IFl3of9w.js → Stripes-Bb3sqRlB.js} +2 -2
- package/dist/core/{StudioBackground-DbBGv5fk.js → StudioBackground-DNezGoE_.js} +1 -1
- package/dist/core/{Swirl-C16tmwEg.js → Swirl-BnoTw2v_.js} +2 -2
- package/dist/core/{TiltShift-C5t3YMVT.js → TiltShift-B35F5fNx.js} +3 -2
- package/dist/core/{Tint-VTnDmiKF.js → Tint-BmwtUjg4.js} +1 -1
- package/dist/core/{Tritone-v6z_O967.js → Tritone-BplKm991.js} +4 -3
- package/dist/core/{Twirl-BWpsT8iI.js → Twirl-Dn5j12Yk.js} +3 -2
- package/dist/core/{VideoTexture-DfsNWCXk.js → VideoTexture-DUk9pA_6.js} +1 -1
- package/dist/core/{WaveDistortion-xj8fjAf_.js → WaveDistortion-Dv8k3RMK.js} +3 -2
- package/dist/core/{WebcamTexture-Cxppkhiu.js → WebcamTexture-BmeO4qY-.js} +1 -1
- package/dist/core/{ZoomBlur-BePhHTgF.js → ZoomBlur-CCSC20me.js} +3 -2
- package/dist/core/alpha-Byel9eTg.js +6 -0
- package/dist/core/colorMixing-D_wMclqL.js +196 -0
- package/dist/core/index.js +1 -1
- package/dist/core/registry.js +78 -77
- package/dist/core/shaders/AngularBlur/index.d.ts.map +1 -1
- package/dist/core/shaders/AngularBlur/index.js +3 -2
- package/dist/core/shaders/Ascii/index.d.ts.map +1 -1
- package/dist/core/shaders/Ascii/index.js +2 -1
- package/dist/core/shaders/Aurora/index.js +3 -3
- package/dist/core/shaders/Beam/index.js +3 -3
- package/dist/core/shaders/Blob/index.js +3 -3
- package/dist/core/shaders/Blur/index.d.ts.map +1 -1
- package/dist/core/shaders/Blur/index.js +2 -1
- package/dist/core/shaders/BrightnessContrast/index.js +1 -1
- package/dist/core/shaders/Bulge/index.d.ts.map +1 -1
- package/dist/core/shaders/Bulge/index.js +3 -2
- package/dist/core/shaders/CRTScreen/index.d.ts.map +1 -1
- package/dist/core/shaders/CRTScreen/index.js +2 -1
- package/dist/core/shaders/ChannelBlur/index.d.ts.map +1 -1
- package/dist/core/shaders/ChannelBlur/index.js +2 -1
- package/dist/core/shaders/Checkerboard/index.js +3 -3
- package/dist/core/shaders/ChromaFlow/index.js +2 -2
- package/dist/core/shaders/ChromaticAberration/index.d.ts.map +1 -1
- package/dist/core/shaders/ChromaticAberration/index.js +3 -2
- package/dist/core/shaders/Circle/index.js +3 -3
- package/dist/core/shaders/ConcentricSpin/index.d.ts.map +1 -1
- package/dist/core/shaders/ConcentricSpin/index.js +3 -2
- package/dist/core/shaders/ContourLines/index.js +2 -2
- package/dist/core/shaders/CursorRipples/index.d.ts.map +1 -1
- package/dist/core/shaders/CursorRipples/index.js +3 -2
- package/dist/core/shaders/CursorTrail/index.js +3 -3
- package/dist/core/shaders/DiffuseBlur/index.d.ts.map +1 -1
- package/dist/core/shaders/DiffuseBlur/index.js +3 -2
- package/dist/core/shaders/Dither/index.d.ts.map +1 -1
- package/dist/core/shaders/Dither/index.js +3 -2
- package/dist/core/shaders/DotGrid/index.js +2 -2
- package/dist/core/shaders/Duotone/index.d.ts.map +1 -1
- package/dist/core/shaders/Duotone/index.js +4 -3
- package/dist/core/shaders/FilmGrain/index.js +1 -1
- package/dist/core/shaders/FloatingParticles/index.js +2 -2
- package/dist/core/shaders/FlowField/index.d.ts.map +1 -1
- package/dist/core/shaders/FlowField/index.js +3 -2
- package/dist/core/shaders/GlassTiles/index.d.ts.map +1 -1
- package/dist/core/shaders/GlassTiles/index.js +2 -1
- package/dist/core/shaders/Glitch/index.d.ts.map +1 -1
- package/dist/core/shaders/Glitch/index.js +2 -1
- package/dist/core/shaders/Glow/index.d.ts.map +1 -1
- package/dist/core/shaders/Glow/index.js +2 -1
- package/dist/core/shaders/Godrays/index.js +2 -2
- package/dist/core/shaders/Grayscale/index.js +1 -1
- package/dist/core/shaders/Grid/index.js +2 -2
- package/dist/core/shaders/GridDistortion/index.d.ts.map +1 -1
- package/dist/core/shaders/GridDistortion/index.js +3 -2
- package/dist/core/shaders/Group/index.js +1 -1
- package/dist/core/shaders/Halftone/index.js +2 -2
- package/dist/core/shaders/HueShift/index.js +1 -1
- package/dist/core/shaders/ImageTexture/index.js +1 -1
- package/dist/core/shaders/Invert/index.d.ts.map +1 -1
- package/dist/core/shaders/Invert/index.js +1 -1
- package/dist/core/shaders/Kaleidoscope/index.d.ts.map +1 -1
- package/dist/core/shaders/Kaleidoscope/index.js +3 -2
- package/dist/core/shaders/LensFlare/index.js +2 -2
- package/dist/core/shaders/LinearBlur/index.d.ts.map +1 -1
- package/dist/core/shaders/LinearBlur/index.js +3 -2
- package/dist/core/shaders/LinearGradient/index.js +3 -3
- package/dist/core/shaders/Liquify/index.d.ts.map +1 -1
- package/dist/core/shaders/Liquify/index.js +3 -2
- package/dist/core/shaders/Mirror/index.d.ts.map +1 -1
- package/dist/core/shaders/Mirror/index.js +3 -2
- package/dist/core/shaders/Perspective/index.d.ts.map +1 -1
- package/dist/core/shaders/Perspective/index.js +3 -2
- package/dist/core/shaders/Pixelate/index.d.ts.map +1 -1
- package/dist/core/shaders/Pixelate/index.js +2 -1
- package/dist/core/shaders/Plasma/index.js +3 -3
- package/dist/core/shaders/PolarCoordinates/index.d.ts.map +1 -1
- package/dist/core/shaders/PolarCoordinates/index.js +3 -2
- package/dist/core/shaders/Posterize/index.js +1 -1
- package/dist/core/shaders/ProgressiveBlur/index.d.ts.map +1 -1
- package/dist/core/shaders/ProgressiveBlur/index.js +3 -2
- package/dist/core/shaders/RadialGradient/index.js +3 -3
- package/dist/core/shaders/RectangularCoordinates/index.d.ts.map +1 -1
- package/dist/core/shaders/RectangularCoordinates/index.js +3 -2
- package/dist/core/shaders/Ripples/index.js +3 -3
- package/dist/core/shaders/Saturation/index.js +1 -1
- package/dist/core/shaders/Sharpness/index.d.ts.map +1 -1
- package/dist/core/shaders/Sharpness/index.js +2 -1
- package/dist/core/shaders/Shatter/index.d.ts.map +1 -1
- package/dist/core/shaders/Shatter/index.js +3 -2
- package/dist/core/shaders/SimplexNoise/index.js +3 -3
- package/dist/core/shaders/SineWave/index.js +2 -2
- package/dist/core/shaders/SolidColor/index.js +2 -2
- package/dist/core/shaders/Spherize/index.d.ts.map +1 -1
- package/dist/core/shaders/Spherize/index.js +3 -2
- package/dist/core/shaders/Spiral/index.js +3 -3
- package/dist/core/shaders/Strands/index.js +2 -2
- package/dist/core/shaders/Stretch/index.d.ts.map +1 -1
- package/dist/core/shaders/Stretch/index.js +3 -2
- package/dist/core/shaders/Stripes/index.js +3 -3
- package/dist/core/shaders/StudioBackground/index.js +2 -2
- package/dist/core/shaders/Swirl/index.js +3 -3
- package/dist/core/shaders/TiltShift/index.d.ts.map +1 -1
- package/dist/core/shaders/TiltShift/index.js +3 -2
- package/dist/core/shaders/Tint/index.js +2 -2
- package/dist/core/shaders/Tritone/index.d.ts.map +1 -1
- package/dist/core/shaders/Tritone/index.js +4 -3
- package/dist/core/shaders/Twirl/index.d.ts.map +1 -1
- package/dist/core/shaders/Twirl/index.js +3 -2
- package/dist/core/shaders/Vibrance/index.js +1 -1
- package/dist/core/shaders/VideoTexture/index.js +2 -2
- package/dist/core/shaders/WaveDistortion/index.d.ts.map +1 -1
- package/dist/core/shaders/WaveDistortion/index.js +3 -2
- package/dist/core/shaders/WebcamTexture/index.js +2 -2
- package/dist/core/shaders/ZoomBlur/index.d.ts.map +1 -1
- package/dist/core/shaders/ZoomBlur/index.js +3 -2
- package/dist/core/{transformations-CC_c-QAT.js → transformations-DM6huB9g.js} +16 -1
- package/dist/core/utilities/alpha.d.ts +15 -0
- package/dist/core/utilities/alpha.d.ts.map +1 -0
- package/dist/core/utilities/colorMixing.d.ts +2 -1
- package/dist/core/utilities/colorMixing.d.ts.map +1 -1
- package/dist/core/utilities/transformations.d.ts +2 -2
- package/dist/core/utilities/transformations.d.ts.map +1 -1
- package/dist/registry.js +336 -0
- package/package.json +1 -1
- package/dist/core/colorMixing-Ehw-Hfs_.js +0 -68
- /package/dist/core/{BrightnessContrast-FdkKMaQQ.js → BrightnessContrast-zL5bGGzg.js} +0 -0
- /package/dist/core/{FilmGrain-BzD2zoUK.js → FilmGrain-BxtaYExl.js} +0 -0
- /package/dist/core/{Grayscale-CRYK8foe.js → Grayscale-B_YZd3uy.js} +0 -0
- /package/dist/core/{Group-D-QMn-Co.js → Group-NJlcbnkb.js} +0 -0
- /package/dist/core/{HueShift-p4t6HfqE.js → HueShift-Bf2V6FVR.js} +0 -0
- /package/dist/core/{ImageTexture-BAOtuVAy.js → ImageTexture-6e1Gz4IG.js} +0 -0
- /package/dist/core/{Posterize-DbPe3f5d.js → Posterize--X9GTtfd.js} +0 -0
- /package/dist/core/{Saturation-4L5KnzYg.js → Saturation-1mdcFzVI.js} +0 -0
- /package/dist/core/{Vibrance-C_DSuzwf.js → Vibrance-CWMwA5S-.js} +0 -0
- /package/dist/core/{browser-Dcr7w1AA.js → browser-C7ZSkE-t.js} +0 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { t as unpremultiplyAlpha } from "./alpha-Byel9eTg.js";
|
|
1
2
|
import { Fn, clamp, convertToTexture, float, screenUV, vec2, vec4, viewportSize } from "three/tsl";
|
|
2
3
|
const componentDefinition = {
|
|
3
4
|
name: "Sharpness",
|
|
@@ -34,7 +35,7 @@ const componentDefinition = {
|
|
|
34
35
|
const right = childTexture.sample(uv$1.add(vec2(pixelSize.x, 0)));
|
|
35
36
|
const centerWeight = float(1).add(amount.mul(4));
|
|
36
37
|
const neighborWeight = amount.negate();
|
|
37
|
-
return vec4(clamp(center.mul(centerWeight).add(top.mul(neighborWeight)).add(bottom.mul(neighborWeight)).add(left.mul(neighborWeight)).add(right.mul(neighborWeight)).rgb, 0, 1), center.a);
|
|
38
|
+
return unpremultiplyAlpha(vec4(clamp(center.mul(centerWeight).add(top.mul(neighborWeight)).add(bottom.mul(neighborWeight)).add(left.mul(neighborWeight)).add(right.mul(neighborWeight)).rgb, 0, 1), center.a));
|
|
38
39
|
})();
|
|
39
40
|
}
|
|
40
41
|
};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { t as applyEdgeHandling } from "./edges-Bd7GP4s2.js";
|
|
2
|
-
import { o as transformEdges } from "./transformations-
|
|
2
|
+
import { o as transformEdges } from "./transformations-DM6huB9g.js";
|
|
3
|
+
import { t as unpremultiplyAlpha } from "./alpha-Byel9eTg.js";
|
|
3
4
|
import { DataTexture, FloatType, LinearFilter, NearestFilter, RGBAFormat } from "three";
|
|
4
5
|
import { convertToTexture, float, screenUV, smoothstep, texture, vec2, vec4 } from "three/tsl";
|
|
5
6
|
var seededRandom = (seed) => {
|
|
@@ -319,7 +320,7 @@ const componentDefinition = {
|
|
|
319
320
|
const lightingFactor = float(1).add(normalDot.mul(uniforms.shardLighting.uniform));
|
|
320
321
|
const lightingIntensity = smoothstep(float(0), float(.02), displacementLength);
|
|
321
322
|
const finalLighting = float(1).add(lightingFactor.sub(1).mul(lightingIntensity));
|
|
322
|
-
return vec4(shadedRGB.mul(finalLighting), normalColor.a);
|
|
323
|
+
return unpremultiplyAlpha(vec4(shadedRGB.mul(finalLighting), normalColor.a));
|
|
323
324
|
}
|
|
324
325
|
};
|
|
325
326
|
var Shatter_default = componentDefinition;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { r as transformColor } from "./transformations-
|
|
1
|
+
import { r as transformColor } from "./transformations-DM6huB9g.js";
|
|
2
2
|
import { t as createAnimatedTime } from "./time-BZqyVJXt.js";
|
|
3
|
-
import { t as mixColors } from "./colorMixing-
|
|
3
|
+
import { t as mixColors } from "./colorMixing-D_wMclqL.js";
|
|
4
4
|
import { clamp, exp, float, mx_noise_float, screenUV, vec2, vec3, viewportSize } from "three/tsl";
|
|
5
5
|
const componentDefinition = {
|
|
6
6
|
name: "SimplexNoise",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as transformAngle, r as transformColor, s as transformPosition } from "./transformations-
|
|
1
|
+
import { n as transformAngle, r as transformColor, s as transformPosition } from "./transformations-DM6huB9g.js";
|
|
2
2
|
import { t as createAnimatedTime } from "./time-BZqyVJXt.js";
|
|
3
3
|
import { PI, abs, cos, radians, screenUV, sin, smoothstep, vec2, vec4, viewportSize } from "three/tsl";
|
|
4
4
|
const componentDefinition = {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { r as transformColor, s as transformPosition } from "./transformations-
|
|
1
|
+
import { r as transformColor, s as transformPosition } from "./transformations-DM6huB9g.js";
|
|
2
|
+
import { t as unpremultiplyAlpha } from "./alpha-Byel9eTg.js";
|
|
2
3
|
import { convertToTexture, dot, float, max, normalize, pow, screenUV, smoothstep, sqrt, vec2, vec3, vec4, viewportSize } from "three/tsl";
|
|
3
4
|
const componentDefinition = {
|
|
4
5
|
name: "Spherize",
|
|
@@ -109,7 +110,7 @@ const componentDefinition = {
|
|
|
109
110
|
const depthFactor = float(1).add(z.mul(uniforms.depth.uniform));
|
|
110
111
|
const finalUV = sphereUV.div(depthFactor).mul(radius).div(2);
|
|
111
112
|
const transformedUV = vec2(finalUV.x.div(aspect).add(centerPos.x), finalUV.y.add(centerPos.y));
|
|
112
|
-
const
|
|
113
|
+
const straightColor = unpremultiplyAlpha(childTexture.sample(transformedUV));
|
|
113
114
|
const lightPos = vec2(uniforms.lightPosition.uniform.x, uniforms.lightPosition.uniform.y.oneMinus());
|
|
114
115
|
const lightIntensity = uniforms.lightIntensity.uniform;
|
|
115
116
|
const lightSoftness = uniforms.lightSoftness.uniform;
|
|
@@ -123,11 +124,7 @@ const componentDefinition = {
|
|
|
123
124
|
const lightDirNorm = normalize(lightDir2D.add(vec2(1e-4, 1e-4)));
|
|
124
125
|
const directionalBias = pow(max(float(0), dot(normalDir, lightDirNorm)), float(2));
|
|
125
126
|
const rimLight = fresnel.mul(directionalBias).mul(lightIntensity).mul(float(2));
|
|
126
|
-
|
|
127
|
-
const finalG = sampledColor.y.add(lightColor.y.mul(rimLight));
|
|
128
|
-
const finalB = sampledColor.z.add(lightColor.z.mul(rimLight));
|
|
129
|
-
const finalA = sampledColor.w.mul(sphereAlpha);
|
|
130
|
-
return vec4(finalR.mul(finalA), finalG.mul(finalA), finalB.mul(finalA), finalA);
|
|
127
|
+
return vec4(straightColor.x.add(lightColor.x.mul(rimLight)), straightColor.y.add(lightColor.y.mul(rimLight)), straightColor.z.add(lightColor.z.mul(rimLight)), straightColor.w.mul(sphereAlpha));
|
|
131
128
|
}
|
|
132
129
|
};
|
|
133
130
|
var Spherize_default = componentDefinition;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { i as transformColorSpace, r as transformColor, s as transformPosition, t as colorSpaceOptions } from "./transformations-
|
|
1
|
+
import { i as transformColorSpace, r as transformColor, s as transformPosition, t as colorSpaceOptions } from "./transformations-DM6huB9g.js";
|
|
2
2
|
import { t as createAnimatedTime } from "./time-BZqyVJXt.js";
|
|
3
|
-
import { t as mixColors } from "./colorMixing-
|
|
3
|
+
import { t as mixColors } from "./colorMixing-D_wMclqL.js";
|
|
4
4
|
import { abs, atan, clamp, float, fract, fwidth, length, mix, screenUV, smoothstep, vec2, vec4, viewportSize } from "three/tsl";
|
|
5
5
|
const componentDefinition = {
|
|
6
6
|
name: "Spiral",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as transformColor, s as transformPosition } from "./transformations-
|
|
1
|
+
import { r as transformColor, s as transformPosition } from "./transformations-DM6huB9g.js";
|
|
2
2
|
import { t as createAnimatedTime } from "./time-BZqyVJXt.js";
|
|
3
3
|
import { Fn, abs, cos, float, max, mix, screenUV, smoothstep, vec2, vec4, viewportSize } from "three/tsl";
|
|
4
4
|
const componentDefinition = {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { t as applyEdgeHandling } from "./edges-Bd7GP4s2.js";
|
|
2
|
-
import { o as transformEdges, s as transformPosition } from "./transformations-
|
|
2
|
+
import { o as transformEdges, s as transformPosition } from "./transformations-DM6huB9g.js";
|
|
3
|
+
import { t as unpremultiplyAlpha } from "./alpha-Byel9eTg.js";
|
|
3
4
|
import { clamp, convertToTexture, cos, float, mix, screenUV, sin, vec2, vec4, viewportSize } from "three/tsl";
|
|
4
5
|
const componentDefinition = {
|
|
5
6
|
name: "Stretch",
|
|
@@ -110,7 +111,7 @@ const componentDefinition = {
|
|
|
110
111
|
const stretchedDelta = directionVector.mul(finalProjection).add(perpendicular);
|
|
111
112
|
const stretchedUV = centerPos.add(stretchedDelta);
|
|
112
113
|
const finalUV = vec2(stretchedUV.x.div(aspect), stretchedUV.y);
|
|
113
|
-
return applyEdgeHandling(finalUV, childTexture.sample(finalUV), childTexture, uniforms.edges.uniform);
|
|
114
|
+
return unpremultiplyAlpha(applyEdgeHandling(finalUV, childTexture.sample(finalUV), childTexture, uniforms.edges.uniform));
|
|
114
115
|
}
|
|
115
116
|
};
|
|
116
117
|
var Stretch_default = componentDefinition;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { i as transformColorSpace, n as transformAngle, r as transformColor, t as colorSpaceOptions } from "./transformations-
|
|
1
|
+
import { i as transformColorSpace, n as transformAngle, r as transformColor, t as colorSpaceOptions } from "./transformations-DM6huB9g.js";
|
|
2
2
|
import { t as createAnimatedTime } from "./time-BZqyVJXt.js";
|
|
3
|
-
import { t as mixColors } from "./colorMixing-
|
|
3
|
+
import { t as mixColors } from "./colorMixing-D_wMclqL.js";
|
|
4
4
|
import { cos, fract, fwidth, screenUV, sin, smoothstep, vec2, vec4, viewportSize } from "three/tsl";
|
|
5
5
|
const componentDefinition = {
|
|
6
6
|
name: "Stripes",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as transformColor, s as transformPosition } from "./transformations-
|
|
1
|
+
import { r as transformColor, s as transformPosition } from "./transformations-DM6huB9g.js";
|
|
2
2
|
import { t as createAnimatedTime } from "./time-BZqyVJXt.js";
|
|
3
3
|
import { Fn, clamp, cos, exp, float, fract, mix, screenUV, sin, smoothstep, vec3, vec4, viewportSize } from "three/tsl";
|
|
4
4
|
const componentDefinition = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { i as transformColorSpace, r as transformColor, t as colorSpaceOptions } from "./transformations-
|
|
1
|
+
import { i as transformColorSpace, r as transformColor, t as colorSpaceOptions } from "./transformations-DM6huB9g.js";
|
|
2
2
|
import { t as createAnimatedTime } from "./time-BZqyVJXt.js";
|
|
3
|
-
import { t as mixColors } from "./colorMixing-
|
|
3
|
+
import { t as mixColors } from "./colorMixing-D_wMclqL.js";
|
|
4
4
|
import { cos, screenUV, sin, smoothstep, vec2, vec4 } from "three/tsl";
|
|
5
5
|
const componentDefinition = {
|
|
6
6
|
name: "Swirl",
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { n as transformAngle, s as transformPosition } from "./transformations-
|
|
1
|
+
import { n as transformAngle, s as transformPosition } from "./transformations-DM6huB9g.js";
|
|
2
|
+
import { t as unpremultiplyAlpha } from "./alpha-Byel9eTg.js";
|
|
2
3
|
import { Fn, abs, convertToTexture, cos, dot, float, mix, radians, screenUV, sin, smoothstep, vec2, vec4, viewportSize } from "three/tsl";
|
|
3
4
|
const componentDefinition = {
|
|
4
5
|
name: "TiltShift",
|
|
@@ -132,7 +133,7 @@ const componentDefinition = {
|
|
|
132
133
|
total.assign(total.add(sample));
|
|
133
134
|
}
|
|
134
135
|
const blurred = total;
|
|
135
|
-
return mix(childTexture.sample(uv$1), blurred, blurAmount);
|
|
136
|
+
return unpremultiplyAlpha(mix(childTexture.sample(uv$1), blurred, blurAmount));
|
|
136
137
|
})();
|
|
137
138
|
}
|
|
138
139
|
};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { i as transformColorSpace, r as transformColor, t as colorSpaceOptions } from "./transformations-
|
|
2
|
-
import { t as
|
|
1
|
+
import { i as transformColorSpace, r as transformColor, t as colorSpaceOptions } from "./transformations-DM6huB9g.js";
|
|
2
|
+
import { t as unpremultiplyAlpha } from "./alpha-Byel9eTg.js";
|
|
3
|
+
import { t as mixColors } from "./colorMixing-D_wMclqL.js";
|
|
3
4
|
import { convertToTexture, dot, screenUV, smoothstep, vec3, vec4 } from "three/tsl";
|
|
4
5
|
const componentDefinition = {
|
|
5
6
|
name: "Tritone",
|
|
@@ -68,7 +69,7 @@ const componentDefinition = {
|
|
|
68
69
|
onCleanup(() => {
|
|
69
70
|
if (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();
|
|
70
71
|
});
|
|
71
|
-
const inputColor = childTexture.sample(screenUV);
|
|
72
|
+
const inputColor = unpremultiplyAlpha(childTexture.sample(screenUV));
|
|
72
73
|
const luminance = dot(inputColor.rgb, vec3(.299, .587, .114));
|
|
73
74
|
const shadowToMid = smoothstep(uniforms.blendMid.uniform.sub(.25), uniforms.blendMid.uniform, luminance);
|
|
74
75
|
const lowerBlend = mixColors(uniforms.colorA.uniform, uniforms.colorB.uniform, shadowToMid, uniforms.colorSpace.uniform);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { t as applyEdgeHandling } from "./edges-Bd7GP4s2.js";
|
|
2
|
-
import { o as transformEdges, s as transformPosition } from "./transformations-
|
|
2
|
+
import { o as transformEdges, s as transformPosition } from "./transformations-DM6huB9g.js";
|
|
3
|
+
import { t as unpremultiplyAlpha } from "./alpha-Byel9eTg.js";
|
|
3
4
|
import { convertToTexture, cos, length, screenUV, sin, vec2, vec4, viewportSize } from "three/tsl";
|
|
4
5
|
const componentDefinition = {
|
|
5
6
|
name: "Twirl",
|
|
@@ -82,7 +83,7 @@ const componentDefinition = {
|
|
|
82
83
|
const rotatedX = cosAngle.mul(aspectCorrectedDelta.x).sub(sinAngle.mul(aspectCorrectedDelta.y));
|
|
83
84
|
const rotatedY = sinAngle.mul(aspectCorrectedDelta.x).add(cosAngle.mul(aspectCorrectedDelta.y));
|
|
84
85
|
const twistedUV = vec2(rotatedX.div(aspect).add(centerPos.x), rotatedY.add(centerPos.y));
|
|
85
|
-
return applyEdgeHandling(twistedUV, texture$1.sample(twistedUV), texture$1, uniforms.edges.uniform);
|
|
86
|
+
return unpremultiplyAlpha(applyEdgeHandling(twistedUV, texture$1.sample(twistedUV), texture$1, uniforms.edges.uniform));
|
|
86
87
|
}
|
|
87
88
|
};
|
|
88
89
|
var Twirl_default = componentDefinition;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as needsVideoCanvasWorkaround } from "./browser-
|
|
1
|
+
import { t as needsVideoCanvasWorkaround } from "./browser-C7ZSkE-t.js";
|
|
2
2
|
import { CanvasTexture, SRGBColorSpace, VideoTexture } from "three/webgpu";
|
|
3
3
|
import { float, max, min, or, screenUV, select, step, texture, uniform, vec2, vec4, viewportSize } from "three/tsl";
|
|
4
4
|
const componentDefinition = {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { t as applyEdgeHandling } from "./edges-Bd7GP4s2.js";
|
|
2
|
-
import { o as transformEdges } from "./transformations-
|
|
2
|
+
import { o as transformEdges } from "./transformations-DM6huB9g.js";
|
|
3
3
|
import { t as createAnimatedTime } from "./time-BZqyVJXt.js";
|
|
4
|
+
import { t as unpremultiplyAlpha } from "./alpha-Byel9eTg.js";
|
|
4
5
|
import { PI, abs, convertToTexture, cos, float, fract, screenUV, sin, step, vec2, vec4, viewportSize } from "three/tsl";
|
|
5
6
|
const componentDefinition = {
|
|
6
7
|
name: "WaveDistortion",
|
|
@@ -151,7 +152,7 @@ const componentDefinition = {
|
|
|
151
152
|
onCleanup(() => {
|
|
152
153
|
if (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();
|
|
153
154
|
});
|
|
154
|
-
return applyEdgeHandling(distortedUV, childTexture.sample(distortedUV), childTexture, uniforms.edges.uniform);
|
|
155
|
+
return unpremultiplyAlpha(applyEdgeHandling(distortedUV, childTexture.sample(distortedUV), childTexture, uniforms.edges.uniform));
|
|
155
156
|
}
|
|
156
157
|
};
|
|
157
158
|
var WaveDistortion_default = componentDefinition;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as needsVideoCanvasWorkaround } from "./browser-
|
|
1
|
+
import { t as needsVideoCanvasWorkaround } from "./browser-C7ZSkE-t.js";
|
|
2
2
|
import { CanvasTexture, SRGBColorSpace, VideoTexture } from "three/webgpu";
|
|
3
3
|
import { float, max, min, or, screenUV, select, step, texture, uniform, vec2, vec4, viewportSize } from "three/tsl";
|
|
4
4
|
const componentDefinition = {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { s as transformPosition } from "./transformations-
|
|
1
|
+
import { s as transformPosition } from "./transformations-DM6huB9g.js";
|
|
2
|
+
import { t as unpremultiplyAlpha } from "./alpha-Byel9eTg.js";
|
|
2
3
|
import { Fn, convertToTexture, float, screenUV, vec2, vec4, viewportSize } from "three/tsl";
|
|
3
4
|
var rawWeights = Array.from({ length: 32 }, (_, i) => {
|
|
4
5
|
const t = (i / 31 - .5) * 2;
|
|
@@ -59,7 +60,7 @@ const componentDefinition = {
|
|
|
59
60
|
const scaledCoord = vec2(scaledDelta.x.div(aspect), scaledDelta.y).add(center);
|
|
60
61
|
total.assign(total.add(childTexture.sample(scaledCoord).mul(float(blurWeights[i]))));
|
|
61
62
|
}
|
|
62
|
-
return total;
|
|
63
|
+
return unpremultiplyAlpha(total);
|
|
63
64
|
})();
|
|
64
65
|
}
|
|
65
66
|
};
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { abs, atan, cos, float, max, min, mod, pow, sign, sin, sqrt, vec3, vec4 } from "three/tsl";
|
|
2
|
+
var EPSILON = float(1e-4);
|
|
3
|
+
var PI_OVER_3 = 1.0471975512;
|
|
4
|
+
var LAB_DELTA = float(6 / 29);
|
|
5
|
+
var LAB_KAPPA = float(500);
|
|
6
|
+
var LAB_LAMBDA = float(200);
|
|
7
|
+
var p3ToSRGB = (p3) => {
|
|
8
|
+
return vec3(p3.x.mul(1.2249401).sub(p3.y.mul(.2249404)).sub(p3.z.mul(0)), p3.x.mul(-.0420569).add(p3.y.mul(1.0420571)).add(p3.z.mul(0)), p3.x.mul(-.0196376).sub(p3.y.mul(.0786361)).add(p3.z.mul(1.0982735)));
|
|
9
|
+
};
|
|
10
|
+
var sRGBToP3 = (srgb) => {
|
|
11
|
+
return vec3(srgb.x.mul(.8224621).add(srgb.y.mul(.177538)).add(srgb.z.mul(0)), srgb.x.mul(.0331941).add(srgb.y.mul(.9668058)).add(srgb.z.mul(0)), srgb.x.mul(.0170826).add(srgb.y.mul(.0723974)).add(srgb.z.mul(.9105199)));
|
|
12
|
+
};
|
|
13
|
+
var rgbToOklab = (rgb) => {
|
|
14
|
+
const r = rgb.x;
|
|
15
|
+
const g = rgb.y;
|
|
16
|
+
const b = rgb.z;
|
|
17
|
+
const l = r.mul(.4122214708).add(g.mul(.5363325363)).add(b.mul(.0514459929));
|
|
18
|
+
const m = r.mul(.2119034982).add(g.mul(.6806995451).add(b.mul(.1073969566)));
|
|
19
|
+
const s = r.mul(.0883024619).add(g.mul(.2817188376)).add(b.mul(.6299787005));
|
|
20
|
+
const l_ = sign(l).mul(pow(abs(l), float(1 / 3)));
|
|
21
|
+
const m_ = sign(m).mul(pow(abs(m), float(1 / 3)));
|
|
22
|
+
const s_ = sign(s).mul(pow(abs(s), float(1 / 3)));
|
|
23
|
+
return vec3(l_.mul(.2104542553).add(m_.mul(.793617785)).sub(s_.mul(.0040720468)), l_.mul(1.9779984951).sub(m_.mul(2.428592205)).add(s_.mul(.4505937099)), l_.mul(.0259040371).add(m_.mul(.7827717662)).sub(s_.mul(.808675766)));
|
|
24
|
+
};
|
|
25
|
+
var oklabToRgb = (lab) => {
|
|
26
|
+
const L = lab.x;
|
|
27
|
+
const a = lab.y;
|
|
28
|
+
const b = lab.z;
|
|
29
|
+
const l_ = L.add(a.mul(.3963377774)).add(b.mul(.2158037573));
|
|
30
|
+
const m_ = L.sub(a.mul(.1055613458)).sub(b.mul(.0638541728));
|
|
31
|
+
const s_ = L.sub(a.mul(.0894841775)).sub(b.mul(1.291485548));
|
|
32
|
+
const l = pow(l_, float(3));
|
|
33
|
+
const m = pow(m_, float(3));
|
|
34
|
+
const s = pow(s_, float(3));
|
|
35
|
+
return vec3(l.mul(4.0767416621).sub(m.mul(3.3077115913)).add(s.mul(.2309699292)), l.mul(-1.2684380046).add(m.mul(2.6097574011)).sub(s.mul(.3413193965)), l.mul(-.0041960863).sub(m.mul(.7034186147)).add(s.mul(1.707614701)));
|
|
36
|
+
};
|
|
37
|
+
var oklabToOklch = (lab) => {
|
|
38
|
+
const L = lab.x;
|
|
39
|
+
const a = lab.y;
|
|
40
|
+
const b = lab.z;
|
|
41
|
+
return vec3(L, sqrt(a.mul(a).add(b.mul(b))), atan(b, a));
|
|
42
|
+
};
|
|
43
|
+
var oklchToOklab = (lch) => {
|
|
44
|
+
const L = lch.x;
|
|
45
|
+
const C = lch.y;
|
|
46
|
+
const h = lch.z;
|
|
47
|
+
return vec3(L, C.mul(cos(h)), C.mul(sin(h)));
|
|
48
|
+
};
|
|
49
|
+
var selectRGBBySector = (c, x, sector) => {
|
|
50
|
+
const isSector0 = sector.lessThan(float(1));
|
|
51
|
+
const isSector1 = sector.greaterThanEqual(float(1)).and(sector.lessThan(float(2)));
|
|
52
|
+
const isSector2 = sector.greaterThanEqual(float(2)).and(sector.lessThan(float(3)));
|
|
53
|
+
const isSector3 = sector.greaterThanEqual(float(3)).and(sector.lessThan(float(4)));
|
|
54
|
+
const isSector4 = sector.greaterThanEqual(float(4)).and(sector.lessThan(float(5)));
|
|
55
|
+
return {
|
|
56
|
+
r: isSector0.select(c, isSector1.select(x, isSector2.select(float(0), isSector3.select(float(0), isSector4.select(x, c))))),
|
|
57
|
+
g: isSector0.select(x, isSector1.select(c, isSector2.select(c, isSector3.select(x, isSector4.select(float(0), float(0)))))),
|
|
58
|
+
b: isSector0.select(float(0), isSector1.select(float(0), isSector2.select(x, isSector3.select(c, isSector4.select(c, x)))))
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
var rgbToHsl = (rgb) => {
|
|
62
|
+
const r = rgb.x;
|
|
63
|
+
const g = rgb.y;
|
|
64
|
+
const b = rgb.z;
|
|
65
|
+
const maxVal = max(max(r, g), b);
|
|
66
|
+
const minVal = min(min(r, g), b);
|
|
67
|
+
const delta = maxVal.sub(minVal);
|
|
68
|
+
const l = maxVal.add(minVal).mul(.5);
|
|
69
|
+
const satDenom = float(1).sub(abs(l.mul(2).sub(1))).max(EPSILON);
|
|
70
|
+
const s = delta.div(satDenom);
|
|
71
|
+
const isRMax = maxVal.equal(r);
|
|
72
|
+
const isGMax = maxVal.equal(g);
|
|
73
|
+
const hueR = g.sub(b).div(delta.max(EPSILON));
|
|
74
|
+
const hueG = float(2).add(b.sub(r).div(delta.max(EPSILON)));
|
|
75
|
+
const hueB = float(4).add(r.sub(g).div(delta.max(EPSILON)));
|
|
76
|
+
return vec3(isRMax.select(hueR, isGMax.select(hueG, hueB)).mul(PI_OVER_3), s, l);
|
|
77
|
+
};
|
|
78
|
+
var hslToRgb = (hsl) => {
|
|
79
|
+
const h = hsl.x;
|
|
80
|
+
const s = hsl.y;
|
|
81
|
+
const l = hsl.z;
|
|
82
|
+
const c = s.mul(float(1).sub(abs(l.mul(2).sub(1))));
|
|
83
|
+
const hPrime = h.div(PI_OVER_3);
|
|
84
|
+
const x = c.mul(float(1).sub(abs(mod(hPrime, float(2)).sub(1))));
|
|
85
|
+
const m = l.sub(c.mul(.5));
|
|
86
|
+
const rgb = selectRGBBySector(c, x, hPrime.floor());
|
|
87
|
+
return vec3(rgb.r.add(m), rgb.g.add(m), rgb.b.add(m));
|
|
88
|
+
};
|
|
89
|
+
var rgbToHsv = (rgb) => {
|
|
90
|
+
const r = rgb.x;
|
|
91
|
+
const g = rgb.y;
|
|
92
|
+
const b = rgb.z;
|
|
93
|
+
const maxVal = max(max(r, g), b);
|
|
94
|
+
const minVal = min(min(r, g), b);
|
|
95
|
+
const delta = maxVal.sub(minVal);
|
|
96
|
+
const v = maxVal;
|
|
97
|
+
const s = delta.div(maxVal.max(EPSILON));
|
|
98
|
+
const isRMax = maxVal.equal(r);
|
|
99
|
+
const isGMax = maxVal.equal(g);
|
|
100
|
+
const hueR = g.sub(b).div(delta.max(EPSILON));
|
|
101
|
+
const hueG = float(2).add(b.sub(r).div(delta.max(EPSILON)));
|
|
102
|
+
const hueB = float(4).add(r.sub(g).div(delta.max(EPSILON)));
|
|
103
|
+
return vec3(isRMax.select(hueR, isGMax.select(hueG, hueB)).mul(PI_OVER_3), s, v);
|
|
104
|
+
};
|
|
105
|
+
var hsvToRgb = (hsv) => {
|
|
106
|
+
const h = hsv.x;
|
|
107
|
+
const s = hsv.y;
|
|
108
|
+
const v = hsv.z;
|
|
109
|
+
const c = v.mul(s);
|
|
110
|
+
const hPrime = h.div(PI_OVER_3);
|
|
111
|
+
const x = c.mul(float(1).sub(abs(mod(hPrime, float(2)).sub(1))));
|
|
112
|
+
const m = v.sub(c);
|
|
113
|
+
const rgb = selectRGBBySector(c, x, hPrime.floor());
|
|
114
|
+
return vec3(rgb.r.add(m), rgb.g.add(m), rgb.b.add(m));
|
|
115
|
+
};
|
|
116
|
+
var rgbToLab = (rgb) => {
|
|
117
|
+
const r = rgb.x;
|
|
118
|
+
const g = rgb.y;
|
|
119
|
+
const b = rgb.z;
|
|
120
|
+
const x = r.mul(.4124564).add(g.mul(.3575761)).add(b.mul(.1804375));
|
|
121
|
+
const y = r.mul(.2126729).add(g.mul(.7151522)).add(b.mul(.072175));
|
|
122
|
+
const z = r.mul(.0193339).add(g.mul(.119192)).add(b.mul(.9503041));
|
|
123
|
+
const xn = x.div(.95047);
|
|
124
|
+
const yn = y.div(1);
|
|
125
|
+
const zn = z.div(1.08883);
|
|
126
|
+
const delta3 = LAB_DELTA.mul(LAB_DELTA).mul(LAB_DELTA);
|
|
127
|
+
const slope = float(1).div(float(3).mul(LAB_DELTA).mul(LAB_DELTA));
|
|
128
|
+
const offset = float(4 / 29);
|
|
129
|
+
const fx = xn.greaterThan(delta3).select(pow(xn, float(1 / 3)), xn.mul(slope).add(offset));
|
|
130
|
+
const fy = yn.greaterThan(delta3).select(pow(yn, float(1 / 3)), yn.mul(slope).add(offset));
|
|
131
|
+
const fz = zn.greaterThan(delta3).select(pow(zn, float(1 / 3)), zn.mul(slope).add(offset));
|
|
132
|
+
return vec3(fy.mul(116).sub(16), fx.sub(fy).mul(LAB_KAPPA), fy.sub(fz).mul(LAB_LAMBDA));
|
|
133
|
+
};
|
|
134
|
+
var labToRgb = (lab) => {
|
|
135
|
+
const L = lab.x;
|
|
136
|
+
const a = lab.y;
|
|
137
|
+
const b = lab.z;
|
|
138
|
+
const fy = L.add(16).div(116);
|
|
139
|
+
const fx = a.div(LAB_KAPPA).add(fy);
|
|
140
|
+
const fz = fy.sub(b.div(LAB_LAMBDA));
|
|
141
|
+
const slope = float(3).mul(LAB_DELTA).mul(LAB_DELTA);
|
|
142
|
+
const offset = float(4 / 29);
|
|
143
|
+
const xn = fx.greaterThan(LAB_DELTA).select(pow(fx, float(3)), fx.sub(offset).mul(slope));
|
|
144
|
+
const yn = fy.greaterThan(LAB_DELTA).select(pow(fy, float(3)), fy.sub(offset).mul(slope));
|
|
145
|
+
const zn = fz.greaterThan(LAB_DELTA).select(pow(fz, float(3)), fz.sub(offset).mul(slope));
|
|
146
|
+
const x = xn.mul(.95047);
|
|
147
|
+
const y = yn.mul(1);
|
|
148
|
+
const z = zn.mul(1.08883);
|
|
149
|
+
return vec3(x.mul(3.2404542).sub(y.mul(1.5371385)).sub(z.mul(.4985314)), x.mul(-.969266).add(y.mul(1.8760108)).add(z.mul(.041556)), x.mul(.0556434).sub(y.mul(.2040259)).add(z.mul(1.0572252)));
|
|
150
|
+
};
|
|
151
|
+
var labToLch = (lab) => {
|
|
152
|
+
const L = lab.x;
|
|
153
|
+
const a = lab.y;
|
|
154
|
+
const b = lab.z;
|
|
155
|
+
return vec3(L, sqrt(a.mul(a).add(b.mul(b))), atan(b, a));
|
|
156
|
+
};
|
|
157
|
+
var lchToLab = (lch) => {
|
|
158
|
+
const L = lch.x;
|
|
159
|
+
const C = lch.y;
|
|
160
|
+
const h = lch.z;
|
|
161
|
+
return vec3(L, C.mul(cos(h)), C.mul(sin(h)));
|
|
162
|
+
};
|
|
163
|
+
const mixColors = (colorA, colorB, t, colorSpaceMode) => {
|
|
164
|
+
const p3A = vec3(colorA.x, colorA.y, colorA.z);
|
|
165
|
+
const p3B = vec3(colorB.x, colorB.y, colorB.z);
|
|
166
|
+
const alphaA = colorA.w;
|
|
167
|
+
const alphaB = colorB.w;
|
|
168
|
+
const weightA = alphaA.mul(float(1).sub(t));
|
|
169
|
+
const weightB = alphaB.mul(t);
|
|
170
|
+
const totalWeight = weightA.add(weightB);
|
|
171
|
+
const safeWeight = max(totalWeight, float(.001));
|
|
172
|
+
const alphaWeightedMix = (rgbA, rgbB) => {
|
|
173
|
+
return rgbA.mul(weightA).add(rgbB.mul(weightB)).div(safeWeight);
|
|
174
|
+
};
|
|
175
|
+
const linearMix = alphaWeightedMix(p3A, p3B);
|
|
176
|
+
const srgbA = p3ToSRGB(p3A);
|
|
177
|
+
const srgbB = p3ToSRGB(p3B);
|
|
178
|
+
const oklabA = rgbToOklab(srgbA);
|
|
179
|
+
const oklabB = rgbToOklab(srgbB);
|
|
180
|
+
const oklchResult = sRGBToP3(oklabToRgb(oklchToOklab(alphaWeightedMix(oklabToOklch(oklabA), oklabToOklch(oklabB)))));
|
|
181
|
+
const oklabResult = sRGBToP3(oklabToRgb(alphaWeightedMix(oklabA, oklabB)));
|
|
182
|
+
const hslResult = sRGBToP3(hslToRgb(alphaWeightedMix(rgbToHsl(srgbA), rgbToHsl(srgbB))));
|
|
183
|
+
const hsvResult = sRGBToP3(hsvToRgb(alphaWeightedMix(rgbToHsv(srgbA), rgbToHsv(srgbB))));
|
|
184
|
+
const labA = rgbToLab(srgbA);
|
|
185
|
+
const labB = rgbToLab(srgbB);
|
|
186
|
+
const lchResult = sRGBToP3(labToRgb(lchToLab(alphaWeightedMix(labToLch(labA), labToLch(labB)))));
|
|
187
|
+
const isMode1OrHigher = colorSpaceMode.greaterThanEqual(float(.5));
|
|
188
|
+
const isMode2OrHigher = colorSpaceMode.greaterThanEqual(float(1.5));
|
|
189
|
+
const isMode3OrHigher = colorSpaceMode.greaterThanEqual(float(2.5));
|
|
190
|
+
const isMode4OrHigher = colorSpaceMode.greaterThanEqual(float(3.5));
|
|
191
|
+
const isMode5 = colorSpaceMode.greaterThanEqual(float(4.5));
|
|
192
|
+
const rgb = isMode1OrHigher.select(isMode2OrHigher.select(isMode3OrHigher.select(isMode4OrHigher.select(isMode5.select(lchResult, hsvResult), hslResult), oklabResult), oklchResult), linearMix);
|
|
193
|
+
const alpha = totalWeight;
|
|
194
|
+
return vec4(rgb.x, rgb.y, rgb.z, alpha);
|
|
195
|
+
};
|
|
196
|
+
export { mixColors as t };
|
package/dist/core/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as applyEdgeHandling } from "./edges-Bd7GP4s2.js";
|
|
2
|
-
import { a as transformColorUpdate, c as transformPositionUpdate, r as transformColor, s as transformPosition } from "./transformations-
|
|
2
|
+
import { a as transformColorUpdate, c as transformPositionUpdate, r as transformColor, s as transformPosition } from "./transformations-DM6huB9g.js";
|
|
3
3
|
import { t as createAnimatedTime } from "./time-BZqyVJXt.js";
|
|
4
4
|
import { Material, Mesh, MeshBasicNodeMaterial, OrthographicCamera, PlaneGeometry, SRGBColorSpace, Scene, WebGPURenderer } from "three/webgpu";
|
|
5
5
|
import { WebGLRenderer } from "three";
|