@nodetool-ai/gpu 0.8.6 → 0.8.8

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.
@@ -1 +1 @@
1
- 2026-10-18T07:13:36.385Z
1
+ 2026-10-25T16:17:19.995Z
package/dist/pool.d.ts CHANGED
@@ -23,7 +23,7 @@ export { consumePremulDebugWarnings, isPremulDebugEnabled, setPremulDebugEnabled
23
23
  export type { DebugViolation, DebugReadback, DebugSink, EncodeValidationArgs } from "./debug/premulValidator.js";
24
24
  export { ceilToBucket, makeScratchPool, makeUniformRing, createGPUContextFromDevice } from "./context.js";
25
25
  export type { GPUContext, GPUCapabilities, PipelineCache, CachedPipeline, ScratchPool, ScratchSpec, UniformRing } from "./context.js";
26
- export { ALL_SHADERS, ALL_RECIPES, ALL_CATALOG, passthroughV1, colorGradeV1, colorInvertV1, colorBrightnessContrastV1, colorHsbV1, colorExposureV1, colorPosterizeV1, colorCubeLutV1, colorChannelSplitV1, colorChannelShuffleV1, colorChannelMergeV1, colorGrayscaleV1, colorSolarizeV1, colorColorBalanceV1, colorExposureToneV1, colorLiftGammaGainV1, colorCdlV1, colorCurvesV1, colorHslAdjustV1, colorSplitToningV1, colorFilmLookV1, colorLevelsV1, blurGaussianV1, sharpenUnsharpMaskV1, vignetteV1, filtersGrainV1, filtersPixelateV1, filtersVisualFxV1, filtersThresholdV1, filtersConvolve3x3V1, filtersGlowV1, filtersBlurSeparableV1, chromaKeyV1, keyerLumaKeyV1, maskApplyV1, maskFromImageV1, maskInvertV1, sourcesSolidV1, sourcesLinearGradientV1, sourcesCheckerboardV1, sourcesRadialGradientV1, sourcesAngularGradientV1, sourcesDiamondGradientV1, sourcesGaussianNoiseV1, mixerAddV1, mixerColorOverlayV1, mixerOutlineV1, mixerShadowComposeV1, mixerDropShadowV1, mixerOverV1, transformMirrorV1, transformOffsetV1, transformCropV1, transformPadV1, transformTileV1, transformResizeV1, transformRotate90V1, transformAffineV1, transformCornerPinV1, transformPolarRemapV1, transformDisplaceV1, transformSpherizeV1, alphaStraightToPremulV1, alphaPremulToStraightV1 } from "./shaders/index.js";
26
+ export { ALL_SHADERS, ALL_RECIPES, ALL_CATALOG, passthroughV1, colorGradeV1, colorInvertV1, colorBrightnessContrastV1, colorHsbV1, colorExposureV1, colorPosterizeV1, colorCubeLutV1, colorChannelSplitV1, colorChannelShuffleV1, colorChannelMergeV1, colorGrayscaleV1, colorSolarizeV1, colorColorBalanceV1, colorExposureToneV1, colorLiftGammaGainV1, colorCdlV1, colorCurvesV1, colorHslAdjustV1, colorSplitToningV1, colorFilmLookV1, colorLevelsV1, blurGaussianV1, sharpenUnsharpMaskV1, vignetteV1, filtersGrainV1, filtersGrainV2, filtersPixelateV1, filtersVisualFxV1, filtersThresholdV1, filtersConvolve3x3V1, filtersGlowV1, filtersBlurSeparableV1, chromaKeyV1, keyerLumaKeyV1, maskApplyV1, maskFromImageV1, maskInvertV1, sourcesSolidV1, sourcesLinearGradientV1, sourcesCheckerboardV1, sourcesRadialGradientV1, sourcesAngularGradientV1, sourcesDiamondGradientV1, sourcesGaussianNoiseV1, mixerAddV1, mixerColorOverlayV1, mixerOutlineV1, mixerShadowComposeV1, mixerDropShadowV1, mixerOverV1, transformMirrorV1, transformOffsetV1, transformCropV1, transformPadV1, transformTileV1, transformResizeV1, transformRotate90V1, transformAffineV1, transformCornerPinV1, transformPolarRemapV1, transformDisplaceV1, transformSpherizeV1, alphaStraightToPremulV1, alphaPremulToStraightV1 } from "./shaders/index.js";
27
27
  import { ShaderRegistry } from "./registry.js";
28
28
  /** A {@link ShaderRegistry} preloaded with every catalog module (shaders + recipes). */
29
29
  export declare function createDefaultRegistry(): ShaderRegistry;
@@ -1 +1 @@
1
- {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,cAAc,EACd,aAAa,EACb,SAAS,EACT,oBAAoB,EACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,YAAY,EACZ,eAAe,EACf,eAAe,EACf,0BAA0B,EAC3B,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,UAAU,EACV,eAAe,EACf,aAAa,EACb,cAAc,EACd,WAAW,EACX,WAAW,EACX,WAAW,EACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,aAAa,EACb,YAAY,EACZ,aAAa,EACb,yBAAyB,EACzB,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,sBAAsB,EACtB,WAAW,EACX,cAAc,EACd,WAAW,EACX,eAAe,EACf,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,wFAAwF;AACxF,wBAAgB,qBAAqB,IAAI,cAAc,CAItD"}
1
+ {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,cAAc,EACd,aAAa,EACb,SAAS,EACT,oBAAoB,EACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,YAAY,EACZ,eAAe,EACf,eAAe,EACf,0BAA0B,EAC3B,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,UAAU,EACV,eAAe,EACf,aAAa,EACb,cAAc,EACd,WAAW,EACX,WAAW,EACX,WAAW,EACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,aAAa,EACb,YAAY,EACZ,aAAa,EACb,yBAAyB,EACzB,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,sBAAsB,EACtB,WAAW,EACX,cAAc,EACd,WAAW,EACX,eAAe,EACf,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,wFAAwF;AACxF,wBAAgB,qBAAqB,IAAI,cAAc,CAItD"}
package/dist/pool.js CHANGED
@@ -21,7 +21,7 @@ export * from "./recipe.js";
21
21
  export * from "./fullscreenQuad.js";
22
22
  export { consumePremulDebugWarnings, isPremulDebugEnabled, setPremulDebugEnabled, resetPremulDebugCache } from "./debug/premulValidator.js";
23
23
  export { ceilToBucket, makeScratchPool, makeUniformRing, createGPUContextFromDevice } from "./context.js";
24
- export { ALL_SHADERS, ALL_RECIPES, ALL_CATALOG, passthroughV1, colorGradeV1, colorInvertV1, colorBrightnessContrastV1, colorHsbV1, colorExposureV1, colorPosterizeV1, colorCubeLutV1, colorChannelSplitV1, colorChannelShuffleV1, colorChannelMergeV1, colorGrayscaleV1, colorSolarizeV1, colorColorBalanceV1, colorExposureToneV1, colorLiftGammaGainV1, colorCdlV1, colorCurvesV1, colorHslAdjustV1, colorSplitToningV1, colorFilmLookV1, colorLevelsV1, blurGaussianV1, sharpenUnsharpMaskV1, vignetteV1, filtersGrainV1, filtersPixelateV1, filtersVisualFxV1, filtersThresholdV1, filtersConvolve3x3V1, filtersGlowV1, filtersBlurSeparableV1, chromaKeyV1, keyerLumaKeyV1, maskApplyV1, maskFromImageV1, maskInvertV1, sourcesSolidV1, sourcesLinearGradientV1, sourcesCheckerboardV1, sourcesRadialGradientV1, sourcesAngularGradientV1, sourcesDiamondGradientV1, sourcesGaussianNoiseV1, mixerAddV1, mixerColorOverlayV1, mixerOutlineV1, mixerShadowComposeV1, mixerDropShadowV1, mixerOverV1, transformMirrorV1, transformOffsetV1, transformCropV1, transformPadV1, transformTileV1, transformResizeV1, transformRotate90V1, transformAffineV1, transformCornerPinV1, transformPolarRemapV1, transformDisplaceV1, transformSpherizeV1, alphaStraightToPremulV1, alphaPremulToStraightV1 } from "./shaders/index.js";
24
+ export { ALL_SHADERS, ALL_RECIPES, ALL_CATALOG, passthroughV1, colorGradeV1, colorInvertV1, colorBrightnessContrastV1, colorHsbV1, colorExposureV1, colorPosterizeV1, colorCubeLutV1, colorChannelSplitV1, colorChannelShuffleV1, colorChannelMergeV1, colorGrayscaleV1, colorSolarizeV1, colorColorBalanceV1, colorExposureToneV1, colorLiftGammaGainV1, colorCdlV1, colorCurvesV1, colorHslAdjustV1, colorSplitToningV1, colorFilmLookV1, colorLevelsV1, blurGaussianV1, sharpenUnsharpMaskV1, vignetteV1, filtersGrainV1, filtersGrainV2, filtersPixelateV1, filtersVisualFxV1, filtersThresholdV1, filtersConvolve3x3V1, filtersGlowV1, filtersBlurSeparableV1, chromaKeyV1, keyerLumaKeyV1, maskApplyV1, maskFromImageV1, maskInvertV1, sourcesSolidV1, sourcesLinearGradientV1, sourcesCheckerboardV1, sourcesRadialGradientV1, sourcesAngularGradientV1, sourcesDiamondGradientV1, sourcesGaussianNoiseV1, mixerAddV1, mixerColorOverlayV1, mixerOutlineV1, mixerShadowComposeV1, mixerDropShadowV1, mixerOverV1, transformMirrorV1, transformOffsetV1, transformCropV1, transformPadV1, transformTileV1, transformResizeV1, transformRotate90V1, transformAffineV1, transformCornerPinV1, transformPolarRemapV1, transformDisplaceV1, transformSpherizeV1, alphaStraightToPremulV1, alphaPremulToStraightV1 } from "./shaders/index.js";
25
25
  import { ShaderRegistry } from "./registry.js";
26
26
  import { ALL_CATALOG } from "./shaders/index.js";
27
27
  /** A {@link ShaderRegistry} preloaded with every catalog module (shaders + recipes). */
package/dist/pool.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pool.js","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,4BAA4B,CAAC;AAOpC,OAAO,EACL,YAAY,EACZ,eAAe,EACf,eAAe,EACf,0BAA0B,EAC3B,MAAM,cAAc,CAAC;AAUtB,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,aAAa,EACb,YAAY,EACZ,aAAa,EACb,yBAAyB,EACzB,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,sBAAsB,EACtB,WAAW,EACX,cAAc,EACd,WAAW,EACX,eAAe,EACf,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,wFAAwF;AACxF,MAAM,UAAU,qBAAqB;IACnC,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;IACtC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAClC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"pool.js","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,4BAA4B,CAAC;AAOpC,OAAO,EACL,YAAY,EACZ,eAAe,EACf,eAAe,EACf,0BAA0B,EAC3B,MAAM,cAAc,CAAC;AAUtB,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,aAAa,EACb,YAAY,EACZ,aAAa,EACb,yBAAyB,EACzB,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,sBAAsB,EACtB,WAAW,EACX,cAAc,EACd,WAAW,EACX,eAAe,EACf,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,wFAAwF;AACxF,MAAM,UAAU,qBAAqB;IACnC,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;IACtC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAClC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/shaders/color/grade/v1/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAGlC,eAAO,MAAM,gBAAgB;;;;;;;;;EAS3B,CAAC;AAQH,eAAO,MAAM,YAAY;;;;;;;;;GAqJvB,CAAC"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/shaders/color/grade/v1/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAIlC,eAAO,MAAM,gBAAgB;;;;;;;;;EAS3B,CAAC;AAQH,eAAO,MAAM,YAAY;;;;;;;;;GA8GvB,CAAC"}
@@ -14,6 +14,7 @@
14
14
  import tgpu from "typegpu";
15
15
  import * as d from "typegpu/data";
16
16
  import { defineModule } from "../../../../module.js";
17
+ import { WGSL_HSV } from "../../../../shared/hsvWgsl.js";
17
18
  export const ColorGradeParams = d.struct({
18
19
  brightness: d.f32,
19
20
  contrast: d.f32,
@@ -62,46 +63,7 @@ export const colorGradeV1 = defineModule({
62
63
  layout,
63
64
  workgroupSize: [16, 16, 1],
64
65
  wgsl: /* wgsl */ `
65
- fn rgb2hsv(rgb: vec3<f32>) -> vec3<f32> {
66
- let maxC = max(max(rgb.r, rgb.g), rgb.b);
67
- let minC = min(min(rgb.r, rgb.g), rgb.b);
68
- let delta = maxC - minC;
69
- var h: f32 = 0.0;
70
- var s: f32 = 0.0;
71
- let v: f32 = maxC;
72
- if (delta > 0.00001) {
73
- s = delta / maxC;
74
- if (maxC == rgb.r) {
75
- h = (rgb.g - rgb.b) / delta;
76
- if (rgb.g < rgb.b) { h = h + 6.0; }
77
- } else if (maxC == rgb.g) {
78
- h = 2.0 + (rgb.b - rgb.r) / delta;
79
- } else {
80
- h = 4.0 + (rgb.r - rgb.g) / delta;
81
- }
82
- h = h / 6.0;
83
- }
84
- return vec3<f32>(h, s, v);
85
- }
86
-
87
- fn hsv2rgb(hsv: vec3<f32>) -> vec3<f32> {
88
- let h = hsv.x * 6.0;
89
- let s = hsv.y;
90
- let v = hsv.z;
91
- let i = floor(h);
92
- let f = h - i;
93
- let p = v * (1.0 - s);
94
- let q = v * (1.0 - s * f);
95
- let t = v * (1.0 - s * (1.0 - f));
96
- let idx = i32(i) % 6;
97
- if (idx == 0) { return vec3<f32>(v, t, p); }
98
- if (idx == 1) { return vec3<f32>(q, v, p); }
99
- if (idx == 2) { return vec3<f32>(p, v, t); }
100
- if (idx == 3) { return vec3<f32>(p, q, v); }
101
- if (idx == 4) { return vec3<f32>(t, p, v); }
102
- return vec3<f32>(v, p, q);
103
- }
104
-
66
+ ${WGSL_HSV}
105
67
  fn smoothstepCustom(e0: f32, e1: f32, x: f32) -> f32 {
106
68
  let t = clamp((x - e0) / (e1 - e0), 0.0, 1.0);
107
69
  return t * t * (3.0 - 2.0 * t);
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../src/shaders/color/grade/v1/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,UAAU,EAAE,CAAC,CAAC,GAAG;IACjB,QAAQ,EAAE,CAAC,CAAC,GAAG;IACf,UAAU,EAAE,CAAC,CAAC,GAAG;IACjB,GAAG,EAAE,CAAC,CAAC,GAAG;IACV,WAAW,EAAE,CAAC,CAAC,GAAG;IAClB,IAAI,EAAE,CAAC,CAAC,GAAG;IACX,OAAO,EAAE,CAAC,CAAC,GAAG;IACd,UAAU,EAAE,CAAC,CAAC,GAAG;CAClB,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;IAClC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;IAC5B,aAAa,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE;IAC/C,MAAM,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;CACtC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,YAAY,CAAC;IACvC,EAAE,EAAE,aAAa;IACjB,OAAO,EAAE,CAAC;IACV,uEAAuE;IACvE,8DAA8D;IAC9D,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,OAAO;IACjB,SAAS,EAAE,kBAAkB;IAC7B,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,gBAAgB;IACxB,aAAa,EAAE;QACb,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,CAAC;QACb,GAAG,EAAE,CAAC;QACN,WAAW,EAAE,CAAC;QACd,IAAI,EAAE,CAAC;QACP,OAAO,EAAE,CAAC;QACV,UAAU,EAAE,CAAC;KACd;IACD,OAAO,EAAE;QACP,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE;QAChE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE;QAC3D,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE;QAC/D,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE;QACrE,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE;QAClE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;QACpD,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;QAC1D,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE;KACjE;IACD,MAAM;IACN,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1B,IAAI,EAAE,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoGlB;IACC,EAAE,EAAE;QACF,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,UAAU,EAAE,MAAM;gBAClB,KAAK,EAAE,eAAe;gBACtB,YAAY,EAAE,CAAC,YAAY,CAAC;aAC7B;SACF;QACD,MAAM,EAAE;YACN,UAAU,EAAE,MAAM;YAClB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,YAAY;YACpB,UAAU,EAAE,gBAAgB;SAC7B;QACD,GAAG,EAAE,gBAAgB;KACtB;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../src/shaders/color/grade/v1/module.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/shaders/color/hsb/v1/module.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAGlC,eAAO,MAAM,SAAS;;;;EAIpB,CAAC;AAgBH,eAAO,MAAM,UAAU;;;;GAqGrB,CAAC"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/shaders/color/hsb/v1/module.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAIlC,eAAO,MAAM,SAAS;;;;EAIpB,CAAC;AAgBH,eAAO,MAAM,UAAU;;;;GA8DrB,CAAC"}
@@ -9,6 +9,7 @@
9
9
  import tgpu from "typegpu";
10
10
  import * as d from "typegpu/data";
11
11
  import { defineModule } from "../../../../module.js";
12
+ import { WGSL_HSV } from "../../../../shared/hsvWgsl.js";
12
13
  export const HsbParams = d.struct({
13
14
  hue: d.f32,
14
15
  saturation: d.f32,
@@ -45,46 +46,7 @@ export const colorHsbV1 = defineModule({
45
46
  layout,
46
47
  samplers: { samp: samplerDescriptor },
47
48
  wgsl: /* wgsl */ `
48
- fn rgb2hsv(rgb: vec3f) -> vec3f {
49
- let maxC = max(max(rgb.r, rgb.g), rgb.b);
50
- let minC = min(min(rgb.r, rgb.g), rgb.b);
51
- let delta = maxC - minC;
52
- var h: f32 = 0.0;
53
- var s: f32 = 0.0;
54
- let v: f32 = maxC;
55
- if (delta > 0.00001) {
56
- s = delta / maxC;
57
- if (maxC == rgb.r) {
58
- h = (rgb.g - rgb.b) / delta;
59
- if (rgb.g < rgb.b) { h = h + 6.0; }
60
- } else if (maxC == rgb.g) {
61
- h = 2.0 + (rgb.b - rgb.r) / delta;
62
- } else {
63
- h = 4.0 + (rgb.r - rgb.g) / delta;
64
- }
65
- h = h / 6.0;
66
- }
67
- return vec3f(h, s, v);
68
- }
69
-
70
- fn hsv2rgb(hsv: vec3f) -> vec3f {
71
- let h = hsv.x * 6.0;
72
- let s = hsv.y;
73
- let v = hsv.z;
74
- let i = floor(h);
75
- let f = h - i;
76
- let p = v * (1.0 - s);
77
- let q = v * (1.0 - s * f);
78
- let t = v * (1.0 - s * (1.0 - f));
79
- let idx = i32(i) % 6;
80
- if (idx == 0) { return vec3f(v, t, p); }
81
- if (idx == 1) { return vec3f(q, v, p); }
82
- if (idx == 2) { return vec3f(p, v, t); }
83
- if (idx == 3) { return vec3f(p, q, v); }
84
- if (idx == 4) { return vec3f(t, p, v); }
85
- return vec3f(v, p, q);
86
- }
87
-
49
+ ${WGSL_HSV}
88
50
  @fragment
89
51
  fn fs_main(@location(0) uv: vec2f) -> @location(0) vec4f {
90
52
  let src = textureSample(layout.$.source, layout.$.samp, uv);
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../src/shaders/color/hsb/v1/module.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,GAAG,EAAE,CAAC,CAAC,GAAG;IACV,UAAU,EAAE,CAAC,CAAC,GAAG;IACjB,UAAU,EAAE,CAAC,CAAC,GAAG;CAClB,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;IAClC,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;IAC9B,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;IAC5B,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;IAC1B,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;CAC/B,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAyB;IAC9C,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,QAAQ;IACnB,YAAY,EAAE,eAAe;IAC7B,YAAY,EAAE,eAAe;CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CAAC;IACrC,EAAE,EAAE,WAAW;IACf,OAAO,EAAE,CAAC;IACV,0EAA0E;IAC1E,0CAA0C;IAC1C,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,OAAO;IACjB,SAAS,EAAE,kBAAkB;IAC7B,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,SAAS;IACjB,aAAa,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;IACvD,OAAO,EAAE;QACP,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE;QACrE,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE;QAC/D,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE;KAChE;IACD,MAAM;IACN,QAAQ,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;IACrC,IAAI,EAAE,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DlB;IACC,EAAE,EAAE;QACF,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,UAAU,EAAE,QAAQ;gBACpB,KAAK,EAAE,eAAe;gBACtB,YAAY,EAAE,CAAC,YAAY,CAAC;aAC7B;YACD,IAAI,EAAE;gBACJ,UAAU,EAAE,QAAQ;gBACpB,KAAK,EAAE,eAAe;gBACtB,YAAY,EAAE,CAAC,YAAY,CAAC;gBAC5B,QAAQ,EAAE,IAAI;aACf;SACF;QACD,MAAM,EAAE;YACN,UAAU,EAAE,QAAQ;YACpB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,YAAY;YACpB,UAAU,EAAE,gBAAgB;SAC7B;QACD,GAAG,EAAE,gBAAgB;KACtB;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../src/shaders/color/hsb/v1/module.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAEzD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,GAAG,EAAE,CAAC,CAAC,GAAG;IACV,UAAU,EAAE,CAAC,CAAC,GAAG;IACjB,UAAU,EAAE,CAAC,CAAC,GAAG;CAClB,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;IAClC,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;IAC9B,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;IAC5B,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;IAC1B,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;CAC/B,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAyB;IAC9C,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,QAAQ;IACnB,YAAY,EAAE,eAAe;IAC7B,YAAY,EAAE,eAAe;CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CAAC;IACrC,EAAE,EAAE,WAAW;IACf,OAAO,EAAE,CAAC;IACV,0EAA0E;IAC1E,0CAA0C;IAC1C,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,OAAO;IACjB,SAAS,EAAE,kBAAkB;IAC7B,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,SAAS;IACjB,aAAa,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;IACvD,OAAO,EAAE;QACP,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE;QACrE,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE;QAC/D,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE;KAChE;IACD,MAAM;IACN,QAAQ,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;IACrC,IAAI,EAAE,UAAU,CAAC;EACjB,QAAQ;;;;;;;;;;;;;;;;;;;;CAoBT;IACC,EAAE,EAAE;QACF,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,UAAU,EAAE,QAAQ;gBACpB,KAAK,EAAE,eAAe;gBACtB,YAAY,EAAE,CAAC,YAAY,CAAC;aAC7B;YACD,IAAI,EAAE;gBACJ,UAAU,EAAE,QAAQ;gBACpB,KAAK,EAAE,eAAe;gBACtB,YAAY,EAAE,CAAC,YAAY,CAAC;gBAC5B,QAAQ,EAAE,IAAI;aACf;SACF;QACD,MAAM,EAAE;YACN,UAAU,EAAE,QAAQ;YACpB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,YAAY;YACpB,UAAU,EAAE,gBAAgB;SAC7B;QACD,GAAG,EAAE,gBAAgB;KACtB;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/shaders/color/hslAdjust/v1/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAGlC,eAAO,MAAM,eAAe;;;;;;;EAO1B,CAAC;AAgBH,eAAO,MAAM,gBAAgB;;;;;;;GAqI3B,CAAC"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/shaders/color/hslAdjust/v1/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAIlC,eAAO,MAAM,eAAe;;;;;;;EAO1B,CAAC;AAgBH,eAAO,MAAM,gBAAgB;;;;;;;GA8F3B,CAAC"}
@@ -13,6 +13,7 @@
13
13
  import tgpu from "typegpu";
14
14
  import * as d from "typegpu/data";
15
15
  import { defineModule } from "../../../../module.js";
16
+ import { WGSL_HSV } from "../../../../shared/hsvWgsl.js";
16
17
  export const HslAdjustParams = d.struct({
17
18
  hueShift: d.f32,
18
19
  satAdj: d.f32,
@@ -60,46 +61,7 @@ export const colorHslAdjustV1 = defineModule({
60
61
  layout,
61
62
  samplers: { samp: samplerDescriptor },
62
63
  wgsl: /* wgsl */ `
63
- fn rgb2hsv(rgb: vec3f) -> vec3f {
64
- let maxC = max(max(rgb.r, rgb.g), rgb.b);
65
- let minC = min(min(rgb.r, rgb.g), rgb.b);
66
- let delta = maxC - minC;
67
- var h: f32 = 0.0;
68
- var s: f32 = 0.0;
69
- let v: f32 = maxC;
70
- if (delta > 0.00001) {
71
- s = delta / maxC;
72
- if (maxC == rgb.r) {
73
- h = (rgb.g - rgb.b) / delta;
74
- if (rgb.g < rgb.b) { h = h + 6.0; }
75
- } else if (maxC == rgb.g) {
76
- h = 2.0 + (rgb.b - rgb.r) / delta;
77
- } else {
78
- h = 4.0 + (rgb.r - rgb.g) / delta;
79
- }
80
- h = h / 6.0;
81
- }
82
- return vec3f(h, s, v);
83
- }
84
-
85
- fn hsv2rgb(hsv: vec3f) -> vec3f {
86
- let h = hsv.x * 6.0;
87
- let s = hsv.y;
88
- let v = hsv.z;
89
- let i = floor(h);
90
- let f = h - i;
91
- let p = v * (1.0 - s);
92
- let q = v * (1.0 - s * f);
93
- let t = v * (1.0 - s * (1.0 - f));
94
- let idx = i32(i) % 6;
95
- if (idx == 0) { return vec3f(v, t, p); }
96
- if (idx == 1) { return vec3f(q, v, p); }
97
- if (idx == 2) { return vec3f(p, v, t); }
98
- if (idx == 3) { return vec3f(p, q, v); }
99
- if (idx == 4) { return vec3f(t, p, v); }
100
- return vec3f(v, p, q);
101
- }
102
-
64
+ ${WGSL_HSV}
103
65
  @fragment
104
66
  fn fs_main(@location(0) uv: vec2f) -> @location(0) vec4f {
105
67
  let src = textureSample(layout.$.source, layout.$.samp, uv);
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../src/shaders/color/hslAdjust/v1/module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../src/shaders/color/hslAdjust/v1/module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import * as d from "typegpu/data";
2
+ export declare const GrainParams: d.WgslStruct<{
3
+ amount: d.F32;
4
+ size: d.F32;
5
+ colorAmount: d.F32;
6
+ seed: d.F32;
7
+ roughness: d.F32;
8
+ softness: d.F32;
9
+ }>;
10
+ export declare const filtersGrainV2: import("../../../../module.js").ShaderModule<d.WgslStruct<{
11
+ amount: d.F32;
12
+ size: d.F32;
13
+ colorAmount: d.F32;
14
+ seed: d.F32;
15
+ roughness: d.F32;
16
+ softness: d.F32;
17
+ }>>;
18
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/shaders/filters/grain/v2/module.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAGlC,eAAO,MAAM,WAAW;;;;;;;EAOtB,CAAC;AAQH,eAAO,MAAM,cAAc;;;;;;;GA0HzB,CAAC"}
@@ -0,0 +1,141 @@
1
+ /** Film grain with jittered Gaussian convolution and Soft Light exposure. */
2
+ import tgpu from "typegpu";
3
+ import * as d from "typegpu/data";
4
+ import { defineModule } from "../../../../module.js";
5
+ export const GrainParams = d.struct({
6
+ amount: d.f32,
7
+ size: d.f32,
8
+ colorAmount: d.f32,
9
+ seed: d.f32,
10
+ roughness: d.f32,
11
+ softness: d.f32
12
+ });
13
+ const layout = tgpu.bindGroupLayout({
14
+ source: { texture: "float" },
15
+ outputTexture: { storageTexture: "rgba8unorm" },
16
+ params: { uniform: GrainParams }
17
+ });
18
+ export const filtersGrainV2 = defineModule({
19
+ id: "filters.grain",
20
+ version: 2,
21
+ surface: "internal",
22
+ category: "filters",
23
+ linearity: "nonlinear-in-rgb",
24
+ kind: "compute",
25
+ params: GrainParams,
26
+ paramDefaults: { amount: 0, size: 1, colorAmount: 0, seed: 0, roughness: 0.5, softness: 0.25 },
27
+ paramUi: {
28
+ amount: { min: 0, max: 1, step: 0.01, label: "Amount" },
29
+ size: { min: 1, max: 16, step: 0.5, label: "Size" },
30
+ colorAmount: { min: 0, max: 1, step: 0.01, label: "Colour" },
31
+ seed: { label: "Seed" },
32
+ roughness: { min: 0, max: 1, step: 0.01, label: "Roughness" },
33
+ softness: { min: 0, max: 1, step: 0.01, label: "Softness" }
34
+ },
35
+ layout,
36
+ workgroupSize: [16, 16, 1],
37
+ wgsl: /* wgsl */ `
38
+ // Integer hashing avoids device-dependent float rounding in the noise source.
39
+ fn hash31(cell: vec2i, seed: u32) -> f32 {
40
+ var h = (u32(cell.x) * 1597334677u) ^ (u32(cell.y) * 3812015801u) ^ (seed * 2798796415u);
41
+ h = (h ^ (h >> 16u)) * 2246822519u;
42
+ h = (h ^ (h >> 13u)) * 3266489917u;
43
+ h = h ^ (h >> 16u);
44
+ return f32(h >> 8u) / 16777216.0;
45
+ }
46
+
47
+ // Three independent uniforms approximate a Gaussian with unit variance.
48
+ fn gaussAt(cell: vec2i, seed: u32) -> f32 {
49
+ let a = hash31(cell, seed);
50
+ let b = hash31(cell, seed + 1013u);
51
+ let c = hash31(cell, seed + 3037u);
52
+ return (a + b + c - 1.5) * 2.0;
53
+ }
54
+
55
+ fn softenedNoise(p: vec2f, seed: u32, softness: f32) -> f32 {
56
+ let center = vec2i(floor(p + vec2f(0.5)));
57
+ let sigma = 0.7 + softness * 0.3;
58
+ let falloff = 0.5 / (sigma * sigma);
59
+ let boundary = exp(-4.0 * falloff);
60
+ var sum = 0.0;
61
+ var energy = 0.0;
62
+ for (var y = -2; y <= 2; y++) {
63
+ for (var x = -2; x <= 2; x++) {
64
+ let cell = center + vec2i(x, y);
65
+ let jitter = vec2f(hash31(cell, seed + 4001u), hash31(cell, seed + 8089u)) - vec2f(0.5);
66
+ let delta = p - (vec2f(cell) + jitter);
67
+ // Overlapping Gaussian lobes with independently jittered centers avoid
68
+ // visible lattice cells. Subtract the radius-2 boundary so taps enter
69
+ // and leave this 5x5 window continuously, including at full softness.
70
+ let weight = max(0.0, exp(-(delta.x * delta.x + delta.y * delta.y) * falloff) - boundary);
71
+ sum = sum + gaussAt(cell, seed) * weight;
72
+ energy = energy + weight * weight;
73
+ }
74
+ }
75
+ return sum / sqrt(energy);
76
+ }
77
+
78
+ fn grainAt(p: vec2f, seed: u32, roughness: f32, softness: f32) -> f32 {
79
+ // Distinct rotations keep both octaves away from the image axes and from
80
+ // each other's lattice. The fine octave is twice the spatial frequency.
81
+ let coarseP = vec2f(p.x * 0.8 - p.y * 0.6, p.x * 0.6 + p.y * 0.8);
82
+ let fineP = vec2f(p.x * 0.9238795 + p.y * 0.3826834, -p.x * 0.3826834 + p.y * 0.9238795) * 2.0;
83
+ let coarse = softenedNoise(coarseP, seed, softness);
84
+ let fine = softenedNoise(fineP + vec2f(17.0, 29.0), seed + 7919u, softness);
85
+ return (coarse + roughness * fine) / sqrt(1.0 + roughness * roughness);
86
+ }
87
+
88
+ fn softLight(base: f32, blend: f32) -> f32 {
89
+ if (blend <= 0.5) {
90
+ return base - (1.0 - 2.0 * blend) * base * (1.0 - base);
91
+ }
92
+ var d = sqrt(base);
93
+ if (base <= 0.25) {
94
+ d = ((16.0 * base - 12.0) * base + 4.0) * base;
95
+ }
96
+ return base + (2.0 * blend - 1.0) * (d - base);
97
+ }
98
+
99
+ @compute @workgroup_size(16, 16, 1)
100
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
101
+ let dims = textureDimensions(layout.$.source);
102
+ if (gid.x >= dims.x || gid.y >= dims.y) { return; }
103
+ let coords = vec2i(gid.xy);
104
+ let v = layout.$.params;
105
+ let color = textureLoad(layout.$.source, coords, 0);
106
+ if (color.a <= 0.0 || v.amount <= 0.0) {
107
+ textureStore(layout.$.outputTexture, coords, color);
108
+ return;
109
+ }
110
+ let folded = v.seed - 8192.0 * floor(v.seed / 8192.0);
111
+ let seed = u32(folded);
112
+ // Compensate for the wider overlapping kernel to retain fine size-1 grain.
113
+ let p = (vec2f(gid.xy) / max(v.size, 1.0)) * 1.75;
114
+ let roughness = clamp(v.roughness, 0.0, 1.0);
115
+ let softness = clamp(v.softness, 0.0, 1.0);
116
+ let mono = grainAt(p, seed, roughness, softness);
117
+ var n = vec3f(mono);
118
+ if (v.colorAmount > 0.0) {
119
+ let perChannel = vec3f(
120
+ grainAt(p, seed + 131u, roughness, softness),
121
+ grainAt(p, seed + 262u, roughness, softness),
122
+ grainAt(p, seed + 393u, roughness, softness)
123
+ );
124
+ n = n + (perChannel - n) * clamp(v.colorAmount, 0.0, 1.0);
125
+ }
126
+ let straight = color.rgb / color.a;
127
+ let luma = dot(straight, vec3f(0.2126, 0.7152, 0.0722));
128
+ let response = smoothstep(0.02, 0.28, luma) * (1.0 - smoothstep(0.72, 1.0, luma));
129
+ let sigma = clamp(v.amount, 0.0, 1.0) * 0.2 * response;
130
+ let blend = clamp(vec3f(0.5) + n * sigma, vec3f(0.0), vec3f(1.0));
131
+ let grained = vec3f(softLight(straight.r, blend.r), softLight(straight.g, blend.g), softLight(straight.b, blend.b));
132
+ textureStore(layout.$.outputTexture, coords, vec4f(clamp(grained, vec3f(0.0), vec3f(1.0)) * color.a, color.a));
133
+ }
134
+ `,
135
+ io: {
136
+ inputs: { source: { colorSpace: "srgb", alpha: "premultiplied", bindingKinds: ["texture_2d"] } },
137
+ output: { colorSpace: "srgb", alpha: "premultiplied", format: "rgba8unorm", dimensions: "same-as:source" },
138
+ rod: "same-as:source"
139
+ }
140
+ });
141
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../src/shaders/filters/grain/v2/module.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC,GAAG;IACb,IAAI,EAAE,CAAC,CAAC,GAAG;IACX,WAAW,EAAE,CAAC,CAAC,GAAG;IAClB,IAAI,EAAE,CAAC,CAAC,GAAG;IACX,SAAS,EAAE,CAAC,CAAC,GAAG;IAChB,QAAQ,EAAE,CAAC,CAAC,GAAG;CAChB,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;IAClC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;IAC5B,aAAa,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE;IAC/C,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC;IACzC,EAAE,EAAE,eAAe;IACnB,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,kBAAkB;IAC7B,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,WAAW;IACnB,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC9F,OAAO,EAAE;QACP,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;QACvD,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE;QACnD,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;QAC5D,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;QACvB,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE;QAC7D,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE;KAC5D;IACD,MAAM;IACN,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1B,IAAI,EAAE,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiGlB;IACC,EAAE,EAAE;QACF,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE;QAChG,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE;QAC1G,GAAG,EAAE,gBAAgB;KACtB;CACF,CAAC,CAAC"}
@@ -35,6 +35,7 @@ import { blurGaussianV1 } from "./filters/blur/gaussian/v1/module.js";
35
35
  import { sharpenUnsharpMaskV1 } from "./filters/sharpen/unsharpMask/v1/module.js";
36
36
  import { vignetteV1 } from "./filters/vignette/v1/module.js";
37
37
  import { filtersGrainV1 } from "./filters/grain/v1/module.js";
38
+ import { filtersGrainV2 } from "./filters/grain/v2/module.js";
38
39
  import { filtersPixelateV1 } from "./filters/pixelate/v1/module.js";
39
40
  import { filtersVisualFxV1 } from "./filters/visualFx/v1/module.js";
40
41
  import { filtersThresholdV1 } from "./filters/threshold/v1/module.js";
@@ -73,7 +74,7 @@ import { transformDisplaceV1 } from "./transform/displace/v1/module.js";
73
74
  import { transformSpherizeV1 } from "./transform/spherize/v1/module.js";
74
75
  import { alphaStraightToPremulV1 } from "./alpha/straightToPremul/v1/module.js";
75
76
  import { alphaPremulToStraightV1 } from "./alpha/premulToStraight/v1/module.js";
76
- export { passthroughV1, colorGradeV1, colorInvertV1, colorBrightnessContrastV1, colorHsbV1, colorExposureV1, colorPosterizeV1, colorCubeLutV1, colorChannelSplitV1, colorChannelShuffleV1, colorChannelMergeV1, colorGrayscaleV1, colorSolarizeV1, colorColorBalanceV1, colorExposureToneV1, colorLiftGammaGainV1, colorCdlV1, colorCurvesV1, colorHslAdjustV1, colorSplitToningV1, colorFilmLookV1, colorLevelsV1, blurGaussianV1, sharpenUnsharpMaskV1, vignetteV1, filtersGrainV1, filtersPixelateV1, filtersVisualFxV1, filtersThresholdV1, filtersConvolve3x3V1, filtersGlowV1, filtersBlurSeparableV1, chromaKeyV1, keyerLumaKeyV1, maskApplyV1, maskFromImageV1, maskInvertV1, sourcesSolidV1, sourcesLinearGradientV1, sourcesCheckerboardV1, sourcesRadialGradientV1, sourcesAngularGradientV1, sourcesDiamondGradientV1, sourcesGaussianNoiseV1, mixerAddV1, mixerColorOverlayV1, mixerOutlineV1, mixerShadowComposeV1, mixerDropShadowV1, mixerOverV1, transformMirrorV1, transformOffsetV1, transformCropV1, transformPadV1, transformTileV1, transformResizeV1, transformRotate90V1, transformAffineV1, transformCornerPinV1, transformPolarRemapV1, transformDisplaceV1, transformSpherizeV1, alphaStraightToPremulV1, alphaPremulToStraightV1 };
77
+ export { passthroughV1, colorGradeV1, colorInvertV1, colorBrightnessContrastV1, colorHsbV1, colorExposureV1, colorPosterizeV1, colorCubeLutV1, colorChannelSplitV1, colorChannelShuffleV1, colorChannelMergeV1, colorGrayscaleV1, colorSolarizeV1, colorColorBalanceV1, colorExposureToneV1, colorLiftGammaGainV1, colorCdlV1, colorCurvesV1, colorHslAdjustV1, colorSplitToningV1, colorFilmLookV1, colorLevelsV1, blurGaussianV1, sharpenUnsharpMaskV1, vignetteV1, filtersGrainV1, filtersGrainV2, filtersPixelateV1, filtersVisualFxV1, filtersThresholdV1, filtersConvolve3x3V1, filtersGlowV1, filtersBlurSeparableV1, chromaKeyV1, keyerLumaKeyV1, maskApplyV1, maskFromImageV1, maskInvertV1, sourcesSolidV1, sourcesLinearGradientV1, sourcesCheckerboardV1, sourcesRadialGradientV1, sourcesAngularGradientV1, sourcesDiamondGradientV1, sourcesGaussianNoiseV1, mixerAddV1, mixerColorOverlayV1, mixerOutlineV1, mixerShadowComposeV1, mixerDropShadowV1, mixerOverV1, transformMirrorV1, transformOffsetV1, transformCropV1, transformPadV1, transformTileV1, transformResizeV1, transformRotate90V1, transformAffineV1, transformCornerPinV1, transformPolarRemapV1, transformDisplaceV1, transformSpherizeV1, alphaStraightToPremulV1, alphaPremulToStraightV1 };
77
78
  /**
78
79
  * Every shader-style module (fragment + compute) registered by default.
79
80
  * Recipes live in {@link ALL_RECIPES}.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shaders/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAEhF,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,yBAAyB,EACzB,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,sBAAsB,EACtB,WAAW,EACX,cAAc,EACd,WAAW,EACX,eAAe,EACf,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,YAAY,EAsE9C,CAAC;AAEF,iDAAiD;AACjD,eAAO,MAAM,WAAW,EAAE,SAAS,YAAY,EAI9C,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC,EAG/D,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shaders/index.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,7 @@ import { blurGaussianV1 } from "./filters/blur/gaussian/v1/module.js";
33
33
  import { sharpenUnsharpMaskV1 } from "./filters/sharpen/unsharpMask/v1/module.js";
34
34
  import { vignetteV1 } from "./filters/vignette/v1/module.js";
35
35
  import { filtersGrainV1 } from "./filters/grain/v1/module.js";
36
+ import { filtersGrainV2 } from "./filters/grain/v2/module.js";
36
37
  import { filtersPixelateV1 } from "./filters/pixelate/v1/module.js";
37
38
  import { filtersVisualFxV1 } from "./filters/visualFx/v1/module.js";
38
39
  import { filtersThresholdV1 } from "./filters/threshold/v1/module.js";
@@ -71,7 +72,7 @@ import { transformDisplaceV1 } from "./transform/displace/v1/module.js";
71
72
  import { transformSpherizeV1 } from "./transform/spherize/v1/module.js";
72
73
  import { alphaStraightToPremulV1 } from "./alpha/straightToPremul/v1/module.js";
73
74
  import { alphaPremulToStraightV1 } from "./alpha/premulToStraight/v1/module.js";
74
- export { passthroughV1, colorGradeV1, colorInvertV1, colorBrightnessContrastV1, colorHsbV1, colorExposureV1, colorPosterizeV1, colorCubeLutV1, colorChannelSplitV1, colorChannelShuffleV1, colorChannelMergeV1, colorGrayscaleV1, colorSolarizeV1, colorColorBalanceV1, colorExposureToneV1, colorLiftGammaGainV1, colorCdlV1, colorCurvesV1, colorHslAdjustV1, colorSplitToningV1, colorFilmLookV1, colorLevelsV1, blurGaussianV1, sharpenUnsharpMaskV1, vignetteV1, filtersGrainV1, filtersPixelateV1, filtersVisualFxV1, filtersThresholdV1, filtersConvolve3x3V1, filtersGlowV1, filtersBlurSeparableV1, chromaKeyV1, keyerLumaKeyV1, maskApplyV1, maskFromImageV1, maskInvertV1, sourcesSolidV1, sourcesLinearGradientV1, sourcesCheckerboardV1, sourcesRadialGradientV1, sourcesAngularGradientV1, sourcesDiamondGradientV1, sourcesGaussianNoiseV1, mixerAddV1, mixerColorOverlayV1, mixerOutlineV1, mixerShadowComposeV1, mixerDropShadowV1, mixerOverV1, transformMirrorV1, transformOffsetV1, transformCropV1, transformPadV1, transformTileV1, transformResizeV1, transformRotate90V1, transformAffineV1, transformCornerPinV1, transformPolarRemapV1, transformDisplaceV1, transformSpherizeV1, alphaStraightToPremulV1, alphaPremulToStraightV1 };
75
+ export { passthroughV1, colorGradeV1, colorInvertV1, colorBrightnessContrastV1, colorHsbV1, colorExposureV1, colorPosterizeV1, colorCubeLutV1, colorChannelSplitV1, colorChannelShuffleV1, colorChannelMergeV1, colorGrayscaleV1, colorSolarizeV1, colorColorBalanceV1, colorExposureToneV1, colorLiftGammaGainV1, colorCdlV1, colorCurvesV1, colorHslAdjustV1, colorSplitToningV1, colorFilmLookV1, colorLevelsV1, blurGaussianV1, sharpenUnsharpMaskV1, vignetteV1, filtersGrainV1, filtersGrainV2, filtersPixelateV1, filtersVisualFxV1, filtersThresholdV1, filtersConvolve3x3V1, filtersGlowV1, filtersBlurSeparableV1, chromaKeyV1, keyerLumaKeyV1, maskApplyV1, maskFromImageV1, maskInvertV1, sourcesSolidV1, sourcesLinearGradientV1, sourcesCheckerboardV1, sourcesRadialGradientV1, sourcesAngularGradientV1, sourcesDiamondGradientV1, sourcesGaussianNoiseV1, mixerAddV1, mixerColorOverlayV1, mixerOutlineV1, mixerShadowComposeV1, mixerDropShadowV1, mixerOverV1, transformMirrorV1, transformOffsetV1, transformCropV1, transformPadV1, transformTileV1, transformResizeV1, transformRotate90V1, transformAffineV1, transformCornerPinV1, transformPolarRemapV1, transformDisplaceV1, transformSpherizeV1, alphaStraightToPremulV1, alphaPremulToStraightV1 };
75
76
  /**
76
77
  * Every shader-style module (fragment + compute) registered by default.
77
78
  * Recipes live in {@link ALL_RECIPES}.
@@ -105,6 +106,7 @@ export const ALL_SHADERS = [
105
106
  sharpenUnsharpMaskV1,
106
107
  vignetteV1,
107
108
  filtersGrainV1,
109
+ filtersGrainV2,
108
110
  filtersPixelateV1,
109
111
  filtersVisualFxV1,
110
112
  filtersThresholdV1,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shaders/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shaders/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * RGB <-> HSV conversion for WGSL templates: interpolate `WGSL_HSV` and call
3
+ * `rgb2hsv` / `hsv2rgb`. Hue is in 0..1, saturation and value in 0..1 for
4
+ * in-gamut input. Pass straight (un-premultiplied) RGB, since V is `max(r,g,b)`.
5
+ */
6
+ export declare const WGSL_HSV = "\nfn rgb2hsv(rgb: vec3f) -> vec3f {\n let maxC = max(max(rgb.r, rgb.g), rgb.b);\n let minC = min(min(rgb.r, rgb.g), rgb.b);\n let delta = maxC - minC;\n var h: f32 = 0.0;\n var s: f32 = 0.0;\n let v: f32 = maxC;\n if (delta > 0.00001) {\n s = delta / maxC;\n if (maxC == rgb.r) {\n h = (rgb.g - rgb.b) / delta;\n if (rgb.g < rgb.b) { h = h + 6.0; }\n } else if (maxC == rgb.g) {\n h = 2.0 + (rgb.b - rgb.r) / delta;\n } else {\n h = 4.0 + (rgb.r - rgb.g) / delta;\n }\n h = h / 6.0;\n }\n return vec3f(h, s, v);\n}\n\nfn hsv2rgb(hsv: vec3f) -> vec3f {\n let h = hsv.x * 6.0;\n let s = hsv.y;\n let v = hsv.z;\n let i = floor(h);\n let f = h - i;\n let p = v * (1.0 - s);\n let q = v * (1.0 - s * f);\n let t = v * (1.0 - s * (1.0 - f));\n let idx = i32(i) % 6;\n if (idx == 0) { return vec3f(v, t, p); }\n if (idx == 1) { return vec3f(q, v, p); }\n if (idx == 2) { return vec3f(p, v, t); }\n if (idx == 3) { return vec3f(p, q, v); }\n if (idx == 4) { return vec3f(t, p, v); }\n return vec3f(v, p, q);\n}\n";
7
+ //# sourceMappingURL=hsvWgsl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hsvWgsl.d.ts","sourceRoot":"","sources":["../../src/shared/hsvWgsl.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,QAAQ,gjCAwCpB,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * RGB <-> HSV conversion for WGSL templates: interpolate `WGSL_HSV` and call
3
+ * `rgb2hsv` / `hsv2rgb`. Hue is in 0..1, saturation and value in 0..1 for
4
+ * in-gamut input. Pass straight (un-premultiplied) RGB, since V is `max(r,g,b)`.
5
+ */
6
+ export const WGSL_HSV = /* wgsl */ `
7
+ fn rgb2hsv(rgb: vec3f) -> vec3f {
8
+ let maxC = max(max(rgb.r, rgb.g), rgb.b);
9
+ let minC = min(min(rgb.r, rgb.g), rgb.b);
10
+ let delta = maxC - minC;
11
+ var h: f32 = 0.0;
12
+ var s: f32 = 0.0;
13
+ let v: f32 = maxC;
14
+ if (delta > 0.00001) {
15
+ s = delta / maxC;
16
+ if (maxC == rgb.r) {
17
+ h = (rgb.g - rgb.b) / delta;
18
+ if (rgb.g < rgb.b) { h = h + 6.0; }
19
+ } else if (maxC == rgb.g) {
20
+ h = 2.0 + (rgb.b - rgb.r) / delta;
21
+ } else {
22
+ h = 4.0 + (rgb.r - rgb.g) / delta;
23
+ }
24
+ h = h / 6.0;
25
+ }
26
+ return vec3f(h, s, v);
27
+ }
28
+
29
+ fn hsv2rgb(hsv: vec3f) -> vec3f {
30
+ let h = hsv.x * 6.0;
31
+ let s = hsv.y;
32
+ let v = hsv.z;
33
+ let i = floor(h);
34
+ let f = h - i;
35
+ let p = v * (1.0 - s);
36
+ let q = v * (1.0 - s * f);
37
+ let t = v * (1.0 - s * (1.0 - f));
38
+ let idx = i32(i) % 6;
39
+ if (idx == 0) { return vec3f(v, t, p); }
40
+ if (idx == 1) { return vec3f(q, v, p); }
41
+ if (idx == 2) { return vec3f(p, v, t); }
42
+ if (idx == 3) { return vec3f(p, q, v); }
43
+ if (idx == 4) { return vec3f(t, p, v); }
44
+ return vec3f(v, p, q);
45
+ }
46
+ `;
47
+ //# sourceMappingURL=hsvWgsl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hsvWgsl.js","sourceRoot":"","sources":["../../src/shared/hsvWgsl.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwClC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nodetool-ai/gpu",
3
- "version": "0.8.6",
3
+ "version": "0.8.8",
4
4
  "description": "Canonical blend-mode catalog and shared WGSL blend functions for NodeTool compositors (sketch, timeline, Compositor node)",
5
5
  "type": "module",
6
6
  "engines": {
@@ -15,7 +15,7 @@
15
15
  "lint": "node ../../scripts/run-tsc.mjs --noEmit"
16
16
  },
17
17
  "dependencies": {
18
- "@nodetool-ai/protocol": "0.8.6",
18
+ "@nodetool-ai/protocol": "0.8.8",
19
19
  "typegpu": "^0.11.6",
20
20
  "webgpu": "^0.4.0"
21
21
  },