@luma.gl/shadertools 9.1.0-alpha.15 → 9.1.0-alpha.16

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.
Files changed (81) hide show
  1. package/dist/dist.dev.js +47 -47
  2. package/dist/dist.min.js +34 -42
  3. package/dist/index.cjs +47 -47
  4. package/dist/index.cjs.map +2 -2
  5. package/dist/lib/shader-module/shader-module.d.ts +2 -2
  6. package/dist/lib/shader-module/shader-module.d.ts.map +1 -1
  7. package/dist/lib/shader-module/shader-module.js +22 -4
  8. package/dist/module-injectors.d.ts +1 -1
  9. package/dist/module-injectors.d.ts.map +1 -1
  10. package/dist/module-injectors.js +5 -5
  11. package/dist/modules/lighting/lights/lighting.d.ts.map +1 -1
  12. package/dist/modules/lighting/lights/lighting.js +1 -0
  13. package/dist/modules/module-injectors.d.ts +1 -1
  14. package/dist/modules/module-injectors.d.ts.map +1 -1
  15. package/dist/modules/module-injectors.js +5 -5
  16. package/dist/passes/postprocessing/fxaa/fxaa.d.ts +1 -1
  17. package/dist/passes/postprocessing/fxaa/fxaa.js +1 -1
  18. package/dist/passes/postprocessing/image-adjust-filters/brightnesscontrast.d.ts +7 -3
  19. package/dist/passes/postprocessing/image-adjust-filters/brightnesscontrast.d.ts.map +1 -1
  20. package/dist/passes/postprocessing/image-adjust-filters/brightnesscontrast.js +7 -3
  21. package/dist/passes/postprocessing/image-adjust-filters/denoise.d.ts +1 -1
  22. package/dist/passes/postprocessing/image-adjust-filters/denoise.js +1 -1
  23. package/dist/passes/postprocessing/image-adjust-filters/huesaturation.d.ts +2 -2
  24. package/dist/passes/postprocessing/image-adjust-filters/huesaturation.js +2 -2
  25. package/dist/passes/postprocessing/image-adjust-filters/noise.d.ts +2 -2
  26. package/dist/passes/postprocessing/image-adjust-filters/noise.d.ts.map +1 -1
  27. package/dist/passes/postprocessing/image-adjust-filters/noise.js +2 -6
  28. package/dist/passes/postprocessing/image-adjust-filters/sepia.d.ts +2 -2
  29. package/dist/passes/postprocessing/image-adjust-filters/sepia.js +2 -2
  30. package/dist/passes/postprocessing/image-adjust-filters/vibrance.d.ts +2 -2
  31. package/dist/passes/postprocessing/image-adjust-filters/vibrance.js +2 -2
  32. package/dist/passes/postprocessing/image-adjust-filters/vignette.d.ts +6 -2
  33. package/dist/passes/postprocessing/image-adjust-filters/vignette.d.ts.map +1 -1
  34. package/dist/passes/postprocessing/image-adjust-filters/vignette.js +6 -6
  35. package/dist/passes/postprocessing/image-blur-filters/tiltshift.d.ts +1 -1
  36. package/dist/passes/postprocessing/image-blur-filters/tiltshift.js +1 -1
  37. package/dist/passes/postprocessing/image-blur-filters/triangleblur.d.ts +1 -1
  38. package/dist/passes/postprocessing/image-blur-filters/triangleblur.js +1 -1
  39. package/dist/passes/postprocessing/image-blur-filters/zoomblur.d.ts +1 -1
  40. package/dist/passes/postprocessing/image-blur-filters/zoomblur.js +1 -1
  41. package/dist/passes/postprocessing/image-fun-filters/colorhalftone.d.ts +2 -2
  42. package/dist/passes/postprocessing/image-fun-filters/colorhalftone.js +2 -2
  43. package/dist/passes/postprocessing/image-fun-filters/dotscreen.d.ts +2 -2
  44. package/dist/passes/postprocessing/image-fun-filters/dotscreen.js +2 -2
  45. package/dist/passes/postprocessing/image-fun-filters/edgework.d.ts +3 -3
  46. package/dist/passes/postprocessing/image-fun-filters/edgework.js +3 -3
  47. package/dist/passes/postprocessing/image-fun-filters/hexagonalpixelate.d.ts +1 -1
  48. package/dist/passes/postprocessing/image-fun-filters/hexagonalpixelate.js +1 -1
  49. package/dist/passes/postprocessing/image-fun-filters/ink.d.ts +1 -1
  50. package/dist/passes/postprocessing/image-fun-filters/ink.js +1 -1
  51. package/dist/passes/postprocessing/image-fun-filters/magnify.d.ts +1 -1
  52. package/dist/passes/postprocessing/image-fun-filters/magnify.js +1 -1
  53. package/dist/passes/postprocessing/image-warp-filters/bulgepinch.d.ts +1 -1
  54. package/dist/passes/postprocessing/image-warp-filters/bulgepinch.js +1 -1
  55. package/dist/passes/postprocessing/image-warp-filters/swirl.d.ts +1 -1
  56. package/dist/passes/postprocessing/image-warp-filters/swirl.js +1 -1
  57. package/package.json +2 -2
  58. package/src/lib/shader-module/shader-module.ts +25 -6
  59. package/src/module-injectors.ts +5 -5
  60. package/src/modules/engine/picking/README.md +9 -9
  61. package/src/modules/lighting/lights/lighting.ts +1 -0
  62. package/src/modules/module-injectors.ts +5 -5
  63. package/src/passes/postprocessing/fxaa/fxaa.ts +1 -1
  64. package/src/passes/postprocessing/image-adjust-filters/brightnesscontrast.ts +7 -3
  65. package/src/passes/postprocessing/image-adjust-filters/denoise.ts +1 -1
  66. package/src/passes/postprocessing/image-adjust-filters/huesaturation.ts +2 -2
  67. package/src/passes/postprocessing/image-adjust-filters/noise.ts +2 -6
  68. package/src/passes/postprocessing/image-adjust-filters/sepia.ts +2 -2
  69. package/src/passes/postprocessing/image-adjust-filters/vibrance.ts +2 -2
  70. package/src/passes/postprocessing/image-adjust-filters/vignette.ts +6 -6
  71. package/src/passes/postprocessing/image-blur-filters/tiltshift.ts +1 -1
  72. package/src/passes/postprocessing/image-blur-filters/triangleblur.ts +1 -1
  73. package/src/passes/postprocessing/image-blur-filters/zoomblur.ts +1 -1
  74. package/src/passes/postprocessing/image-fun-filters/colorhalftone.ts +2 -2
  75. package/src/passes/postprocessing/image-fun-filters/dotscreen.ts +2 -2
  76. package/src/passes/postprocessing/image-fun-filters/edgework.ts +3 -3
  77. package/src/passes/postprocessing/image-fun-filters/hexagonalpixelate.ts +1 -1
  78. package/src/passes/postprocessing/image-fun-filters/ink.ts +1 -1
  79. package/src/passes/postprocessing/image-fun-filters/magnify.ts +1 -1
  80. package/src/passes/postprocessing/image-warp-filters/bulgepinch.ts +1 -1
  81. package/src/passes/postprocessing/image-warp-filters/swirl.ts +1 -1
