@flighthq/effects 0.1.0
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/autoExposureEffect.d.ts +3 -0
- package/dist/autoExposureEffect.d.ts.map +1 -0
- package/dist/autoExposureEffect.js +4 -0
- package/dist/autoExposureEffect.js.map +1 -0
- package/dist/barrelDistortionEffect.d.ts +3 -0
- package/dist/barrelDistortionEffect.d.ts.map +1 -0
- package/dist/barrelDistortionEffect.js +4 -0
- package/dist/barrelDistortionEffect.js.map +1 -0
- package/dist/bloomEffect.d.ts +6 -0
- package/dist/bloomEffect.d.ts.map +1 -0
- package/dist/bloomEffect.js +16 -0
- package/dist/bloomEffect.js.map +1 -0
- package/dist/bokehDepthOfFieldEffect.d.ts +3 -0
- package/dist/bokehDepthOfFieldEffect.d.ts.map +1 -0
- package/dist/bokehDepthOfFieldEffect.js +4 -0
- package/dist/bokehDepthOfFieldEffect.js.map +1 -0
- package/dist/brightnessContrastEffect.d.ts +3 -0
- package/dist/brightnessContrastEffect.d.ts.map +1 -0
- package/dist/brightnessContrastEffect.js +4 -0
- package/dist/brightnessContrastEffect.js.map +1 -0
- package/dist/cameraMotionBlurEffect.d.ts +3 -0
- package/dist/cameraMotionBlurEffect.d.ts.map +1 -0
- package/dist/cameraMotionBlurEffect.js +4 -0
- package/dist/cameraMotionBlurEffect.js.map +1 -0
- package/dist/channelMixerEffect.d.ts +3 -0
- package/dist/channelMixerEffect.d.ts.map +1 -0
- package/dist/channelMixerEffect.js +4 -0
- package/dist/channelMixerEffect.js.map +1 -0
- package/dist/chromaticAberrationEffect.d.ts +3 -0
- package/dist/chromaticAberrationEffect.d.ts.map +1 -0
- package/dist/chromaticAberrationEffect.js +4 -0
- package/dist/chromaticAberrationEffect.js.map +1 -0
- package/dist/colorBlindSimulationEffect.d.ts +3 -0
- package/dist/colorBlindSimulationEffect.d.ts.map +1 -0
- package/dist/colorBlindSimulationEffect.js +4 -0
- package/dist/colorBlindSimulationEffect.js.map +1 -0
- package/dist/colorGradeEffect.d.ts +3 -0
- package/dist/colorGradeEffect.d.ts.map +1 -0
- package/dist/colorGradeEffect.js +4 -0
- package/dist/colorGradeEffect.js.map +1 -0
- package/dist/colorScienceMath.d.ts +9 -0
- package/dist/colorScienceMath.d.ts.map +1 -0
- package/dist/colorScienceMath.js +135 -0
- package/dist/colorScienceMath.js.map +1 -0
- package/dist/colorTemperatureMath.d.ts +5 -0
- package/dist/colorTemperatureMath.d.ts.map +1 -0
- package/dist/colorTemperatureMath.js +45 -0
- package/dist/colorTemperatureMath.js.map +1 -0
- package/dist/contactShadowsEffect.d.ts +3 -0
- package/dist/contactShadowsEffect.d.ts.map +1 -0
- package/dist/contactShadowsEffect.js +4 -0
- package/dist/contactShadowsEffect.js.map +1 -0
- package/dist/crtEffect.d.ts +3 -0
- package/dist/crtEffect.d.ts.map +1 -0
- package/dist/crtEffect.js +4 -0
- package/dist/crtEffect.js.map +1 -0
- package/dist/customShaderEffect.d.ts +3 -0
- package/dist/customShaderEffect.d.ts.map +1 -0
- package/dist/customShaderEffect.js +4 -0
- package/dist/customShaderEffect.js.map +1 -0
- package/dist/depthMath.d.ts +4 -0
- package/dist/depthMath.d.ts.map +1 -0
- package/dist/depthMath.js +55 -0
- package/dist/depthMath.js.map +1 -0
- package/dist/directionalBlurEffect.d.ts +3 -0
- package/dist/directionalBlurEffect.d.ts.map +1 -0
- package/dist/directionalBlurEffect.js +4 -0
- package/dist/directionalBlurEffect.js.map +1 -0
- package/dist/displacementEffect.d.ts +3 -0
- package/dist/displacementEffect.d.ts.map +1 -0
- package/dist/displacementEffect.js +4 -0
- package/dist/displacementEffect.js.map +1 -0
- package/dist/ditherEffect.d.ts +3 -0
- package/dist/ditherEffect.d.ts.map +1 -0
- package/dist/ditherEffect.js +4 -0
- package/dist/ditherEffect.js.map +1 -0
- package/dist/edgeDetectMath.d.ts +6 -0
- package/dist/edgeDetectMath.d.ts.map +1 -0
- package/dist/edgeDetectMath.js +72 -0
- package/dist/edgeDetectMath.js.map +1 -0
- package/dist/exposureEffect.d.ts +3 -0
- package/dist/exposureEffect.d.ts.map +1 -0
- package/dist/exposureEffect.js +4 -0
- package/dist/exposureEffect.js.map +1 -0
- package/dist/filmEmulationEffect.d.ts +3 -0
- package/dist/filmEmulationEffect.d.ts.map +1 -0
- package/dist/filmEmulationEffect.js +4 -0
- package/dist/filmEmulationEffect.js.map +1 -0
- package/dist/filmGrainEffect.d.ts +3 -0
- package/dist/filmGrainEffect.d.ts.map +1 -0
- package/dist/filmGrainEffect.js +4 -0
- package/dist/filmGrainEffect.js.map +1 -0
- package/dist/fxaaEffect.d.ts +3 -0
- package/dist/fxaaEffect.d.ts.map +1 -0
- package/dist/fxaaEffect.js +4 -0
- package/dist/fxaaEffect.js.map +1 -0
- package/dist/gaussianMath.d.ts +5 -0
- package/dist/gaussianMath.d.ts.map +1 -0
- package/dist/gaussianMath.js +42 -0
- package/dist/gaussianMath.js.map +1 -0
- package/dist/glitchEffect.d.ts +3 -0
- package/dist/glitchEffect.d.ts.map +1 -0
- package/dist/glitchEffect.js +4 -0
- package/dist/glitchEffect.js.map +1 -0
- package/dist/godRaysEffect.d.ts +3 -0
- package/dist/godRaysEffect.d.ts.map +1 -0
- package/dist/godRaysEffect.js +4 -0
- package/dist/godRaysEffect.js.map +1 -0
- package/dist/godRaysMath.d.ts +8 -0
- package/dist/godRaysMath.d.ts.map +1 -0
- package/dist/godRaysMath.js +49 -0
- package/dist/godRaysMath.js.map +1 -0
- package/dist/grayscaleEffect.d.ts +3 -0
- package/dist/grayscaleEffect.d.ts.map +1 -0
- package/dist/grayscaleEffect.js +4 -0
- package/dist/grayscaleEffect.js.map +1 -0
- package/dist/halftoneEffect.d.ts +3 -0
- package/dist/halftoneEffect.d.ts.map +1 -0
- package/dist/halftoneEffect.js +4 -0
- package/dist/halftoneEffect.js.map +1 -0
- package/dist/hueSaturationEffect.d.ts +3 -0
- package/dist/hueSaturationEffect.d.ts.map +1 -0
- package/dist/hueSaturationEffect.js +4 -0
- package/dist/hueSaturationEffect.js.map +1 -0
- package/dist/index.d.ts +67 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +67 -0
- package/dist/index.js.map +1 -0
- package/dist/invertEffect.d.ts +3 -0
- package/dist/invertEffect.d.ts.map +1 -0
- package/dist/invertEffect.js +4 -0
- package/dist/invertEffect.js.map +1 -0
- package/dist/kuwaharaEffect.d.ts +3 -0
- package/dist/kuwaharaEffect.d.ts.map +1 -0
- package/dist/kuwaharaEffect.js +4 -0
- package/dist/kuwaharaEffect.js.map +1 -0
- package/dist/kuwaharaMath.d.ts +6 -0
- package/dist/kuwaharaMath.d.ts.map +1 -0
- package/dist/kuwaharaMath.js +70 -0
- package/dist/kuwaharaMath.js.map +1 -0
- package/dist/lensDirtEffect.d.ts +3 -0
- package/dist/lensDirtEffect.d.ts.map +1 -0
- package/dist/lensDirtEffect.js +4 -0
- package/dist/lensDirtEffect.js.map +1 -0
- package/dist/lensDistortionEffect.d.ts +3 -0
- package/dist/lensDistortionEffect.d.ts.map +1 -0
- package/dist/lensDistortionEffect.js +4 -0
- package/dist/lensDistortionEffect.js.map +1 -0
- package/dist/lensFlareEffect.d.ts +3 -0
- package/dist/lensFlareEffect.d.ts.map +1 -0
- package/dist/lensFlareEffect.js +4 -0
- package/dist/lensFlareEffect.js.map +1 -0
- package/dist/liftGammaGainEffect.d.ts +3 -0
- package/dist/liftGammaGainEffect.d.ts.map +1 -0
- package/dist/liftGammaGainEffect.js +4 -0
- package/dist/liftGammaGainEffect.js.map +1 -0
- package/dist/lookupTableGradeEffect.d.ts +3 -0
- package/dist/lookupTableGradeEffect.d.ts.map +1 -0
- package/dist/lookupTableGradeEffect.js +4 -0
- package/dist/lookupTableGradeEffect.js.map +1 -0
- package/dist/lutMath.d.ts +7 -0
- package/dist/lutMath.d.ts.map +1 -0
- package/dist/lutMath.js +39 -0
- package/dist/lutMath.js.map +1 -0
- package/dist/motionBlurEffect.d.ts +3 -0
- package/dist/motionBlurEffect.d.ts.map +1 -0
- package/dist/motionBlurEffect.js +4 -0
- package/dist/motionBlurEffect.js.map +1 -0
- package/dist/outlineEffect.d.ts +3 -0
- package/dist/outlineEffect.d.ts.map +1 -0
- package/dist/outlineEffect.js +4 -0
- package/dist/outlineEffect.js.map +1 -0
- package/dist/panniniProjectionEffect.d.ts +3 -0
- package/dist/panniniProjectionEffect.d.ts.map +1 -0
- package/dist/panniniProjectionEffect.js +4 -0
- package/dist/panniniProjectionEffect.js.map +1 -0
- package/dist/pixelateEffect.d.ts +3 -0
- package/dist/pixelateEffect.d.ts.map +1 -0
- package/dist/pixelateEffect.js +4 -0
- package/dist/pixelateEffect.js.map +1 -0
- package/dist/posterizeEffect.d.ts +3 -0
- package/dist/posterizeEffect.d.ts.map +1 -0
- package/dist/posterizeEffect.js +4 -0
- package/dist/posterizeEffect.js.map +1 -0
- package/dist/radialBlurEffect.d.ts +3 -0
- package/dist/radialBlurEffect.d.ts.map +1 -0
- package/dist/radialBlurEffect.js +4 -0
- package/dist/radialBlurEffect.js.map +1 -0
- package/dist/renderEffectDefaults.d.ts +4 -0
- package/dist/renderEffectDefaults.d.ts.map +1 -0
- package/dist/renderEffectDefaults.js +111 -0
- package/dist/renderEffectDefaults.js.map +1 -0
- package/dist/renderEffectInputs.d.ts +5 -0
- package/dist/renderEffectInputs.d.ts.map +1 -0
- package/dist/renderEffectInputs.js +87 -0
- package/dist/renderEffectInputs.js.map +1 -0
- package/dist/renderEffectInterpolation.d.ts +4 -0
- package/dist/renderEffectInterpolation.d.ts.map +1 -0
- package/dist/renderEffectInterpolation.js +75 -0
- package/dist/renderEffectInterpolation.js.map +1 -0
- package/dist/renderEffectValidation.d.ts +3 -0
- package/dist/renderEffectValidation.d.ts.map +1 -0
- package/dist/renderEffectValidation.js +18 -0
- package/dist/renderEffectValidation.js.map +1 -0
- package/dist/scanlinesEffect.d.ts +3 -0
- package/dist/scanlinesEffect.d.ts.map +1 -0
- package/dist/scanlinesEffect.js +4 -0
- package/dist/scanlinesEffect.js.map +1 -0
- package/dist/screenSpaceFogEffect.d.ts +3 -0
- package/dist/screenSpaceFogEffect.d.ts.map +1 -0
- package/dist/screenSpaceFogEffect.js +4 -0
- package/dist/screenSpaceFogEffect.js.map +1 -0
- package/dist/sepiaEffect.d.ts +3 -0
- package/dist/sepiaEffect.d.ts.map +1 -0
- package/dist/sepiaEffect.js +4 -0
- package/dist/sepiaEffect.js.map +1 -0
- package/dist/sharpenEffect.d.ts +3 -0
- package/dist/sharpenEffect.d.ts.map +1 -0
- package/dist/sharpenEffect.js +4 -0
- package/dist/sharpenEffect.js.map +1 -0
- package/dist/sketchEffect.d.ts +3 -0
- package/dist/sketchEffect.d.ts.map +1 -0
- package/dist/sketchEffect.js +4 -0
- package/dist/sketchEffect.js.map +1 -0
- package/dist/smaaEffect.d.ts +3 -0
- package/dist/smaaEffect.d.ts.map +1 -0
- package/dist/smaaEffect.js +4 -0
- package/dist/smaaEffect.js.map +1 -0
- package/dist/ssaoEffect.d.ts +3 -0
- package/dist/ssaoEffect.d.ts.map +1 -0
- package/dist/ssaoEffect.js +4 -0
- package/dist/ssaoEffect.js.map +1 -0
- package/dist/ssrEffect.d.ts +3 -0
- package/dist/ssrEffect.d.ts.map +1 -0
- package/dist/ssrEffect.js +4 -0
- package/dist/ssrEffect.js.map +1 -0
- package/dist/stylizeMath.d.ts +9 -0
- package/dist/stylizeMath.d.ts.map +1 -0
- package/dist/stylizeMath.js +77 -0
- package/dist/stylizeMath.js.map +1 -0
- package/dist/taaEffect.d.ts +3 -0
- package/dist/taaEffect.d.ts.map +1 -0
- package/dist/taaEffect.js +4 -0
- package/dist/taaEffect.js.map +1 -0
- package/dist/tiltShiftEffect.d.ts +3 -0
- package/dist/tiltShiftEffect.d.ts.map +1 -0
- package/dist/tiltShiftEffect.js +4 -0
- package/dist/tiltShiftEffect.js.map +1 -0
- package/dist/toneMapEffect.d.ts +3 -0
- package/dist/toneMapEffect.d.ts.map +1 -0
- package/dist/toneMapEffect.js +4 -0
- package/dist/toneMapEffect.js.map +1 -0
- package/dist/toneMapMath.d.ts +12 -0
- package/dist/toneMapMath.d.ts.map +1 -0
- package/dist/toneMapMath.js +110 -0
- package/dist/toneMapMath.js.map +1 -0
- package/dist/vignetteEffect.d.ts +3 -0
- package/dist/vignetteEffect.d.ts.map +1 -0
- package/dist/vignetteEffect.js +4 -0
- package/dist/vignetteEffect.js.map +1 -0
- package/dist/volumetricLightEffect.d.ts +3 -0
- package/dist/volumetricLightEffect.d.ts.map +1 -0
- package/dist/volumetricLightEffect.js +4 -0
- package/dist/volumetricLightEffect.js.map +1 -0
- package/dist/whiteBalanceEffect.d.ts +3 -0
- package/dist/whiteBalanceEffect.d.ts.map +1 -0
- package/dist/whiteBalanceEffect.js +4 -0
- package/dist/whiteBalanceEffect.js.map +1 -0
- package/package.json +37 -0
- package/src/autoExposureEffect.test.ts +11 -0
- package/src/barrelDistortionEffect.test.ts +11 -0
- package/src/bloomEffect.test.ts +41 -0
- package/src/bokehDepthOfFieldEffect.test.ts +15 -0
- package/src/brightnessContrastEffect.test.ts +14 -0
- package/src/cameraMotionBlurEffect.test.ts +14 -0
- package/src/channelMixerEffect.test.ts +12 -0
- package/src/chromaticAberrationEffect.test.ts +14 -0
- package/src/colorBlindSimulationEffect.test.ts +13 -0
- package/src/colorGradeEffect.test.ts +11 -0
- package/src/colorScienceMath.test.ts +160 -0
- package/src/colorTemperatureMath.test.ts +67 -0
- package/src/contactShadowsEffect.test.ts +14 -0
- package/src/crtEffect.test.ts +16 -0
- package/src/customShaderEffect.test.ts +14 -0
- package/src/depthMath.test.ts +71 -0
- package/src/directionalBlurEffect.test.ts +11 -0
- package/src/displacementEffect.test.ts +15 -0
- package/src/ditherEffect.test.ts +11 -0
- package/src/edgeDetectMath.test.ts +84 -0
- package/src/exposureEffect.test.ts +7 -0
- package/src/filmEmulationEffect.test.ts +14 -0
- package/src/filmGrainEffect.test.ts +15 -0
- package/src/fxaaEffect.test.ts +14 -0
- package/src/gaussianMath.test.ts +93 -0
- package/src/glitchEffect.test.ts +16 -0
- package/src/godRaysEffect.test.ts +15 -0
- package/src/godRaysMath.test.ts +63 -0
- package/src/grayscaleEffect.test.ts +11 -0
- package/src/halftoneEffect.test.ts +11 -0
- package/src/hueSaturationEffect.test.ts +15 -0
- package/src/invertEffect.test.ts +11 -0
- package/src/kuwaharaEffect.test.ts +11 -0
- package/src/kuwaharaMath.test.ts +65 -0
- package/src/lensDirtEffect.test.ts +15 -0
- package/src/lensDistortionEffect.test.ts +11 -0
- package/src/lensFlareEffect.test.ts +16 -0
- package/src/liftGammaGainEffect.test.ts +15 -0
- package/src/lookupTableGradeEffect.test.ts +11 -0
- package/src/lutMath.test.ts +67 -0
- package/src/motionBlurEffect.test.ts +11 -0
- package/src/outlineEffect.test.ts +15 -0
- package/src/panniniProjectionEffect.test.ts +14 -0
- package/src/pixelateEffect.test.ts +11 -0
- package/src/posterizeEffect.test.ts +11 -0
- package/src/radialBlurEffect.test.ts +15 -0
- package/src/renderEffectDefaults.test.ts +70 -0
- package/src/renderEffectInputs.test.ts +60 -0
- package/src/renderEffectInterpolation.test.ts +71 -0
- package/src/renderEffectValidation.test.ts +37 -0
- package/src/scanlinesEffect.test.ts +11 -0
- package/src/screenSpaceFogEffect.test.ts +14 -0
- package/src/sepiaEffect.test.ts +11 -0
- package/src/sharpenEffect.test.ts +11 -0
- package/src/sketchEffect.test.ts +11 -0
- package/src/smaaEffect.test.ts +11 -0
- package/src/ssaoEffect.test.ts +11 -0
- package/src/ssrEffect.test.ts +11 -0
- package/src/stylizeMath.test.ts +99 -0
- package/src/taaEffect.test.ts +11 -0
- package/src/tiltShiftEffect.test.ts +15 -0
- package/src/toneMapEffect.test.ts +7 -0
- package/src/toneMapMath.test.ts +145 -0
- package/src/vignetteEffect.test.ts +16 -0
- package/src/volumetricLightEffect.test.ts +14 -0
- package/src/whiteBalanceEffect.test.ts +11 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ditherEffect.d.ts","sourceRoot":"","sources":["../src/ditherEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAM,GAAG,YAAY,CAEnG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ditherEffect.js","sourceRoot":"","sources":["../src/ditherEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAAC,UAAgD,EAAE;IACnF,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { OutlineEffect, SketchEffect } from '@flighthq/types';
|
|
2
|
+
export declare function computeOutlineEdgeParams(effect: Readonly<OutlineEffect>, out: [number, number, number, number, number, number]): void;
|
|
3
|
+
export declare function computeOutlineThicknessPx(effect: Readonly<OutlineEffect>): number;
|
|
4
|
+
export declare function computeSketchEdgeParams(effect: Readonly<SketchEffect>, out: [number, number]): void;
|
|
5
|
+
export declare function getSobelKernelCoefficients(out: Float32Array): void;
|
|
6
|
+
//# sourceMappingURL=edgeDetectMath.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edgeDetectMath.d.ts","sourceRoot":"","sources":["../src/edgeDetectMath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAanE,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC/B,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GACpD,IAAI,CAcN;AAID,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,MAAM,CAEjF;AAQD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAOnG;AAOD,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,CAqBlE"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// Edge detection recipe math. Shared by OutlineEffect (color silhouette) and SketchEffect
|
|
2
|
+
// (pencil-line stylize) backends. Both use Sobel/Prewitt edge detection internally; this module
|
|
3
|
+
// provides the parameter derivations so all backends agree on threshold semantics.
|
|
4
|
+
// All functions are alias-safe and zero-allocation (scalar return or out-param).
|
|
5
|
+
// Compute the outline edge-detect threshold and output blend params for an OutlineEffect.
|
|
6
|
+
// Writes [threshold, feather, colorR, colorG, colorB, colorA] into `out` (6 values).
|
|
7
|
+
// threshold: Sobel gradient magnitude above which a pixel is considered an edge.
|
|
8
|
+
// feather: soft band above threshold for anti-aliased edges (= threshold * 0.5).
|
|
9
|
+
// colorR/G/B/A: unpacked RGBA from effect.color, normalized to [0..1].
|
|
10
|
+
// Alias-safe.
|
|
11
|
+
export function computeOutlineEdgeParams(effect, out) {
|
|
12
|
+
const threshold = Math.max(0, effect.threshold ?? 0.1);
|
|
13
|
+
const feather = threshold * 0.5;
|
|
14
|
+
const color = effect.color ?? 0x000000ff;
|
|
15
|
+
const r = ((color >>> 24) & 0xff) / 255;
|
|
16
|
+
const g = ((color >>> 16) & 0xff) / 255;
|
|
17
|
+
const b = ((color >>> 8) & 0xff) / 255;
|
|
18
|
+
const a = (color & 0xff) / 255;
|
|
19
|
+
out[0] = threshold;
|
|
20
|
+
out[1] = feather;
|
|
21
|
+
out[2] = r;
|
|
22
|
+
out[3] = g;
|
|
23
|
+
out[4] = b;
|
|
24
|
+
out[5] = a;
|
|
25
|
+
}
|
|
26
|
+
// Compute the outline thickness expansion in pixels. Outline backends typically dilate the edge
|
|
27
|
+
// mask by the thickness using a simple box dilate; this returns the integer dilation radius.
|
|
28
|
+
export function computeOutlineThicknessPx(effect) {
|
|
29
|
+
return Math.max(0, Math.round(effect.thickness ?? 1));
|
|
30
|
+
}
|
|
31
|
+
// Compute the sketch edge-detect threshold and strength for a SketchEffect.
|
|
32
|
+
// Writes [threshold, strength] into `out`.
|
|
33
|
+
// threshold: Sobel gradient magnitude for edge detection; derived from `strength` so that
|
|
34
|
+
// lower strength = higher threshold (looser edge capture).
|
|
35
|
+
// strength: direct sketch line brightness multiplier.
|
|
36
|
+
// Alias-safe.
|
|
37
|
+
export function computeSketchEdgeParams(effect, out) {
|
|
38
|
+
const strength = Math.max(0, Math.min(1, effect.strength ?? 1));
|
|
39
|
+
// Threshold inversely proportional to strength; at strength=1 catch fine edges (0.05),
|
|
40
|
+
// at strength=0 threshold is 1 (no edges). Clamp to [0.01..1].
|
|
41
|
+
const threshold = Math.max(0.01, Math.min(1, 1 - strength * 0.95));
|
|
42
|
+
out[0] = threshold;
|
|
43
|
+
out[1] = strength;
|
|
44
|
+
}
|
|
45
|
+
// Compute the Sobel kernel coefficients for a 3×3 edge-detect pass.
|
|
46
|
+
// Returns [gx, gy] — the two 3×3 filter kernels in row-major order — as a pair of 9-element slices
|
|
47
|
+
// into `out` (first 9 = Gx, next 9 = Gy). `out` must have capacity >= 18.
|
|
48
|
+
// These are the standard Sobel operator coefficients; they are the same for every effect.
|
|
49
|
+
// Alias-safe: writes to a fresh output without reading from it.
|
|
50
|
+
export function getSobelKernelCoefficients(out) {
|
|
51
|
+
// Gx: horizontal edges
|
|
52
|
+
out[0] = -1;
|
|
53
|
+
out[1] = 0;
|
|
54
|
+
out[2] = 1;
|
|
55
|
+
out[3] = -2;
|
|
56
|
+
out[4] = 0;
|
|
57
|
+
out[5] = 2;
|
|
58
|
+
out[6] = -1;
|
|
59
|
+
out[7] = 0;
|
|
60
|
+
out[8] = 1;
|
|
61
|
+
// Gy: vertical edges
|
|
62
|
+
out[9] = -1;
|
|
63
|
+
out[10] = -2;
|
|
64
|
+
out[11] = -1;
|
|
65
|
+
out[12] = 0;
|
|
66
|
+
out[13] = 0;
|
|
67
|
+
out[14] = 0;
|
|
68
|
+
out[15] = 1;
|
|
69
|
+
out[16] = 2;
|
|
70
|
+
out[17] = 1;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=edgeDetectMath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edgeDetectMath.js","sourceRoot":"","sources":["../src/edgeDetectMath.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exposureEffect.d.ts","sourceRoot":"","sources":["../src/exposureEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAM,GAAG,cAAc,CAEzG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exposureEffect.js","sourceRoot":"","sources":["../src/exposureEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oBAAoB,CAAC,UAAkD,EAAE;IACvF,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,OAAO,EAAE,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filmEmulationEffect.d.ts","sourceRoot":"","sources":["../src/filmEmulationEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAM,GACxD,mBAAmB,CAErB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filmEmulationEffect.js","sourceRoot":"","sources":["../src/filmEmulationEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,yBAAyB,CACvC,UAAuD,EAAE;IAEzD,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,OAAO,EAAE,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filmGrainEffect.d.ts","sourceRoot":"","sources":["../src/filmGrainEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAM,GAAG,eAAe,CAE5G"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filmGrainEffect.js","sourceRoot":"","sources":["../src/filmGrainEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,qBAAqB,CAAC,UAAmD,EAAE;IACzF,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,OAAO,EAAE,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fxaaEffect.d.ts","sourceRoot":"","sources":["../src/fxaaEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAM,GAAG,UAAU,CAE7F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fxaaEffect.js","sourceRoot":"","sources":["../src/fxaaEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAAC,UAA8C,EAAE;IAC/E,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,OAAO,EAAE,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function computeGaussianRadiusFromSigma(sigma: number): number;
|
|
2
|
+
export declare function computeGaussianSigmaFromRadius(radius: number): number;
|
|
3
|
+
export declare function computeSeparableBlurPassCount(samples: number | undefined): number;
|
|
4
|
+
export declare function createGaussianKernelWeights(radius: number, sigma: number, out: Float32Array): number;
|
|
5
|
+
//# sourceMappingURL=gaussianMath.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gaussianMath.d.ts","sourceRoot":"","sources":["../src/gaussianMath.ts"],"names":[],"mappings":"AAMA,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpE;AAID,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAErE;AAKD,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAEjF;AAOD,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,CAgBpG"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// Gaussian / separable-blur recipe math. Substrate-agnostic helpers shared by all backends so that
|
|
2
|
+
// GL, WGPU, and Canvas blur passes derive identical kernel parameters from the same effect intent.
|
|
3
|
+
// All functions are alias-safe: they read inputs before writing any output.
|
|
4
|
+
// Converts a Gaussian sigma (standard deviation in pixels) to an integer blur radius.
|
|
5
|
+
// The radius covers ≥3σ so at least 99.7 % of the distribution is within the kernel.
|
|
6
|
+
export function computeGaussianRadiusFromSigma(sigma) {
|
|
7
|
+
return Math.ceil(3 * Math.max(0, sigma));
|
|
8
|
+
}
|
|
9
|
+
// Converts a blur radius (half-width of the kernel, in pixels) to a Gaussian sigma.
|
|
10
|
+
// Inverse of computeGaussianRadiusFromSigma: sigma = radius / 3.
|
|
11
|
+
export function computeGaussianSigmaFromRadius(radius) {
|
|
12
|
+
return Math.max(0, radius) / 3;
|
|
13
|
+
}
|
|
14
|
+
// Returns the number of separable blur passes for a blur-family effect based on its `samples` field.
|
|
15
|
+
// When `samples` is not set, defaults to 1 pass. Higher values raise quality at linear GPU cost.
|
|
16
|
+
// Blur family: DirectionalBlurEffect, MotionBlurEffect, RadialBlurEffect, CameraMotionBlurEffect.
|
|
17
|
+
export function computeSeparableBlurPassCount(samples) {
|
|
18
|
+
return Math.max(1, Math.round(samples ?? 1));
|
|
19
|
+
}
|
|
20
|
+
// Writes normalized 1D Gaussian kernel weights (single-sided, centered at 0) into `out` and
|
|
21
|
+
// returns the number of weights written. The `out` array must have capacity >= radius + 1.
|
|
22
|
+
// Weights are normalized so they sum to 1 (including the mirror on the other side). The
|
|
23
|
+
// weight at index 0 is the center weight; index k corresponds to an offset of k pixels.
|
|
24
|
+
// Alias-safe: `out` may point to any typed array; no shared state is read.
|
|
25
|
+
export function createGaussianKernelWeights(radius, sigma, out) {
|
|
26
|
+
const r = Math.max(0, Math.ceil(radius));
|
|
27
|
+
const s = Math.max(1e-6, sigma);
|
|
28
|
+
const twoSigmaSq = 2 * s * s;
|
|
29
|
+
let sum = 0;
|
|
30
|
+
for (let i = 0; i <= r; i++) {
|
|
31
|
+
const w = Math.exp(-(i * i) / twoSigmaSq);
|
|
32
|
+
out[i] = w;
|
|
33
|
+
sum += i === 0 ? w : 2 * w; // center counted once, sides counted twice.
|
|
34
|
+
}
|
|
35
|
+
// Normalize.
|
|
36
|
+
const invSum = 1 / sum;
|
|
37
|
+
for (let i = 0; i <= r; i++) {
|
|
38
|
+
out[i] *= invSum;
|
|
39
|
+
}
|
|
40
|
+
return r + 1;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=gaussianMath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gaussianMath.js","sourceRoot":"","sources":["../src/gaussianMath.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,mGAAmG;AACnG,4EAA4E;AAE5E,sFAAsF;AACtF,qFAAqF;AACrF,MAAM,UAAU,8BAA8B,CAAC,KAAa;IAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,oFAAoF;AACpF,iEAAiE;AACjE,MAAM,UAAU,8BAA8B,CAAC,MAAc;IAC3D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC;AAED,qGAAqG;AACrG,iGAAiG;AACjG,kGAAkG;AAClG,MAAM,UAAU,6BAA6B,CAAC,OAA2B;IACvE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,4FAA4F;AAC5F,2FAA2F;AAC3F,wFAAwF;AACxF,wFAAwF;AACxF,2EAA2E;AAC3E,MAAM,UAAU,2BAA2B,CAAC,MAAc,EAAE,KAAa,EAAE,GAAiB;IAC1F,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;QAC1C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,4CAA4C;IAC1E,CAAC;IACD,aAAa;IACb,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;IACnB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glitchEffect.d.ts","sourceRoot":"","sources":["../src/glitchEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAM,GAAG,YAAY,CAEnG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glitchEffect.js","sourceRoot":"","sources":["../src/glitchEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAAC,UAAgD,EAAE;IACnF,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"godRaysEffect.d.ts","sourceRoot":"","sources":["../src/godRaysEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAM,GAAG,aAAa,CAEtG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"godRaysEffect.js","sourceRoot":"","sources":["../src/godRaysEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,mBAAmB,CAAC,UAAiD,EAAE;IACrF,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { GodRaysEffect } from '@flighthq/types';
|
|
2
|
+
export declare function computeGodRaysAccumulationScale(effect: Readonly<GodRaysEffect>): number;
|
|
3
|
+
export declare function computeGodRaysLightCenter(effect: Readonly<GodRaysEffect>, out: [number, number]): void;
|
|
4
|
+
export declare function computeGodRaysSampleWeight(effect: Readonly<GodRaysEffect>, sampleIndex: number): number;
|
|
5
|
+
export declare function computeGodRaysStepSize(effect: Readonly<GodRaysEffect>, px: number, // pixel UV x [0..1]
|
|
6
|
+
py: number, // pixel UV y [0..1]
|
|
7
|
+
out: [number, number]): void;
|
|
8
|
+
//# sourceMappingURL=godRaysMath.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"godRaysMath.d.ts","sourceRoot":"","sources":["../src/godRaysMath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAUrD,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,MAAM,CAKvF;AAID,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAGtG;AAMD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAMvG;AAOD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC/B,EAAE,EAAE,MAAM,EAAE,oBAAoB;AAChC,EAAE,EAAE,MAAM,EAAE,oBAAoB;AAChC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GACpB,IAAI,CAUN"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// God rays (light shaft / volumetric scatter) recipe math. The screen-space god rays algorithm
|
|
2
|
+
// (Shafts of Light, Duda/Nunnally technique) marches samples along a ray from the light source
|
|
3
|
+
// toward the pixel, accumulating occlusion-modulated luminance. All functions are alias-safe
|
|
4
|
+
// and zero-allocation (scalar return or out-param).
|
|
5
|
+
// Compute the total accumulation scale for the god rays pass. This is the normalization factor
|
|
6
|
+
// applied to the summed contributions to keep the output in a bounded range.
|
|
7
|
+
// Derived as: 1 / (samples * weight * exposure).
|
|
8
|
+
export function computeGodRaysAccumulationScale(effect) {
|
|
9
|
+
const samples = Math.max(1, effect.samples ?? 100);
|
|
10
|
+
const weight = Math.max(1e-6, effect.weight ?? 0.4);
|
|
11
|
+
const exposure = Math.max(1e-6, effect.exposure ?? 0.1);
|
|
12
|
+
return 1 / (samples * weight * exposure);
|
|
13
|
+
}
|
|
14
|
+
// Compute the light source screen-space position as a [cx, cy] pair, clamped to [0..1].
|
|
15
|
+
// Alias-safe.
|
|
16
|
+
export function computeGodRaysLightCenter(effect, out) {
|
|
17
|
+
out[0] = Math.max(0, Math.min(1, effect.centerX ?? 0.5));
|
|
18
|
+
out[1] = Math.max(0, Math.min(1, effect.centerY ?? 0.5));
|
|
19
|
+
}
|
|
20
|
+
// Compute the per-sample weight for the god rays accumulation pass. The weight decays
|
|
21
|
+
// geometrically by `decay` with each step, then multiplied by `weight` and `exposure`.
|
|
22
|
+
// Returns the contribution multiplier for sample index `i` (0-based) out of `totalSamples`.
|
|
23
|
+
// Used by backends to precompute sample weights for the march loop.
|
|
24
|
+
export function computeGodRaysSampleWeight(effect, sampleIndex) {
|
|
25
|
+
const decay = effect.decay ?? 0.96;
|
|
26
|
+
const weight = effect.weight ?? 0.4;
|
|
27
|
+
const exposure = effect.exposure ?? 0.1;
|
|
28
|
+
// illuminationDecay^i is the per-sample geometric decay; multiplied by weight and exposure.
|
|
29
|
+
return Math.pow(decay, sampleIndex) * weight * exposure;
|
|
30
|
+
}
|
|
31
|
+
// Compute the step size (UV delta per sample) along a god rays ray from the light center
|
|
32
|
+
// to a screen-space point (px, py) with `samples` steps. The step is expressed as a 2-component
|
|
33
|
+
// UV offset [dx, dy] added to the sample position at each march step.
|
|
34
|
+
// density scales the effective ray length (higher density = shorter steps, thicker shafts).
|
|
35
|
+
// Alias-safe: computes all scalars before writing.
|
|
36
|
+
export function computeGodRaysStepSize(effect, px, // pixel UV x [0..1]
|
|
37
|
+
py, // pixel UV y [0..1]
|
|
38
|
+
out) {
|
|
39
|
+
const cx = effect.centerX ?? 0.5;
|
|
40
|
+
const cy = effect.centerY ?? 0.5;
|
|
41
|
+
const density = effect.density ?? 0.96;
|
|
42
|
+
const samples = Math.max(1, effect.samples ?? 100);
|
|
43
|
+
// Delta from pixel to light, scaled by density and divided by sample count.
|
|
44
|
+
const dx = ((cx - px) * density) / samples;
|
|
45
|
+
const dy = ((cy - py) * density) / samples;
|
|
46
|
+
out[0] = dx;
|
|
47
|
+
out[1] = dy;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=godRaysMath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"godRaysMath.js","sourceRoot":"","sources":["../src/godRaysMath.ts"],"names":[],"mappings":"AAEA,+FAA+F;AAC/F,+FAA+F;AAC/F,6FAA6F;AAC7F,oDAAoD;AAEpD,+FAA+F;AAC/F,6EAA6E;AAC7E,iDAAiD;AACjD,MAAM,UAAU,+BAA+B,CAAC,MAA+B;IAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED,wFAAwF;AACxF,cAAc;AACd,MAAM,UAAU,yBAAyB,CAAC,MAA+B,EAAE,GAAqB;IAC9F,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC;IACzD,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,sFAAsF;AACtF,uFAAuF;AACvF,4FAA4F;AAC5F,oEAAoE;AACpE,MAAM,UAAU,0BAA0B,CAAC,MAA+B,EAAE,WAAmB;IAC7F,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC;IACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC;IACxC,4FAA4F;IAC5F,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,MAAM,GAAG,QAAQ,CAAC;AAC1D,CAAC;AAED,yFAAyF;AACzF,gGAAgG;AAChG,sEAAsE;AACtE,4FAA4F;AAC5F,mDAAmD;AACnD,MAAM,UAAU,sBAAsB,CACpC,MAA+B,EAC/B,EAAU,EAAE,oBAAoB;AAChC,EAAU,EAAE,oBAAoB;AAChC,GAAqB;IAErB,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC;IACjC,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC;IACjC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;IACnD,4EAA4E;IAC5E,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC;IAC3C,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC;IAC3C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACZ,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grayscaleEffect.d.ts","sourceRoot":"","sources":["../src/grayscaleEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAM,GAAG,eAAe,CAE5G"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grayscaleEffect.js","sourceRoot":"","sources":["../src/grayscaleEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,qBAAqB,CAAC,UAAmD,EAAE;IACzF,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,OAAO,EAAE,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"halftoneEffect.d.ts","sourceRoot":"","sources":["../src/halftoneEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAM,GAAG,cAAc,CAEzG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"halftoneEffect.js","sourceRoot":"","sources":["../src/halftoneEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oBAAoB,CAAC,UAAkD,EAAE;IACvF,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,OAAO,EAAE,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hueSaturationEffect.d.ts","sourceRoot":"","sources":["../src/hueSaturationEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAM,GACxD,mBAAmB,CAErB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hueSaturationEffect.js","sourceRoot":"","sources":["../src/hueSaturationEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,yBAAyB,CACvC,UAAuD,EAAE;IAEzD,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,OAAO,EAAE,CAAC;AACrD,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export * from './autoExposureEffect';
|
|
2
|
+
export * from './barrelDistortionEffect';
|
|
3
|
+
export * from './bloomEffect';
|
|
4
|
+
export * from './bokehDepthOfFieldEffect';
|
|
5
|
+
export * from './brightnessContrastEffect';
|
|
6
|
+
export * from './cameraMotionBlurEffect';
|
|
7
|
+
export * from './channelMixerEffect';
|
|
8
|
+
export * from './chromaticAberrationEffect';
|
|
9
|
+
export * from './colorBlindSimulationEffect';
|
|
10
|
+
export * from './colorGradeEffect';
|
|
11
|
+
export * from './colorScienceMath';
|
|
12
|
+
export * from './colorTemperatureMath';
|
|
13
|
+
export * from './contactShadowsEffect';
|
|
14
|
+
export * from './crtEffect';
|
|
15
|
+
export * from './customShaderEffect';
|
|
16
|
+
export * from './depthMath';
|
|
17
|
+
export * from './directionalBlurEffect';
|
|
18
|
+
export * from './displacementEffect';
|
|
19
|
+
export * from './ditherEffect';
|
|
20
|
+
export * from './edgeDetectMath';
|
|
21
|
+
export * from './exposureEffect';
|
|
22
|
+
export * from './filmEmulationEffect';
|
|
23
|
+
export * from './filmGrainEffect';
|
|
24
|
+
export * from './fxaaEffect';
|
|
25
|
+
export * from './gaussianMath';
|
|
26
|
+
export * from './glitchEffect';
|
|
27
|
+
export * from './godRaysEffect';
|
|
28
|
+
export * from './godRaysMath';
|
|
29
|
+
export * from './grayscaleEffect';
|
|
30
|
+
export * from './halftoneEffect';
|
|
31
|
+
export * from './hueSaturationEffect';
|
|
32
|
+
export * from './invertEffect';
|
|
33
|
+
export * from './kuwaharaEffect';
|
|
34
|
+
export * from './kuwaharaMath';
|
|
35
|
+
export * from './lensDirtEffect';
|
|
36
|
+
export * from './lensDistortionEffect';
|
|
37
|
+
export * from './lensFlareEffect';
|
|
38
|
+
export * from './liftGammaGainEffect';
|
|
39
|
+
export * from './lookupTableGradeEffect';
|
|
40
|
+
export * from './lutMath';
|
|
41
|
+
export * from './motionBlurEffect';
|
|
42
|
+
export * from './outlineEffect';
|
|
43
|
+
export * from './panniniProjectionEffect';
|
|
44
|
+
export * from './pixelateEffect';
|
|
45
|
+
export * from './posterizeEffect';
|
|
46
|
+
export * from './radialBlurEffect';
|
|
47
|
+
export * from './renderEffectDefaults';
|
|
48
|
+
export * from './renderEffectInputs';
|
|
49
|
+
export * from './renderEffectInterpolation';
|
|
50
|
+
export * from './renderEffectValidation';
|
|
51
|
+
export * from './scanlinesEffect';
|
|
52
|
+
export * from './screenSpaceFogEffect';
|
|
53
|
+
export * from './sepiaEffect';
|
|
54
|
+
export * from './sharpenEffect';
|
|
55
|
+
export * from './sketchEffect';
|
|
56
|
+
export * from './smaaEffect';
|
|
57
|
+
export * from './ssaoEffect';
|
|
58
|
+
export * from './ssrEffect';
|
|
59
|
+
export * from './stylizeMath';
|
|
60
|
+
export * from './taaEffect';
|
|
61
|
+
export * from './tiltShiftEffect';
|
|
62
|
+
export * from './toneMapEffect';
|
|
63
|
+
export * from './toneMapMath';
|
|
64
|
+
export * from './vignetteEffect';
|
|
65
|
+
export * from './volumetricLightEffect';
|
|
66
|
+
export * from './whiteBalanceEffect';
|
|
67
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export * from './autoExposureEffect';
|
|
2
|
+
export * from './barrelDistortionEffect';
|
|
3
|
+
export * from './bloomEffect';
|
|
4
|
+
export * from './bokehDepthOfFieldEffect';
|
|
5
|
+
export * from './brightnessContrastEffect';
|
|
6
|
+
export * from './cameraMotionBlurEffect';
|
|
7
|
+
export * from './channelMixerEffect';
|
|
8
|
+
export * from './chromaticAberrationEffect';
|
|
9
|
+
export * from './colorBlindSimulationEffect';
|
|
10
|
+
export * from './colorGradeEffect';
|
|
11
|
+
export * from './colorScienceMath';
|
|
12
|
+
export * from './colorTemperatureMath';
|
|
13
|
+
export * from './contactShadowsEffect';
|
|
14
|
+
export * from './crtEffect';
|
|
15
|
+
export * from './customShaderEffect';
|
|
16
|
+
export * from './depthMath';
|
|
17
|
+
export * from './directionalBlurEffect';
|
|
18
|
+
export * from './displacementEffect';
|
|
19
|
+
export * from './ditherEffect';
|
|
20
|
+
export * from './edgeDetectMath';
|
|
21
|
+
export * from './exposureEffect';
|
|
22
|
+
export * from './filmEmulationEffect';
|
|
23
|
+
export * from './filmGrainEffect';
|
|
24
|
+
export * from './fxaaEffect';
|
|
25
|
+
export * from './gaussianMath';
|
|
26
|
+
export * from './glitchEffect';
|
|
27
|
+
export * from './godRaysEffect';
|
|
28
|
+
export * from './godRaysMath';
|
|
29
|
+
export * from './grayscaleEffect';
|
|
30
|
+
export * from './halftoneEffect';
|
|
31
|
+
export * from './hueSaturationEffect';
|
|
32
|
+
export * from './invertEffect';
|
|
33
|
+
export * from './kuwaharaEffect';
|
|
34
|
+
export * from './kuwaharaMath';
|
|
35
|
+
export * from './lensDirtEffect';
|
|
36
|
+
export * from './lensDistortionEffect';
|
|
37
|
+
export * from './lensFlareEffect';
|
|
38
|
+
export * from './liftGammaGainEffect';
|
|
39
|
+
export * from './lookupTableGradeEffect';
|
|
40
|
+
export * from './lutMath';
|
|
41
|
+
export * from './motionBlurEffect';
|
|
42
|
+
export * from './outlineEffect';
|
|
43
|
+
export * from './panniniProjectionEffect';
|
|
44
|
+
export * from './pixelateEffect';
|
|
45
|
+
export * from './posterizeEffect';
|
|
46
|
+
export * from './radialBlurEffect';
|
|
47
|
+
export * from './renderEffectDefaults';
|
|
48
|
+
export * from './renderEffectInputs';
|
|
49
|
+
export * from './renderEffectInterpolation';
|
|
50
|
+
export * from './renderEffectValidation';
|
|
51
|
+
export * from './scanlinesEffect';
|
|
52
|
+
export * from './screenSpaceFogEffect';
|
|
53
|
+
export * from './sepiaEffect';
|
|
54
|
+
export * from './sharpenEffect';
|
|
55
|
+
export * from './sketchEffect';
|
|
56
|
+
export * from './smaaEffect';
|
|
57
|
+
export * from './ssaoEffect';
|
|
58
|
+
export * from './ssrEffect';
|
|
59
|
+
export * from './stylizeMath';
|
|
60
|
+
export * from './taaEffect';
|
|
61
|
+
export * from './tiltShiftEffect';
|
|
62
|
+
export * from './toneMapEffect';
|
|
63
|
+
export * from './toneMapMath';
|
|
64
|
+
export * from './vignetteEffect';
|
|
65
|
+
export * from './volumetricLightEffect';
|
|
66
|
+
export * from './whiteBalanceEffect';
|
|
67
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invertEffect.d.ts","sourceRoot":"","sources":["../src/invertEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAM,GAAG,YAAY,CAEnG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invertEffect.js","sourceRoot":"","sources":["../src/invertEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAAC,UAAgD,EAAE;IACnF,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kuwaharaEffect.d.ts","sourceRoot":"","sources":["../src/kuwaharaEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAM,GAAG,cAAc,CAEzG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kuwaharaEffect.js","sourceRoot":"","sources":["../src/kuwaharaEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oBAAoB,CAAC,UAAkD,EAAE;IACvF,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,OAAO,EAAE,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { KuwaharaEffect } from '@flighthq/types';
|
|
2
|
+
export declare function computeKuwaharaGaussianWeights(radius: number, out: Float32Array): number;
|
|
3
|
+
export declare function computeKuwaharaSectorOffsets(radius: number, out: [number, number, number, number, number, number, number, number]): void;
|
|
4
|
+
export declare function computeKuwaharaSectorPixelCount(effect: Readonly<KuwaharaEffect>): number;
|
|
5
|
+
export declare function computeKuwaharaSectorSize(effect: Readonly<KuwaharaEffect>): number;
|
|
6
|
+
//# sourceMappingURL=kuwaharaMath.d.ts.map
|