package/dist/index.cjs CHANGED
@@ -172,20 +172,20 @@ var MODULE_INJECTORS_VS = (
172
172
  var MODULE_INJECTORS_FS = (
173
173
  /* glsl */
174
174
  `#ifdef MODULE_MATERIAL
175
- gl_FragColor = material_filterColor(gl_FragColor);
175
+ fragColor = material_filterColor(fragColor);
176
176
  #endif
177
177
 
178
178
  #ifdef MODULE_LIGHTING
179
- gl_FragColor = lighting_filterColor(gl_FragColor);
179
+ fragColor = lighting_filterColor(fragColor);
180
180
  #endif
181
181
 
182
182
  #ifdef MODULE_FOG
183
- gl_FragColor = fog_filterColor(gl_FragColor);
183
+ fragColor = fog_filterColor(fragColor);
184
184
  #endif
185
185
 
186
186
  #ifdef MODULE_PICKING
187
- gl_FragColor = picking_filterHighlightColor(gl_FragColor);
188
- gl_FragColor = picking_filterPickingColor(gl_FragColor);
187
+ fragColor = picking_filterHighlightColor(fragColor);
188
+ fragColor = picking_filterPickingColor(fragColor);
189
189
  #endif
190
190
 
191
191
  #ifdef MODULE_LOGDEPTH
@@ -303,7 +303,7 @@ function initializeShaderModule(module2) {
303
303
  }
304
304
  initializeShaderModules(module2.dependencies || []);
305
305
  const {
306
- uniformPropTypes = {},
306
+ propTypes = {},
307
307
  deprecations = [],
308
308
  // defines = {},
309
309
  inject = {}
@@ -312,8 +312,8 @@ function initializeShaderModule(module2) {
312
312
  normalizedInjections: normalizeInjections(inject),
313
313
  parsedDeprecations: parseDeprecationDefinitions(deprecations)
314
314
  };
315
- if (uniformPropTypes) {
316
- instance.propValidators = makePropValidators(uniformPropTypes);
315
+ if (propTypes) {
316
+ instance.propValidators = makePropValidators(propTypes);
317
317
  }
318
318
  module2.instance = instance;
319
319
  }
@@ -321,7 +321,7 @@ function getShaderModuleUniforms(module2, props, oldUniforms) {
321
321
  var _a;
322
322
  initializeShaderModule(module2);
323
323
  const uniforms = oldUniforms || { ...module2.defaultUniforms };
324
- if (module2.getUniforms) {
324
+ if (props && module2.getUniforms) {
325
325
  return module2.getUniforms(props, uniforms);
326
326
  }
327
327
  return getValidatedProperties(props, (_a = module2.instance) == null ? void 0 : _a.propValidators, module2.name);
@@ -2900,7 +2900,7 @@ var source = (
2900
2900
  // Binding 0:1 is reserved for shader passes
2901
2901
  @binding(1) @group(0) var<uniform> brightnessContrast : brightnessContrastUniforms;
2902
2902
 
2903
- fn brightnessContrast_filterColor(color: vec4<f32>, texSize: vec2<f32>, texCoords: vec2<f32>) -> vec4<f32> {
2903
+ fn brightnessContrast_filterColor_ext(color: vec4<f32>, texSize: vec2<f32>, texCoords: vec2<f32>) -> vec4<f32> {
2904
2904
  color.rgb += brightnessContrast.brightness;
2905
2905
  if (brightnessContrast.contrast > 0.0) {
2906
2906
  color.rgb = (color.rgb - 0.5) / (1.0 - brightnessContrast.contrast) + 0.5;
@@ -2928,7 +2928,7 @@ vec4 brightnessContrast_filterColor(vec4 color) {
2928
2928
  return color;
2929
2929
  }
2930
2930
 
2931
- vec4 brightnessContrast_filterColor(vec4 color, vec2 texSize, vec2 texCoords) {
2931
+ vec4 brightnessContrast_filterColor_ext(vec4 color, vec2 texSize, vec2 texCoord) {
2932
2932
  return brightnessContrast_filterColor(color);
2933
2933
  }
2934
2934
  `
@@ -2941,7 +2941,11 @@ var brightnessContrast = {
2941
2941
  brightness: "f32",
2942
2942
  contrast: "f32"
2943
2943
  },
2944
- uniformPropTypes: {
2944
+ defaultUniforms: {
2945
+ brightness: 0,
2946
+ contrast: 0
2947
+ },
2948
+ propTypes: {
2945
2949
  brightness: { format: "f32", value: 0, min: -1, max: 1 },
2946
2950
  contrast: { format: "f32", value: 0, min: -1, max: 1 }
2947
2951
  },
@@ -2984,7 +2988,7 @@ var denoise = {
2984
2988
  uniformTypes: {
2985
2989
  strength: "f32"
2986
2990
  },
2987
- uniformPropTypes: {
2991
+ propTypes: {
2988
2992
  strength: { format: "f32", value: 0.5, min: 0, max: 1 }
2989
2993
  // strength: {..., adjust: (strength: number): number => 0.53 + 200 * Math.pow(1 - strength, 4) // TODO - JS preprocessing
2990
2994
  },
@@ -3023,7 +3027,7 @@ vec4 hueSaturation_filterColor(vec4 color) {
3023
3027
  return color;
3024
3028
  }
3025
3029
 
3026
- vec4 hueSaturation_filterColor(vec4 color, vec2 texSize, vec2 texCoord) {
3030
+ vec4 hueSaturation_filterColor_ext(vec4 color, vec2 texSize, vec2 texCoord) {
3027
3031
  return hueSaturation_filterColor(color);
3028
3032
  }
3029
3033
  `
@@ -3037,7 +3041,7 @@ var hueSaturation = {
3037
3041
  hue: "f32",
3038
3042
  saturation: "f32"
3039
3043
  },
3040
- uniformPropTypes: {
3044
+ propTypes: {
3041
3045
  hue: { value: 0, min: -1, max: 1 },
3042
3046
  saturation: { value: 0, min: -1, max: 1 }
3043
3047
  },
@@ -3055,17 +3059,13 @@ float rand(vec2 co) {
3055
3059
  return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
3056
3060
  }
3057
3061
 
3058
- vec4 noise_filterColor(vec4 color, vec2 texCoord) {
3062
+ vec4 noise_filterColor_ext(vec4 color, vec2 texSize, vec2 texCoord) {
3059
3063
  float diff = (rand(texCoord) - 0.5) * noise.amount;
3060
3064
  color.r += diff;
3061
3065
  color.g += diff;
3062
3066
  color.b += diff;
3063
3067
  return color;
3064
3068
  }
3065
-
3066
- vec4 noise_filterColor(vec4 color, vec2 texSize, vec2 texCoord) {
3067
- return noise_filterColor(color, texCoord);
3068
- }
3069
3069
  `
3070
3070
  );
3071
3071
  var noise = {
@@ -3075,7 +3075,7 @@ var noise = {
3075
3075
  uniformTypes: {
3076
3076
  amount: "f32"
3077
3077
  },
3078
- uniformPropTypes: {
3078
+ propTypes: {
3079
3079
  amount: { value: 0.5, min: 0, max: 1 }
3080
3080
  },
3081
3081
  fs: fs7,
@@ -3102,7 +3102,7 @@ vec4 sepia_filterColor(vec4 color) {
3102
3102
  return color;
3103
3103
  }
3104
3104
 
3105
- vec4 sepia_filterColor(vec4 color, vec2 texSize, vec2 texCoord) {
3105
+ vec4 sepia_filterColor_ext(vec4 color, vec2 texSize, vec2 texCoord) {
3106
3106
  return sepia_filterColor(color);
3107
3107
  }
3108
3108
  `
@@ -3114,7 +3114,7 @@ var sepia = {
3114
3114
  uniformTypes: {
3115
3115
  amount: "f32"
3116
3116
  },
3117
- uniformPropTypes: {
3117
+ propTypes: {
3118
3118
  amount: { value: 0.5, min: 0, max: 1 }
3119
3119
  },
3120
3120
  fs: fs8,
@@ -3136,7 +3136,7 @@ vec4 vibrance_filterColor(vec4 color) {
3136
3136
  return color;
3137
3137
  }
3138
3138
 
3139
- vec4 vibrance_filterColor(vec4 color, vec2 texSize, vec2 texCoord) {
3139
+ vec4 vibrance_filterColor_ext(vec4 color, vec2 texSize, vec2 texCoord) {
3140
3140
  return vibrance_filterColor(color);
3141
3141
  }
3142
3142
  `
@@ -3145,7 +3145,7 @@ var vibrance = {
3145
3145
  props: {},
3146
3146
  uniforms: {},
3147
3147
  name: "vibrance",
3148
- uniformPropTypes: {
3148
+ propTypes: {
3149
3149
  amount: { value: 0, min: -1, max: 1 }
3150
3150
  },
3151
3151
  fs: fs9,
@@ -3160,15 +3160,11 @@ var fs10 = (
3160
3160
  float amount;
3161
3161
  } vignette;
3162
3162
 
3163
- vec4 vignette_filterColor(vec4 color, vec2 texCoord) {
3163
+ vec4 vignette_filterColor_ext(vec4 color, vec2 texSize, vec2 texCoord) {
3164
3164
  float dist = distance(texCoord, vec2(0.5, 0.5));
3165
3165
  float ratio = smoothstep(0.8, vignette.radius * 0.799, dist * (vignette.amount + vignette.radius));
3166
3166
  return color.rgba * ratio + (1.0 - ratio)*vec4(0.0, 0.0, 0.0, 1.0);
3167
3167
  }
3168
-
3169
- vec4 vignette_filterColor(vec4 color, vec2 texSize, vec2 texCoord) {
3170
- return vignette_filterColor(color, texCoord);
3171
- }
3172
3168
  `
3173
3169
  );
3174
3170
  var vignette = {
@@ -3179,7 +3175,11 @@ var vignette = {
3179
3175
  radius: "f32",
3180
3176
  amount: "f32"
3181
3177
  },
3182
- uniformPropTypes: {
3178
+ defaultUniforms: {
3179
+ radius: 0.5,
3180
+ amount: 0.5
3181
+ },
3182
+ propTypes: {
3183
3183
  radius: { value: 0.5, min: 0, max: 1 },
3184
3184
  amount: { value: 0.5, min: 0, max: 1 }
3185
3185
  },
@@ -3247,7 +3247,7 @@ var tiltShift = {
3247
3247
  end: "vec2<f32>",
3248
3248
  invert: "i32"
3249
3249
  },
3250
- uniformPropTypes: {
3250
+ propTypes: {
3251
3251
  blurRadius: { value: 15, min: 0, max: 50 },
3252
3252
  gradientRadius: { value: 200, min: 0, max: 400 },
3253
3253
  start: { value: [0, 0] },
@@ -3307,7 +3307,7 @@ var triangleBlur = {
3307
3307
  radius: "f32",
3308
3308
  delta: "vec2<f32>"
3309
3309
  },
3310
- uniformPropTypes: {
3310
+ propTypes: {
3311
3311
  radius: { value: 20, min: 0, softMax: 100 },
3312
3312
  delta: { value: [1, 0], private: true }
3313
3313
  },
@@ -3362,7 +3362,7 @@ var zoomBlur = {
3362
3362
  center: "vec2<f32>",
3363
3363
  strength: "f32"
3364
3364
  },
3365
- uniformPropTypes: {
3365
+ propTypes: {
3366
3366
  center: { value: [0.5, 0.5] },
3367
3367
  strength: { value: 0.3, min: 0, softMax: 1 }
3368
3368
  },
@@ -3390,7 +3390,7 @@ float pattern(float angle, float scale, vec2 texSize, vec2 texCoord) {
3390
3390
  return (sin(point.x) * sin(point.y)) * 4.0;
3391
3391
  }
3392
3392
 
3393
- vec4 colorHalftone_filterColor(vec4 color, vec2 texSize, vec2 texCoord) {
3393
+ vec4 colorHalftone_filterColor_ext(vec4 color, vec2 texSize, vec2 texCoord) {
3394
3394
  float scale = 3.1514 / colorHalftone.size;
3395
3395
  vec3 cmy = 1.0 - color.rgb;
3396
3396
  float k = min(cmy.x, min(cmy.y, cmy.z));
@@ -3419,7 +3419,7 @@ var colorHalftone = {
3419
3419
  angle: "f32",
3420
3420
  size: "f32"
3421
3421
  },
3422
- uniformPropTypes: {
3422
+ propTypes: {
3423
3423
  center: { value: [0.5, 0.5] },
3424
3424
  angle: { value: 1.1, softMin: 0, softMax: Math.PI / 2 },
3425
3425
  size: { value: 4, min: 1, softMin: 3, softMax: 20 }
@@ -3449,7 +3449,7 @@ float pattern(vec2 texSize, vec2 texCoord) {
3449
3449
  return (sin(point.x) * sin(point.y)) * 4.0;
3450
3450
  }
3451
3451
 
3452
- vec4 dotScreen_filterColor(vec4 color, vec2 texSize, vec2 texCoord) {
3452
+ vec4 dotScreen_filterColor_ext(vec4 color, vec2 texSize, vec2 texCoord) {
3453
3453
  float average = (color.r + color.g + color.b) / 3.0;
3454
3454
  return vec4(vec3(average * 10.0 - 5.0 + pattern(texSize, texCoord)), color.a);
3455
3455
  }
@@ -3464,7 +3464,7 @@ var dotScreen = {
3464
3464
  angle: "f32",
3465
3465
  size: "f32"
3466
3466
  },
3467
- uniformPropTypes: {
3467
+ propTypes: {
3468
3468
  center: { value: [0.5, 0.5] },
3469
3469
  angle: { value: 1.1, softMin: 0, softMax: Math.PI / 2 },
3470
3470
  size: { value: 3, min: 1, softMin: 3, softMax: 20 }
@@ -3538,7 +3538,7 @@ var edgeWork = {
3538
3538
  name: "edgeWork",
3539
3539
  dependencies: [random],
3540
3540
  fs: fs16,
3541
- uniformPropTypes: {
3541
+ propTypes: {
3542
3542
  radius: { value: 2, min: 1, softMax: 50 },
3543
3543
  delta: { value: [1, 0], private: true }
3544
3544
  },
@@ -3546,12 +3546,12 @@ var edgeWork = {
3546
3546
  {
3547
3547
  // @ts-expect-error
3548
3548
  sampler: "edgeWork_sampleColor1",
3549
- uniformPropTypes: { delta: [1, 0] }
3549
+ propTypes: { delta: [1, 0] }
3550
3550
  },
3551
3551
  {
3552
3552
  // @ts-expect-error
3553
3553
  sampler: "edgeWork_sampleColor2",
3554
- uniformPropTypes: { delta: [0, 1] }
3554
+ propTypes: { delta: [0, 1] }
3555
3555
  }
3556
3556
  ]
3557
3557
  };
@@ -3611,7 +3611,7 @@ var hexagonalPixelate = {
3611
3611
  center: "vec2<f32>",
3612
3612
  scale: "f32"
3613
3613
  },
3614
- uniformPropTypes: {
3614
+ propTypes: {
3615
3615
  center: { value: [0.5, 0.5], hint: "screenspace" },
3616
3616
  scale: { value: 10, min: 1, softMin: 5, softMax: 50 }
3617
3617
  },
@@ -3659,7 +3659,7 @@ var ink = {
3659
3659
  uniformTypes: {
3660
3660
  strength: "f32"
3661
3661
  },
3662
- uniformPropTypes: {
3662
+ propTypes: {
3663
3663
  strength: { value: 0.25, min: 0, softMax: 1 }
3664
3664
  },
3665
3665
  passes: [{ sampler: true }]
@@ -3699,7 +3699,7 @@ var magnify = {
3699
3699
  borderWidthPixels: "f32",
3700
3700
  borderColor: "vec4<f32>"
3701
3701
  },
3702
- uniformPropTypes: {
3702
+ propTypes: {
3703
3703
  // range 0 to 1
3704
3704
  screenXY: { value: [0, 0] },
3705
3705
  radiusPixels: 200,
@@ -3775,7 +3775,7 @@ var bulgePinch = {
3775
3775
  radius: "f32",
3776
3776
  strength: "f32"
3777
3777
  },
3778
- uniformPropTypes: {
3778
+ propTypes: {
3779
3779
  center: { value: [0.5, 0.5] },
3780
3780
  radius: { value: 200, min: 1, softMax: 600 },
3781
3781
  strength: { value: 0.5, min: -1, max: 1 }
@@ -3828,7 +3828,7 @@ var swirl = {
3828
3828
  radius: "f32",
3829
3829
  angle: "f32"
3830
3830
  },
3831
- uniformPropTypes: {
3831
+ propTypes: {
3832
3832
  center: { value: [0.5, 0.5] },
3833
3833
  radius: { value: 200, min: 1, softMax: 600 },
3834
3834
  angle: { value: 3, softMin: -25, softMax: 25 }
@@ -4420,7 +4420,7 @@ vec4 fxaa_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) {
4420
4420
  `;
4421
4421
  var fxaa = {
4422
4422
  name: "fxaa",
4423
- uniformPropTypes: {},
4423
+ propTypes: {},
4424
4424
  fs: fs23,
4425
4425
  passes: [{ sampler: true }],
4426
4426
  getUniforms: (props) => props