@onerjs/core 8.28.1 → 8.28.2

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 (67) hide show
  1. package/Collisions/gpuPicker.d.ts +40 -16
  2. package/Collisions/gpuPicker.js +216 -95
  3. package/Collisions/gpuPicker.js.map +1 -1
  4. package/Decorators/nodeDecorator.d.ts +5 -1
  5. package/Decorators/nodeDecorator.js +4 -0
  6. package/Decorators/nodeDecorator.js.map +1 -1
  7. package/Engines/abstractEngine.js +2 -2
  8. package/Engines/abstractEngine.js.map +1 -1
  9. package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.d.ts +30 -0
  10. package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.js +56 -0
  11. package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.js.map +1 -0
  12. package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.d.ts +32 -0
  13. package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.js +62 -0
  14. package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.js.map +1 -0
  15. package/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.d.ts +36 -0
  16. package/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.js +88 -0
  17. package/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.js.map +1 -0
  18. package/FrameGraph/Node/Blocks/index.d.ts +3 -0
  19. package/FrameGraph/Node/Blocks/index.js +3 -0
  20. package/FrameGraph/Node/Blocks/index.js.map +1 -1
  21. package/FrameGraph/Tasks/PostProcesses/colorCorrectionTask.d.ts +17 -0
  22. package/FrameGraph/Tasks/PostProcesses/colorCorrectionTask.js +18 -0
  23. package/FrameGraph/Tasks/PostProcesses/colorCorrectionTask.js.map +1 -0
  24. package/FrameGraph/Tasks/PostProcesses/filterTask.d.ts +16 -0
  25. package/FrameGraph/Tasks/PostProcesses/filterTask.js +17 -0
  26. package/FrameGraph/Tasks/PostProcesses/filterTask.js.map +1 -0
  27. package/FrameGraph/Tasks/PostProcesses/tonemapTask.d.ts +16 -0
  28. package/FrameGraph/Tasks/PostProcesses/tonemapTask.js +17 -0
  29. package/FrameGraph/Tasks/PostProcesses/tonemapTask.js.map +1 -0
  30. package/FrameGraph/index.d.ts +3 -0
  31. package/FrameGraph/index.js +3 -0
  32. package/FrameGraph/index.js.map +1 -1
  33. package/Materials/effect.d.ts +1 -0
  34. package/Materials/effect.js +7 -1
  35. package/Materials/effect.js.map +1 -1
  36. package/Physics/v2/physicsAggregate.js +4 -3
  37. package/Physics/v2/physicsAggregate.js.map +1 -1
  38. package/PostProcesses/colorCorrectionPostProcess.d.ts +3 -3
  39. package/PostProcesses/colorCorrectionPostProcess.js +21 -21
  40. package/PostProcesses/colorCorrectionPostProcess.js.map +1 -1
  41. package/PostProcesses/filterPostProcess.d.ts +4 -2
  42. package/PostProcesses/filterPostProcess.js +22 -15
  43. package/PostProcesses/filterPostProcess.js.map +1 -1
  44. package/PostProcesses/index.d.ts +3 -0
  45. package/PostProcesses/index.js +3 -0
  46. package/PostProcesses/index.js.map +1 -1
  47. package/PostProcesses/thinColorCorrectionPostProcess.d.ts +30 -0
  48. package/PostProcesses/thinColorCorrectionPostProcess.js +52 -0
  49. package/PostProcesses/thinColorCorrectionPostProcess.js.map +1 -0
  50. package/PostProcesses/thinFilterPostProcess.d.ts +29 -0
  51. package/PostProcesses/thinFilterPostProcess.js +51 -0
  52. package/PostProcesses/thinFilterPostProcess.js.map +1 -0
  53. package/PostProcesses/thinTonemapPostProcess.d.ts +52 -0
  54. package/PostProcesses/thinTonemapPostProcess.js +83 -0
  55. package/PostProcesses/thinTonemapPostProcess.js.map +1 -0
  56. package/PostProcesses/tonemapPostProcess.d.ts +23 -21
  57. package/PostProcesses/tonemapPostProcess.js +55 -46
  58. package/PostProcesses/tonemapPostProcess.js.map +1 -1
  59. package/Shaders/picking.fragment.js +20 -6
  60. package/Shaders/picking.fragment.js.map +1 -1
  61. package/Shaders/picking.vertex.js +4 -3
  62. package/Shaders/picking.vertex.js.map +1 -1
  63. package/ShadersWGSL/picking.fragment.js +11 -6
  64. package/ShadersWGSL/picking.fragment.js.map +1 -1
  65. package/ShadersWGSL/picking.vertex.js +4 -3
  66. package/ShadersWGSL/picking.vertex.js.map +1 -1
  67. package/package.json +1 -1
@@ -4,6 +4,7 @@ import type { AbstractEngine } from "../Engines/abstractEngine.js";
4
4
  import type { Camera } from "../Cameras/camera.js";
5
5
  import type { Nullable } from "../types.js";
6
6
  import type { Scene } from "../scene.js";
7
+ import { ThinColorCorrectionPostProcess } from "./thinColorCorrectionPostProcess.js";
7
8
  /**
8
9
  *
9
10
  * This post-process allows the modification of rendered colors by using
@@ -20,18 +21,17 @@ import type { Scene } from "../scene.js";
20
21
  *
21
22
  */
22
23
  export declare class ColorCorrectionPostProcess extends PostProcess {
23
- private _colorTableTexture;
24
24
  /**
25
25
  * Gets the color table url used to create the LUT texture
26
26
  */
27
- colorTableUrl: string;
27
+ get colorTableUrl(): string;
28
28
  /**
29
29
  * Gets a string identifying the name of the class
30
30
  * @returns "ColorCorrectionPostProcess" string
31
31
  */
32
32
  getClassName(): string;
33
+ protected _effectWrapper: ThinColorCorrectionPostProcess;
33
34
  constructor(name: string, colorTableUrl: string, options: number | PostProcessOptions, camera: Nullable<Camera>, samplingMode?: number, engine?: AbstractEngine, reusable?: boolean);
34
- protected _gatherImports(useWebGPU: boolean, list: Promise<any>[]): void;
35
35
  /**
36
36
  * @internal
37
37
  */
@@ -1,9 +1,9 @@
1
1
  import { __decorate } from "../tslib.es6.js";
2
2
  import { PostProcess } from "./postProcess.js";
3
- import { Texture } from "../Materials/Textures/texture.js";
4
3
  import { RegisterClass } from "../Misc/typeStore.js";
5
4
  import { serialize } from "../Misc/decorators.js";
6
5
  import { SerializationHelper } from "../Misc/decorators.serialization.js";
6
+ import { ThinColorCorrectionPostProcess } from "./thinColorCorrectionPostProcess.js";
7
7
  /**
8
8
  *
9
9
  * This post-process allows the modification of rendered colors by using
@@ -20,6 +20,12 @@ import { SerializationHelper } from "../Misc/decorators.serialization.js";
20
20
  *
21
21
  */
22
22
  export class ColorCorrectionPostProcess extends PostProcess {
23
+ /**
24
+ * Gets the color table url used to create the LUT texture
25
+ */
26
+ get colorTableUrl() {
27
+ return this._effectWrapper.colorTableUrl;
28
+ }
23
29
  /**
24
30
  * Gets a string identifying the name of the class
25
31
  * @returns "ColorCorrectionPostProcess" string
@@ -28,26 +34,20 @@ export class ColorCorrectionPostProcess extends PostProcess {
28
34
  return "ColorCorrectionPostProcess";
29
35
  }
30
36
  constructor(name, colorTableUrl, options, camera, samplingMode, engine, reusable) {
31
- super(name, "colorCorrection", null, ["colorTable"], options, camera, samplingMode, engine, reusable);
32
- const scene = camera?.getScene() || null;
33
- this._colorTableTexture = new Texture(colorTableUrl, scene, true, false, Texture.TRILINEAR_SAMPLINGMODE);
34
- this._colorTableTexture.anisotropicFilteringLevel = 1;
35
- this._colorTableTexture.wrapU = Texture.CLAMP_ADDRESSMODE;
36
- this._colorTableTexture.wrapV = Texture.CLAMP_ADDRESSMODE;
37
- this.colorTableUrl = colorTableUrl;
38
- this.onApply = (effect) => {
39
- effect.setTexture("colorTable", this._colorTableTexture);
37
+ const localOptions = {
38
+ samplers: ThinColorCorrectionPostProcess.Samplers,
39
+ size: typeof options === "number" ? options : undefined,
40
+ camera,
41
+ samplingMode,
42
+ engine,
43
+ reusable,
44
+ ...options,
40
45
  };
41
- }
42
- _gatherImports(useWebGPU, list) {
43
- if (useWebGPU) {
44
- this._webGPUReady = true;
45
- list.push(Promise.all([import("../ShadersWGSL/colorCorrection.fragment.js")]));
46
- }
47
- else {
48
- list.push(Promise.all([import("../Shaders/colorCorrection.fragment.js")]));
49
- }
50
- super._gatherImports(useWebGPU, list);
46
+ const scene = camera?.getScene() || null;
47
+ super(name, ThinColorCorrectionPostProcess.FragmentUrl, {
48
+ effectWrapper: typeof options === "number" || !options.effectWrapper ? new ThinColorCorrectionPostProcess(name, scene, colorTableUrl, localOptions) : undefined,
49
+ ...localOptions,
50
+ });
51
51
  }
52
52
  /**
53
53
  * @internal
@@ -60,6 +60,6 @@ export class ColorCorrectionPostProcess extends PostProcess {
60
60
  }
61
61
  __decorate([
62
62
  serialize()
63
- ], ColorCorrectionPostProcess.prototype, "colorTableUrl", void 0);
63
+ ], ColorCorrectionPostProcess.prototype, "colorTableUrl", null);
64
64
  RegisterClass("BABYLON.ColorCorrectionPostProcess", ColorCorrectionPostProcess);
65
65
  //# sourceMappingURL=colorCorrectionPostProcess.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"colorCorrectionPostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/colorCorrectionPostProcess.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAIxD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAKvE;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,0BAA2B,SAAQ,WAAW;IASvD;;;OAGG;IACa,YAAY;QACxB,OAAO,4BAA4B,CAAC;IACxC,CAAC;IAED,YACI,IAAY,EACZ,aAAqB,EACrB,OAAoC,EACpC,MAAwB,EACxB,YAAqB,EACrB,MAAuB,EACvB,QAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAEtG,MAAM,KAAK,GAAG,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC;QACzC,IAAI,CAAC,kBAAkB,GAAG,IAAI,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;QACzG,IAAI,CAAC,kBAAkB,CAAC,yBAAyB,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,kBAAkB,CAAC,KAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC;QAC1D,IAAI,CAAC,kBAAkB,CAAC,KAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC;QAE1D,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAEnC,IAAI,CAAC,OAAO,GAAG,CAAC,MAAc,EAAE,EAAE;YAC9B,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC7D,CAAC,CAAC;IACN,CAAC;IAEkB,cAAc,CAAC,SAAkB,EAAE,IAAoB;QACtE,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACI,MAAM,CAAU,MAAM,CAAC,iBAAsB,EAAE,YAAoB,EAAE,KAAY,EAAE,OAAe;QACrG,OAAO,mBAAmB,CAAC,KAAK,CAC5B,GAAG,EAAE;YACD,OAAO,IAAI,0BAA0B,CACjC,iBAAiB,CAAC,IAAI,EACtB,iBAAiB,CAAC,aAAa,EAC/B,iBAAiB,CAAC,OAAO,EACzB,YAAY,EACZ,iBAAiB,CAAC,wBAAwB,EAC1C,KAAK,CAAC,SAAS,EAAE,EACjB,iBAAiB,CAAC,QAAQ,CAC7B,CAAC;QACN,CAAC,EACD,iBAAiB,EACjB,KAAK,EACL,OAAO,CACV,CAAC;IACN,CAAC;CACJ;AAlEU;IADN,SAAS,EAAE;iEACiB;AAoEjC,aAAa,CAAC,oCAAoC,EAAE,0BAA0B,CAAC,CAAC","sourcesContent":["import type { PostProcessOptions } from \"./postProcess\";\r\nimport { PostProcess } from \"./postProcess\";\r\nimport type { Effect } from \"../Materials/effect\";\r\nimport { Texture } from \"../Materials/Textures/texture\";\r\nimport type { AbstractEngine } from \"../Engines/abstractEngine\";\r\nimport type { Camera } from \"../Cameras/camera\";\r\n\r\nimport { RegisterClass } from \"../Misc/typeStore\";\r\nimport { serialize } from \"../Misc/decorators\";\r\nimport { SerializationHelper } from \"../Misc/decorators.serialization\";\r\nimport type { Nullable } from \"../types\";\r\n\r\nimport type { Scene } from \"../scene\";\r\n\r\n/**\r\n *\r\n * This post-process allows the modification of rendered colors by using\r\n * a 'look-up table' (LUT). This effect is also called Color Grading.\r\n *\r\n * The object needs to be provided an url to a texture containing the color\r\n * look-up table: the texture must be 256 pixels wide and 16 pixels high.\r\n * Use an image editing software to tweak the LUT to match your needs.\r\n *\r\n * For an example of a color LUT, see here:\r\n * @see http://udn.epicgames.com/Three/rsrc/Three/ColorGrading/RGBTable16x1.png\r\n * For explanations on color grading, see here:\r\n * @see http://udn.epicgames.com/Three/ColorGrading.html\r\n *\r\n */\r\nexport class ColorCorrectionPostProcess extends PostProcess {\r\n private _colorTableTexture: Texture;\r\n\r\n /**\r\n * Gets the color table url used to create the LUT texture\r\n */\r\n @serialize()\r\n public colorTableUrl: string;\r\n\r\n /**\r\n * Gets a string identifying the name of the class\r\n * @returns \"ColorCorrectionPostProcess\" string\r\n */\r\n public override getClassName(): string {\r\n return \"ColorCorrectionPostProcess\";\r\n }\r\n\r\n constructor(\r\n name: string,\r\n colorTableUrl: string,\r\n options: number | PostProcessOptions,\r\n camera: Nullable<Camera>,\r\n samplingMode?: number,\r\n engine?: AbstractEngine,\r\n reusable?: boolean\r\n ) {\r\n super(name, \"colorCorrection\", null, [\"colorTable\"], options, camera, samplingMode, engine, reusable);\r\n\r\n const scene = camera?.getScene() || null;\r\n this._colorTableTexture = new Texture(colorTableUrl, scene, true, false, Texture.TRILINEAR_SAMPLINGMODE);\r\n this._colorTableTexture.anisotropicFilteringLevel = 1;\r\n this._colorTableTexture.wrapU = Texture.CLAMP_ADDRESSMODE;\r\n this._colorTableTexture.wrapV = Texture.CLAMP_ADDRESSMODE;\r\n\r\n this.colorTableUrl = colorTableUrl;\r\n\r\n this.onApply = (effect: Effect) => {\r\n effect.setTexture(\"colorTable\", this._colorTableTexture);\r\n };\r\n }\r\n\r\n protected override _gatherImports(useWebGPU: boolean, list: Promise<any>[]) {\r\n if (useWebGPU) {\r\n this._webGPUReady = true;\r\n list.push(Promise.all([import(\"../ShadersWGSL/colorCorrection.fragment\")]));\r\n } else {\r\n list.push(Promise.all([import(\"../Shaders/colorCorrection.fragment\")]));\r\n }\r\n\r\n super._gatherImports(useWebGPU, list);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public static override _Parse(parsedPostProcess: any, targetCamera: Camera, scene: Scene, rootUrl: string): Nullable<ColorCorrectionPostProcess> {\r\n return SerializationHelper.Parse(\r\n () => {\r\n return new ColorCorrectionPostProcess(\r\n parsedPostProcess.name,\r\n parsedPostProcess.colorTableUrl,\r\n parsedPostProcess.options,\r\n targetCamera,\r\n parsedPostProcess.renderTargetSamplingMode,\r\n scene.getEngine(),\r\n parsedPostProcess.reusable\r\n );\r\n },\r\n parsedPostProcess,\r\n scene,\r\n rootUrl\r\n );\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.ColorCorrectionPostProcess\", ColorCorrectionPostProcess);\r\n"]}
1
+ {"version":3,"file":"colorCorrectionPostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/colorCorrectionPostProcess.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAIvE,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,0BAA2B,SAAQ,WAAW;IACvD;;OAEG;IAEH,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACa,YAAY;QACxB,OAAO,4BAA4B,CAAC;IACxC,CAAC;IAID,YACI,IAAY,EACZ,aAAqB,EACrB,OAAoC,EACpC,MAAwB,EACxB,YAAqB,EACrB,MAAuB,EACvB,QAAkB;QAElB,MAAM,YAAY,GAAG;YACjB,QAAQ,EAAE,8BAA8B,CAAC,QAAQ;YACjD,IAAI,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YACvD,MAAM;YACN,YAAY;YACZ,MAAM;YACN,QAAQ;YACR,GAAI,OAA8B;SACrC,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC;QAEzC,KAAK,CAAC,IAAI,EAAE,8BAA8B,CAAC,WAAW,EAAE;YACpD,aAAa,EAAE,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,8BAA8B,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;YAC/J,GAAG,YAAY;SAClB,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACI,MAAM,CAAU,MAAM,CAAC,iBAAsB,EAAE,YAAoB,EAAE,KAAY,EAAE,OAAe;QACrG,OAAO,mBAAmB,CAAC,KAAK,CAC5B,GAAG,EAAE;YACD,OAAO,IAAI,0BAA0B,CACjC,iBAAiB,CAAC,IAAI,EACtB,iBAAiB,CAAC,aAAa,EAC/B,iBAAiB,CAAC,OAAO,EACzB,YAAY,EACZ,iBAAiB,CAAC,wBAAwB,EAC1C,KAAK,CAAC,SAAS,EAAE,EACjB,iBAAiB,CAAC,QAAQ,CAC7B,CAAC;QACN,CAAC,EACD,iBAAiB,EACjB,KAAK,EACL,OAAO,CACV,CAAC;IACN,CAAC;CACJ;AA9DG;IADC,SAAS,EAAE;+DAGX;AA8DL,aAAa,CAAC,oCAAoC,EAAE,0BAA0B,CAAC,CAAC","sourcesContent":["import type { PostProcessOptions } from \"./postProcess\";\r\nimport { PostProcess } from \"./postProcess\";\r\nimport type { AbstractEngine } from \"../Engines/abstractEngine\";\r\nimport type { Camera } from \"../Cameras/camera\";\r\n\r\nimport { RegisterClass } from \"../Misc/typeStore\";\r\nimport { serialize } from \"../Misc/decorators\";\r\nimport { SerializationHelper } from \"../Misc/decorators.serialization\";\r\nimport type { Nullable } from \"../types\";\r\n\r\nimport type { Scene } from \"../scene\";\r\nimport { ThinColorCorrectionPostProcess } from \"./thinColorCorrectionPostProcess\";\r\n\r\n/**\r\n *\r\n * This post-process allows the modification of rendered colors by using\r\n * a 'look-up table' (LUT). This effect is also called Color Grading.\r\n *\r\n * The object needs to be provided an url to a texture containing the color\r\n * look-up table: the texture must be 256 pixels wide and 16 pixels high.\r\n * Use an image editing software to tweak the LUT to match your needs.\r\n *\r\n * For an example of a color LUT, see here:\r\n * @see http://udn.epicgames.com/Three/rsrc/Three/ColorGrading/RGBTable16x1.png\r\n * For explanations on color grading, see here:\r\n * @see http://udn.epicgames.com/Three/ColorGrading.html\r\n *\r\n */\r\nexport class ColorCorrectionPostProcess extends PostProcess {\r\n /**\r\n * Gets the color table url used to create the LUT texture\r\n */\r\n @serialize()\r\n public get colorTableUrl() {\r\n return this._effectWrapper.colorTableUrl;\r\n }\r\n\r\n /**\r\n * Gets a string identifying the name of the class\r\n * @returns \"ColorCorrectionPostProcess\" string\r\n */\r\n public override getClassName(): string {\r\n return \"ColorCorrectionPostProcess\";\r\n }\r\n\r\n protected override _effectWrapper: ThinColorCorrectionPostProcess;\r\n\r\n constructor(\r\n name: string,\r\n colorTableUrl: string,\r\n options: number | PostProcessOptions,\r\n camera: Nullable<Camera>,\r\n samplingMode?: number,\r\n engine?: AbstractEngine,\r\n reusable?: boolean\r\n ) {\r\n const localOptions = {\r\n samplers: ThinColorCorrectionPostProcess.Samplers,\r\n size: typeof options === \"number\" ? options : undefined,\r\n camera,\r\n samplingMode,\r\n engine,\r\n reusable,\r\n ...(options as PostProcessOptions),\r\n };\r\n\r\n const scene = camera?.getScene() || null;\r\n\r\n super(name, ThinColorCorrectionPostProcess.FragmentUrl, {\r\n effectWrapper: typeof options === \"number\" || !options.effectWrapper ? new ThinColorCorrectionPostProcess(name, scene, colorTableUrl, localOptions) : undefined,\r\n ...localOptions,\r\n });\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public static override _Parse(parsedPostProcess: any, targetCamera: Camera, scene: Scene, rootUrl: string): Nullable<ColorCorrectionPostProcess> {\r\n return SerializationHelper.Parse(\r\n () => {\r\n return new ColorCorrectionPostProcess(\r\n parsedPostProcess.name,\r\n parsedPostProcess.colorTableUrl,\r\n parsedPostProcess.options,\r\n targetCamera,\r\n parsedPostProcess.renderTargetSamplingMode,\r\n scene.getEngine(),\r\n parsedPostProcess.reusable\r\n );\r\n },\r\n parsedPostProcess,\r\n scene,\r\n rootUrl\r\n );\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.ColorCorrectionPostProcess\", ColorCorrectionPostProcess);\r\n"]}
@@ -5,17 +5,20 @@ import type { PostProcessOptions } from "./postProcess.js";
5
5
  import { PostProcess } from "./postProcess.js";
6
6
  import type { AbstractEngine } from "../Engines/abstractEngine.js";
7
7
  import type { Scene } from "../scene.js";
8
+ import { ThinFilterPostProcess } from "./thinFilterPostProcess.js";
8
9
  /**
9
10
  * Applies a kernel filter to the image
10
11
  */
11
12
  export declare class FilterPostProcess extends PostProcess {
12
13
  /** The matrix to be applied to the image */
13
- kernelMatrix: Matrix;
14
+ get kernelMatrix(): Matrix;
15
+ set kernelMatrix(value: Matrix);
14
16
  /**
15
17
  * Gets a string identifying the name of the class
16
18
  * @returns "FilterPostProcess" string
17
19
  */
18
20
  getClassName(): string;
21
+ protected _effectWrapper: ThinFilterPostProcess;
19
22
  /**
20
23
  *
21
24
  * @param name The name of the effect.
@@ -27,7 +30,6 @@ export declare class FilterPostProcess extends PostProcess {
27
30
  * @param reusable If the post process can be reused on the same frame. (default: false)
28
31
  */
29
32
  constructor(name: string, kernelMatrix: Matrix, options: number | PostProcessOptions, camera: Nullable<Camera>, samplingMode?: number, engine?: AbstractEngine, reusable?: boolean);
30
- protected _gatherImports(useWebGPU: boolean, list: Promise<any>[]): void;
31
33
  /**
32
34
  * @internal
33
35
  */
@@ -3,10 +3,18 @@ import { PostProcess } from "./postProcess.js";
3
3
  import { RegisterClass } from "../Misc/typeStore.js";
4
4
  import { serializeAsMatrix } from "../Misc/decorators.js";
5
5
  import { SerializationHelper } from "../Misc/decorators.serialization.js";
6
+ import { ThinFilterPostProcess } from "./thinFilterPostProcess.js";
6
7
  /**
7
8
  * Applies a kernel filter to the image
8
9
  */
9
10
  export class FilterPostProcess extends PostProcess {
11
+ /** The matrix to be applied to the image */
12
+ get kernelMatrix() {
13
+ return this._effectWrapper.kernelMatrix;
14
+ }
15
+ set kernelMatrix(value) {
16
+ this._effectWrapper.kernelMatrix = value;
17
+ }
10
18
  /**
11
19
  * Gets a string identifying the name of the class
12
20
  * @returns "FilterPostProcess" string
@@ -25,21 +33,20 @@ export class FilterPostProcess extends PostProcess {
25
33
  * @param reusable If the post process can be reused on the same frame. (default: false)
26
34
  */
27
35
  constructor(name, kernelMatrix, options, camera, samplingMode, engine, reusable) {
28
- super(name, "filter", ["kernelMatrix"], null, options, camera, samplingMode, engine, reusable);
29
- this.kernelMatrix = kernelMatrix;
30
- this.onApply = (effect) => {
31
- effect.setMatrix("kernelMatrix", this.kernelMatrix);
36
+ const localOptions = {
37
+ uniforms: ThinFilterPostProcess.Uniforms,
38
+ size: typeof options === "number" ? options : undefined,
39
+ camera,
40
+ samplingMode,
41
+ engine,
42
+ reusable,
43
+ ...options,
32
44
  };
33
- }
34
- _gatherImports(useWebGPU, list) {
35
- if (useWebGPU) {
36
- this._webGPUReady = true;
37
- list.push(Promise.all([import("../ShadersWGSL/filter.fragment.js")]));
38
- }
39
- else {
40
- list.push(Promise.all([import("../Shaders/filter.fragment.js")]));
41
- }
42
- super._gatherImports(useWebGPU, list);
45
+ super(name, ThinFilterPostProcess.FragmentUrl, {
46
+ effectWrapper: typeof options === "number" || !options.effectWrapper ? new ThinFilterPostProcess(name, engine, localOptions) : undefined,
47
+ ...localOptions,
48
+ });
49
+ this.kernelMatrix = kernelMatrix;
43
50
  }
44
51
  /**
45
52
  * @internal
@@ -52,6 +59,6 @@ export class FilterPostProcess extends PostProcess {
52
59
  }
53
60
  __decorate([
54
61
  serializeAsMatrix()
55
- ], FilterPostProcess.prototype, "kernelMatrix", void 0);
62
+ ], FilterPostProcess.prototype, "kernelMatrix", null);
56
63
  RegisterClass("BABYLON.FilterPostProcess", FilterPostProcess);
57
64
  //# sourceMappingURL=filterPostProcess.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"filterPostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/filterPostProcess.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAIvE;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IAK9C;;;OAGG;IACa,YAAY;QACxB,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAED;;;;;;;;;OASG;IACH,YACI,IAAY,EACZ,YAAoB,EACpB,OAAoC,EACpC,MAAwB,EACxB,YAAqB,EACrB,MAAuB,EACvB,QAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC/F,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjC,IAAI,CAAC,OAAO,GAAG,CAAC,MAAc,EAAE,EAAE;YAC9B,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACxD,CAAC,CAAC;IACN,CAAC;IAEkB,cAAc,CAAC,SAAkB,EAAE,IAAoB;QACtE,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,CAAC;QAED,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACI,MAAM,CAAU,MAAM,CAAC,iBAAsB,EAAE,YAAoB,EAAE,KAAY,EAAE,OAAe;QACrG,OAAO,mBAAmB,CAAC,KAAK,CAC5B,GAAG,EAAE;YACD,OAAO,IAAI,iBAAiB,CACxB,iBAAiB,CAAC,IAAI,EACtB,iBAAiB,CAAC,YAAY,EAC9B,iBAAiB,CAAC,OAAO,EACzB,YAAY,EACZ,iBAAiB,CAAC,wBAAwB,EAC1C,KAAK,CAAC,SAAS,EAAE,EACjB,iBAAiB,CAAC,QAAQ,CAC7B,CAAC;QACN,CAAC,EACD,iBAAiB,EACjB,KAAK,EACL,OAAO,CACV,CAAC;IACN,CAAC;CACJ;AArEU;IADN,iBAAiB,EAAE;uDACQ;AAuEhC,aAAa,CAAC,2BAA2B,EAAE,iBAAiB,CAAC,CAAC","sourcesContent":["import type { Nullable } from \"../types\";\r\nimport type { Matrix } from \"../Maths/math.vector\";\r\nimport type { Camera } from \"../Cameras/camera\";\r\nimport type { Effect } from \"../Materials/effect\";\r\nimport type { PostProcessOptions } from \"./postProcess\";\r\nimport { PostProcess } from \"./postProcess\";\r\nimport type { AbstractEngine } from \"../Engines/abstractEngine\";\r\n\r\nimport { RegisterClass } from \"../Misc/typeStore\";\r\nimport { serializeAsMatrix } from \"../Misc/decorators\";\r\nimport { SerializationHelper } from \"../Misc/decorators.serialization\";\r\n\r\nimport type { Scene } from \"../scene\";\r\n\r\n/**\r\n * Applies a kernel filter to the image\r\n */\r\nexport class FilterPostProcess extends PostProcess {\r\n /** The matrix to be applied to the image */\r\n @serializeAsMatrix()\r\n public kernelMatrix: Matrix;\r\n\r\n /**\r\n * Gets a string identifying the name of the class\r\n * @returns \"FilterPostProcess\" string\r\n */\r\n public override getClassName(): string {\r\n return \"FilterPostProcess\";\r\n }\r\n\r\n /**\r\n *\r\n * @param name The name of the effect.\r\n * @param kernelMatrix The matrix to be applied to the image\r\n * @param options The required width/height ratio to downsize to before computing the render pass.\r\n * @param camera The camera to apply the render pass to.\r\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\r\n * @param engine The engine which the post process will be applied. (default: current engine)\r\n * @param reusable If the post process can be reused on the same frame. (default: false)\r\n */\r\n constructor(\r\n name: string,\r\n kernelMatrix: Matrix,\r\n options: number | PostProcessOptions,\r\n camera: Nullable<Camera>,\r\n samplingMode?: number,\r\n engine?: AbstractEngine,\r\n reusable?: boolean\r\n ) {\r\n super(name, \"filter\", [\"kernelMatrix\"], null, options, camera, samplingMode, engine, reusable);\r\n this.kernelMatrix = kernelMatrix;\r\n\r\n this.onApply = (effect: Effect) => {\r\n effect.setMatrix(\"kernelMatrix\", this.kernelMatrix);\r\n };\r\n }\r\n\r\n protected override _gatherImports(useWebGPU: boolean, list: Promise<any>[]) {\r\n if (useWebGPU) {\r\n this._webGPUReady = true;\r\n list.push(Promise.all([import(\"../ShadersWGSL/filter.fragment\")]));\r\n } else {\r\n list.push(Promise.all([import(\"../Shaders/filter.fragment\")]));\r\n }\r\n\r\n super._gatherImports(useWebGPU, list);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public static override _Parse(parsedPostProcess: any, targetCamera: Camera, scene: Scene, rootUrl: string): Nullable<FilterPostProcess> {\r\n return SerializationHelper.Parse(\r\n () => {\r\n return new FilterPostProcess(\r\n parsedPostProcess.name,\r\n parsedPostProcess.kernelMatrix,\r\n parsedPostProcess.options,\r\n targetCamera,\r\n parsedPostProcess.renderTargetSamplingMode,\r\n scene.getEngine(),\r\n parsedPostProcess.reusable\r\n );\r\n },\r\n parsedPostProcess,\r\n scene,\r\n rootUrl\r\n );\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.FilterPostProcess\", FilterPostProcess);\r\n"]}
1
+ {"version":3,"file":"filterPostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/filterPostProcess.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAGvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IAC9C,4CAA4C;IAE5C,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;IAC5C,CAAC;IAED,IAAW,YAAY,CAAC,KAAa;QACjC,IAAI,CAAC,cAAc,CAAC,YAAY,GAAG,KAAK,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACa,YAAY;QACxB,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAID;;;;;;;;;OASG;IACH,YACI,IAAY,EACZ,YAAoB,EACpB,OAAoC,EACpC,MAAwB,EACxB,YAAqB,EACrB,MAAuB,EACvB,QAAkB;QAElB,MAAM,YAAY,GAAG;YACjB,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;YACxC,IAAI,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YACvD,MAAM;YACN,YAAY;YACZ,MAAM;YACN,QAAQ;YACR,GAAI,OAA8B;SACrC,CAAC;QAEF,KAAK,CAAC,IAAI,EAAE,qBAAqB,CAAC,WAAW,EAAE;YAC3C,aAAa,EAAE,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;YACxI,GAAG,YAAY;SAClB,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,MAAM,CAAU,MAAM,CAAC,iBAAsB,EAAE,YAAoB,EAAE,KAAY,EAAE,OAAe;QACrG,OAAO,mBAAmB,CAAC,KAAK,CAC5B,GAAG,EAAE;YACD,OAAO,IAAI,iBAAiB,CACxB,iBAAiB,CAAC,IAAI,EACtB,iBAAiB,CAAC,YAAY,EAC9B,iBAAiB,CAAC,OAAO,EACzB,YAAY,EACZ,iBAAiB,CAAC,wBAAwB,EAC1C,KAAK,CAAC,SAAS,EAAE,EACjB,iBAAiB,CAAC,QAAQ,CAC7B,CAAC;QACN,CAAC,EACD,iBAAiB,EACjB,KAAK,EACL,OAAO,CACV,CAAC;IACN,CAAC;CACJ;AA5EG;IADC,iBAAiB,EAAE;qDAGnB;AA4EL,aAAa,CAAC,2BAA2B,EAAE,iBAAiB,CAAC,CAAC","sourcesContent":["import type { Nullable } from \"../types\";\r\nimport type { Matrix } from \"../Maths/math.vector\";\r\nimport type { Camera } from \"../Cameras/camera\";\r\nimport type { PostProcessOptions } from \"./postProcess\";\r\nimport { PostProcess } from \"./postProcess\";\r\nimport type { AbstractEngine } from \"../Engines/abstractEngine\";\r\n\r\nimport { RegisterClass } from \"../Misc/typeStore\";\r\nimport { serializeAsMatrix } from \"../Misc/decorators\";\r\nimport { SerializationHelper } from \"../Misc/decorators.serialization\";\r\n\r\nimport type { Scene } from \"../scene\";\r\nimport { ThinFilterPostProcess } from \"./thinFilterPostProcess\";\r\n\r\n/**\r\n * Applies a kernel filter to the image\r\n */\r\nexport class FilterPostProcess extends PostProcess {\r\n /** The matrix to be applied to the image */\r\n @serializeAsMatrix()\r\n public get kernelMatrix() {\r\n return this._effectWrapper.kernelMatrix;\r\n }\r\n\r\n public set kernelMatrix(value: Matrix) {\r\n this._effectWrapper.kernelMatrix = value;\r\n }\r\n\r\n /**\r\n * Gets a string identifying the name of the class\r\n * @returns \"FilterPostProcess\" string\r\n */\r\n public override getClassName(): string {\r\n return \"FilterPostProcess\";\r\n }\r\n\r\n protected override _effectWrapper: ThinFilterPostProcess;\r\n\r\n /**\r\n *\r\n * @param name The name of the effect.\r\n * @param kernelMatrix The matrix to be applied to the image\r\n * @param options The required width/height ratio to downsize to before computing the render pass.\r\n * @param camera The camera to apply the render pass to.\r\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\r\n * @param engine The engine which the post process will be applied. (default: current engine)\r\n * @param reusable If the post process can be reused on the same frame. (default: false)\r\n */\r\n constructor(\r\n name: string,\r\n kernelMatrix: Matrix,\r\n options: number | PostProcessOptions,\r\n camera: Nullable<Camera>,\r\n samplingMode?: number,\r\n engine?: AbstractEngine,\r\n reusable?: boolean\r\n ) {\r\n const localOptions = {\r\n uniforms: ThinFilterPostProcess.Uniforms,\r\n size: typeof options === \"number\" ? options : undefined,\r\n camera,\r\n samplingMode,\r\n engine,\r\n reusable,\r\n ...(options as PostProcessOptions),\r\n };\r\n\r\n super(name, ThinFilterPostProcess.FragmentUrl, {\r\n effectWrapper: typeof options === \"number\" || !options.effectWrapper ? new ThinFilterPostProcess(name, engine, localOptions) : undefined,\r\n ...localOptions,\r\n });\r\n\r\n this.kernelMatrix = kernelMatrix;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public static override _Parse(parsedPostProcess: any, targetCamera: Camera, scene: Scene, rootUrl: string): Nullable<FilterPostProcess> {\r\n return SerializationHelper.Parse(\r\n () => {\r\n return new FilterPostProcess(\r\n parsedPostProcess.name,\r\n parsedPostProcess.kernelMatrix,\r\n parsedPostProcess.options,\r\n targetCamera,\r\n parsedPostProcess.renderTargetSamplingMode,\r\n scene.getEngine(),\r\n parsedPostProcess.reusable\r\n );\r\n },\r\n parsedPostProcess,\r\n scene,\r\n rootUrl\r\n );\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.FilterPostProcess\", FilterPostProcess);\r\n"]}
@@ -37,9 +37,11 @@ export * from "./thinBloomEffect.js";
37
37
  export * from "./thinBlurPostProcess.js";
38
38
  export * from "./thinChromaticAberrationPostProcess.js";
39
39
  export * from "./thinCircleOfConfusionPostProcess.js";
40
+ export * from "./thinColorCorrectionPostProcess.js";
40
41
  export * from "./thinConvolutionPostProcess.js";
41
42
  export * from "./thinDepthOfFieldEffect.js";
42
43
  export * from "./thinExtractHighlightsPostProcess.js";
44
+ export * from "./thinFilterPostProcess.js";
43
45
  export * from "./thinFXAAPostProcess.js";
44
46
  export * from "./thinGrainPostProcess.js";
45
47
  export * from "./thinImageProcessingPostProcess.js";
@@ -47,6 +49,7 @@ export * from "./thinMotionBlurPostProcess.js";
47
49
  export * from "./thinPassPostProcess.js";
48
50
  export * from "./thinSharpenPostProcess.js";
49
51
  export * from "./thinScreenSpaceCurvaturePostProcess.js";
52
+ export * from "./thinTonemapPostProcess.js";
50
53
  export * from "../Shaders/postprocess.vertex.js";
51
54
  export * from "../ShadersWGSL/postprocess.vertex.js";
52
55
  export * from "../Shaders/kernelBlur.fragment.js";
@@ -38,9 +38,11 @@ export * from "./thinBloomEffect.js";
38
38
  export * from "./thinBlurPostProcess.js";
39
39
  export * from "./thinChromaticAberrationPostProcess.js";
40
40
  export * from "./thinCircleOfConfusionPostProcess.js";
41
+ export * from "./thinColorCorrectionPostProcess.js";
41
42
  export * from "./thinConvolutionPostProcess.js";
42
43
  export * from "./thinDepthOfFieldEffect.js";
43
44
  export * from "./thinExtractHighlightsPostProcess.js";
45
+ export * from "./thinFilterPostProcess.js";
44
46
  export * from "./thinFXAAPostProcess.js";
45
47
  export * from "./thinGrainPostProcess.js";
46
48
  export * from "./thinImageProcessingPostProcess.js";
@@ -48,6 +50,7 @@ export * from "./thinMotionBlurPostProcess.js";
48
50
  export * from "./thinPassPostProcess.js";
49
51
  export * from "./thinSharpenPostProcess.js";
50
52
  export * from "./thinScreenSpaceCurvaturePostProcess.js";
53
+ export * from "./thinTonemapPostProcess.js";
51
54
  // Postprocess
52
55
  export * from "../Shaders/postprocess.vertex.js";
53
56
  export * from "../ShadersWGSL/postprocess.vertex.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/index.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-restricted-imports */\r\nexport * from \"./anaglyphPostProcess\";\r\nexport * from \"./blackAndWhitePostProcess\";\r\nexport * from \"./bloomEffect\";\r\nexport * from \"./bloomMergePostProcess\";\r\nexport * from \"./blurPostProcess\";\r\nexport * from \"./chromaticAberrationPostProcess\";\r\nexport * from \"./circleOfConfusionPostProcess\";\r\nexport * from \"./colorCorrectionPostProcess\";\r\nexport * from \"./convolutionPostProcess\";\r\nexport * from \"./depthOfFieldBlurPostProcess\";\r\nexport * from \"./depthOfFieldEffect\";\r\nexport * from \"./depthOfFieldMergePostProcess\";\r\nexport * from \"./displayPassPostProcess\";\r\nexport * from \"./extractHighlightsPostProcess\";\r\nexport * from \"./filterPostProcess\";\r\nexport * from \"./fxaaPostProcess\";\r\nexport * from \"./grainPostProcess\";\r\nexport * from \"./highlightsPostProcess\";\r\nexport * from \"./imageProcessingPostProcess\";\r\nexport * from \"./motionBlurPostProcess\";\r\nexport * from \"./passPostProcess\";\r\nexport * from \"./postProcess\";\r\nexport * from \"./postProcessManager\";\r\nexport * from \"./refractionPostProcess\";\r\nexport * from \"./RenderPipeline/index\";\r\nexport * from \"./sharpenPostProcess\";\r\nexport * from \"./stereoscopicInterlacePostProcess\";\r\nexport * from \"./tonemapPostProcess\";\r\nexport * from \"./volumetricLightScatteringPostProcess\";\r\nexport * from \"./vrDistortionCorrectionPostProcess\";\r\nexport * from \"./vrMultiviewToSingleviewPostProcess\";\r\nexport * from \"./screenSpaceReflectionPostProcess\";\r\nexport * from \"./screenSpaceCurvaturePostProcess\";\r\n\r\nexport * from \"./thinAnaglyphPostProcess\";\r\nexport * from \"./thinBlackAndWhitePostProcess\";\r\nexport * from \"./thinBloomEffect\";\r\nexport * from \"./thinBlurPostProcess\";\r\nexport * from \"./thinChromaticAberrationPostProcess\";\r\nexport * from \"./thinCircleOfConfusionPostProcess\";\r\nexport * from \"./thinConvolutionPostProcess\";\r\nexport * from \"./thinDepthOfFieldEffect\";\r\nexport * from \"./thinExtractHighlightsPostProcess\";\r\nexport * from \"./thinFXAAPostProcess\";\r\nexport * from \"./thinGrainPostProcess\";\r\nexport * from \"./thinImageProcessingPostProcess\";\r\nexport * from \"./thinMotionBlurPostProcess\";\r\nexport * from \"./thinPassPostProcess\";\r\nexport * from \"./thinSharpenPostProcess\";\r\nexport * from \"./thinScreenSpaceCurvaturePostProcess\";\r\n\r\n// Postprocess\r\nexport * from \"../Shaders/postprocess.vertex\";\r\nexport * from \"../ShadersWGSL/postprocess.vertex\";\r\n\r\n// Blur postprocess\r\nexport * from \"../Shaders/kernelBlur.fragment\";\r\nexport * from \"../Shaders/kernelBlur.vertex\";\r\nexport * from \"../ShadersWGSL/kernelBlur.fragment\";\r\nexport * from \"../ShadersWGSL/kernelBlur.vertex\";\r\n\r\n// Pass postprocess\r\nexport * from \"../Shaders/pass.fragment\";\r\nexport * from \"../Shaders/passCube.fragment\";\r\nexport * from \"../ShadersWGSL/pass.fragment\";\r\nexport * from \"../ShadersWGSL/passCube.fragment\";\r\n\r\n// vrDFistortionCorrection postprocess\r\nexport * from \"../Shaders/vrDistortionCorrection.fragment\";\r\nexport * from \"../ShadersWGSL/vrDistortionCorrection.fragment\";\r\n\r\n// Image processing postprocess\r\nexport * from \"../ShadersWGSL/imageProcessing.fragment\";\r\nexport * from \"../Shaders/imageProcessing.fragment\";\r\n\r\n// Sharpen\r\nexport * from \"../Shaders/sharpen.fragment\";\r\nexport * from \"../ShadersWGSL/sharpen.fragment\";\r\n\r\n// Grain\r\nexport * from \"../Shaders/grain.fragment\";\r\nexport * from \"../ShadersWGSL/grain.fragment\";\r\n\r\n// Chromatic Aberration\r\nexport * from \"../Shaders/chromaticAberration.fragment\";\r\nexport * from \"../ShadersWGSL/chromaticAberration.fragment\";\r\n\r\n// Depth of field merge\r\nexport * from \"../Shaders/depthOfFieldMerge.fragment\";\r\nexport * from \"../ShadersWGSL/depthOfFieldMerge.fragment\";\r\n\r\n// Circle of confusion\r\nexport * from \"../Shaders/circleOfConfusion.fragment\";\r\nexport * from \"../ShadersWGSL/circleOfConfusion.fragment\";\r\n\r\n// Bloom\r\nexport * from \"../Shaders/bloomMerge.fragment\";\r\nexport * from \"../ShadersWGSL/bloomMerge.fragment\";\r\n\r\n// Extract highlights\r\nexport * from \"../Shaders/extractHighlights.fragment\";\r\nexport * from \"../ShadersWGSL/extractHighlights.fragment\";\r\n\r\n// FXAA\r\nexport * from \"../Shaders/fxaa.fragment\";\r\nexport * from \"../Shaders/fxaa.vertex\";\r\nexport * from \"../ShadersWGSL/fxaa.fragment\";\r\nexport * from \"../ShadersWGSL/fxaa.vertex\";\r\n\r\n// B&W\r\nexport * from \"../Shaders/blackAndWhite.fragment\";\r\nexport * from \"../ShadersWGSL/blackAndWhite.fragment\";\r\n\r\n// Anaglyph\r\nexport * from \"../Shaders/anaglyph.fragment\";\r\nexport * from \"../ShadersWGSL/anaglyph.fragment\";\r\n\r\n// Convolution\r\nexport * from \"../Shaders/convolution.fragment\";\r\nexport * from \"../ShadersWGSL/convolution.fragment\";\r\n\r\n// Color correction\r\nexport * from \"../Shaders/colorCorrection.fragment\";\r\nexport * from \"../ShadersWGSL/colorCorrection.fragment\";\r\n\r\n// Motion blur\r\nexport * from \"../Shaders/motionBlur.fragment\";\r\nexport * from \"../ShadersWGSL/motionBlur.fragment\";\r\n\r\n// Filter\r\nexport * from \"../Shaders/filter.fragment\";\r\nexport * from \"../ShadersWGSL/filter.fragment\";\r\n\r\n// Highlights\r\nexport * from \"../Shaders/highlights.fragment\";\r\nexport * from \"../ShadersWGSL/highlights.fragment\";\r\n\r\n// Display\r\nexport * from \"../Shaders/displayPass.fragment\";\r\nexport * from \"../ShadersWGSL/displayPass.fragment\";\r\n\r\n// Tonemap\r\nexport * from \"../Shaders/tonemap.fragment\";\r\nexport * from \"../ShadersWGSL/tonemap.fragment\";\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/index.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-restricted-imports */\r\nexport * from \"./anaglyphPostProcess\";\r\nexport * from \"./blackAndWhitePostProcess\";\r\nexport * from \"./bloomEffect\";\r\nexport * from \"./bloomMergePostProcess\";\r\nexport * from \"./blurPostProcess\";\r\nexport * from \"./chromaticAberrationPostProcess\";\r\nexport * from \"./circleOfConfusionPostProcess\";\r\nexport * from \"./colorCorrectionPostProcess\";\r\nexport * from \"./convolutionPostProcess\";\r\nexport * from \"./depthOfFieldBlurPostProcess\";\r\nexport * from \"./depthOfFieldEffect\";\r\nexport * from \"./depthOfFieldMergePostProcess\";\r\nexport * from \"./displayPassPostProcess\";\r\nexport * from \"./extractHighlightsPostProcess\";\r\nexport * from \"./filterPostProcess\";\r\nexport * from \"./fxaaPostProcess\";\r\nexport * from \"./grainPostProcess\";\r\nexport * from \"./highlightsPostProcess\";\r\nexport * from \"./imageProcessingPostProcess\";\r\nexport * from \"./motionBlurPostProcess\";\r\nexport * from \"./passPostProcess\";\r\nexport * from \"./postProcess\";\r\nexport * from \"./postProcessManager\";\r\nexport * from \"./refractionPostProcess\";\r\nexport * from \"./RenderPipeline/index\";\r\nexport * from \"./sharpenPostProcess\";\r\nexport * from \"./stereoscopicInterlacePostProcess\";\r\nexport * from \"./tonemapPostProcess\";\r\nexport * from \"./volumetricLightScatteringPostProcess\";\r\nexport * from \"./vrDistortionCorrectionPostProcess\";\r\nexport * from \"./vrMultiviewToSingleviewPostProcess\";\r\nexport * from \"./screenSpaceReflectionPostProcess\";\r\nexport * from \"./screenSpaceCurvaturePostProcess\";\r\n\r\nexport * from \"./thinAnaglyphPostProcess\";\r\nexport * from \"./thinBlackAndWhitePostProcess\";\r\nexport * from \"./thinBloomEffect\";\r\nexport * from \"./thinBlurPostProcess\";\r\nexport * from \"./thinChromaticAberrationPostProcess\";\r\nexport * from \"./thinCircleOfConfusionPostProcess\";\r\nexport * from \"./thinColorCorrectionPostProcess\";\r\nexport * from \"./thinConvolutionPostProcess\";\r\nexport * from \"./thinDepthOfFieldEffect\";\r\nexport * from \"./thinExtractHighlightsPostProcess\";\r\nexport * from \"./thinFilterPostProcess\";\r\nexport * from \"./thinFXAAPostProcess\";\r\nexport * from \"./thinGrainPostProcess\";\r\nexport * from \"./thinImageProcessingPostProcess\";\r\nexport * from \"./thinMotionBlurPostProcess\";\r\nexport * from \"./thinPassPostProcess\";\r\nexport * from \"./thinSharpenPostProcess\";\r\nexport * from \"./thinScreenSpaceCurvaturePostProcess\";\r\nexport * from \"./thinTonemapPostProcess\";\r\n\r\n// Postprocess\r\nexport * from \"../Shaders/postprocess.vertex\";\r\nexport * from \"../ShadersWGSL/postprocess.vertex\";\r\n\r\n// Blur postprocess\r\nexport * from \"../Shaders/kernelBlur.fragment\";\r\nexport * from \"../Shaders/kernelBlur.vertex\";\r\nexport * from \"../ShadersWGSL/kernelBlur.fragment\";\r\nexport * from \"../ShadersWGSL/kernelBlur.vertex\";\r\n\r\n// Pass postprocess\r\nexport * from \"../Shaders/pass.fragment\";\r\nexport * from \"../Shaders/passCube.fragment\";\r\nexport * from \"../ShadersWGSL/pass.fragment\";\r\nexport * from \"../ShadersWGSL/passCube.fragment\";\r\n\r\n// vrDFistortionCorrection postprocess\r\nexport * from \"../Shaders/vrDistortionCorrection.fragment\";\r\nexport * from \"../ShadersWGSL/vrDistortionCorrection.fragment\";\r\n\r\n// Image processing postprocess\r\nexport * from \"../ShadersWGSL/imageProcessing.fragment\";\r\nexport * from \"../Shaders/imageProcessing.fragment\";\r\n\r\n// Sharpen\r\nexport * from \"../Shaders/sharpen.fragment\";\r\nexport * from \"../ShadersWGSL/sharpen.fragment\";\r\n\r\n// Grain\r\nexport * from \"../Shaders/grain.fragment\";\r\nexport * from \"../ShadersWGSL/grain.fragment\";\r\n\r\n// Chromatic Aberration\r\nexport * from \"../Shaders/chromaticAberration.fragment\";\r\nexport * from \"../ShadersWGSL/chromaticAberration.fragment\";\r\n\r\n// Depth of field merge\r\nexport * from \"../Shaders/depthOfFieldMerge.fragment\";\r\nexport * from \"../ShadersWGSL/depthOfFieldMerge.fragment\";\r\n\r\n// Circle of confusion\r\nexport * from \"../Shaders/circleOfConfusion.fragment\";\r\nexport * from \"../ShadersWGSL/circleOfConfusion.fragment\";\r\n\r\n// Bloom\r\nexport * from \"../Shaders/bloomMerge.fragment\";\r\nexport * from \"../ShadersWGSL/bloomMerge.fragment\";\r\n\r\n// Extract highlights\r\nexport * from \"../Shaders/extractHighlights.fragment\";\r\nexport * from \"../ShadersWGSL/extractHighlights.fragment\";\r\n\r\n// FXAA\r\nexport * from \"../Shaders/fxaa.fragment\";\r\nexport * from \"../Shaders/fxaa.vertex\";\r\nexport * from \"../ShadersWGSL/fxaa.fragment\";\r\nexport * from \"../ShadersWGSL/fxaa.vertex\";\r\n\r\n// B&W\r\nexport * from \"../Shaders/blackAndWhite.fragment\";\r\nexport * from \"../ShadersWGSL/blackAndWhite.fragment\";\r\n\r\n// Anaglyph\r\nexport * from \"../Shaders/anaglyph.fragment\";\r\nexport * from \"../ShadersWGSL/anaglyph.fragment\";\r\n\r\n// Convolution\r\nexport * from \"../Shaders/convolution.fragment\";\r\nexport * from \"../ShadersWGSL/convolution.fragment\";\r\n\r\n// Color correction\r\nexport * from \"../Shaders/colorCorrection.fragment\";\r\nexport * from \"../ShadersWGSL/colorCorrection.fragment\";\r\n\r\n// Motion blur\r\nexport * from \"../Shaders/motionBlur.fragment\";\r\nexport * from \"../ShadersWGSL/motionBlur.fragment\";\r\n\r\n// Filter\r\nexport * from \"../Shaders/filter.fragment\";\r\nexport * from \"../ShadersWGSL/filter.fragment\";\r\n\r\n// Highlights\r\nexport * from \"../Shaders/highlights.fragment\";\r\nexport * from \"../ShadersWGSL/highlights.fragment\";\r\n\r\n// Display\r\nexport * from \"../Shaders/displayPass.fragment\";\r\nexport * from \"../ShadersWGSL/displayPass.fragment\";\r\n\r\n// Tonemap\r\nexport * from \"../Shaders/tonemap.fragment\";\r\nexport * from \"../ShadersWGSL/tonemap.fragment\";\r\n"]}
@@ -0,0 +1,30 @@
1
+ import type { EffectWrapperCreationOptions, Nullable, Scene } from "../index.js";
2
+ import { EffectWrapper } from "../Materials/effectRenderer.js";
3
+ /**
4
+ * Post process used to apply color correction
5
+ */
6
+ export declare class ThinColorCorrectionPostProcess extends EffectWrapper {
7
+ private _colorTableTexture;
8
+ /**
9
+ * The fragment shader url
10
+ */
11
+ static readonly FragmentUrl = "colorCorrection";
12
+ /**
13
+ * The list of uniforms used by the effect
14
+ */
15
+ static readonly Samplers: string[];
16
+ protected _gatherImports(useWebGPU: boolean, list: Promise<any>[]): void;
17
+ /**
18
+ * Constructs a new black and white post process
19
+ * @param name Name of the effect
20
+ * @param scene The scene the effect belongs to
21
+ * @param colorTableUrl URL of the color table texture
22
+ * @param options Options to configure the effect
23
+ */
24
+ constructor(name: string, scene: Nullable<Scene>, colorTableUrl: string, options?: EffectWrapperCreationOptions);
25
+ /**
26
+ * Gets the color table url used to create the LUT texture
27
+ */
28
+ readonly colorTableUrl: string;
29
+ bind(noDefaultBindings?: boolean): void;
30
+ }
@@ -0,0 +1,52 @@
1
+ import { EffectWrapper } from "../Materials/effectRenderer.js";
2
+ import { Texture } from "../Materials/Textures/texture.js";
3
+ /**
4
+ * Post process used to apply color correction
5
+ */
6
+ export class ThinColorCorrectionPostProcess extends EffectWrapper {
7
+ _gatherImports(useWebGPU, list) {
8
+ if (useWebGPU) {
9
+ this._webGPUReady = true;
10
+ list.push(import("../ShadersWGSL/colorCorrection.fragment.js"));
11
+ }
12
+ else {
13
+ list.push(import("../Shaders/colorCorrection.fragment.js"));
14
+ }
15
+ }
16
+ /**
17
+ * Constructs a new black and white post process
18
+ * @param name Name of the effect
19
+ * @param scene The scene the effect belongs to
20
+ * @param colorTableUrl URL of the color table texture
21
+ * @param options Options to configure the effect
22
+ */
23
+ constructor(name, scene, colorTableUrl, options) {
24
+ super({
25
+ ...options,
26
+ name,
27
+ engine: scene?.getEngine(),
28
+ useShaderStore: true,
29
+ useAsPostProcess: true,
30
+ fragmentShader: ThinColorCorrectionPostProcess.FragmentUrl,
31
+ samplers: ThinColorCorrectionPostProcess.Samplers,
32
+ });
33
+ this._colorTableTexture = new Texture(colorTableUrl, scene, true, false, Texture.TRILINEAR_SAMPLINGMODE);
34
+ this._colorTableTexture.anisotropicFilteringLevel = 1;
35
+ this._colorTableTexture.wrapU = Texture.CLAMP_ADDRESSMODE;
36
+ this._colorTableTexture.wrapV = Texture.CLAMP_ADDRESSMODE;
37
+ this.colorTableUrl = colorTableUrl;
38
+ }
39
+ bind(noDefaultBindings = false) {
40
+ super.bind(noDefaultBindings);
41
+ this._drawWrapper.effect.setTexture("colorTable", this._colorTableTexture);
42
+ }
43
+ }
44
+ /**
45
+ * The fragment shader url
46
+ */
47
+ ThinColorCorrectionPostProcess.FragmentUrl = "colorCorrection";
48
+ /**
49
+ * The list of uniforms used by the effect
50
+ */
51
+ ThinColorCorrectionPostProcess.Samplers = ["colorTable"];
52
+ //# sourceMappingURL=thinColorCorrectionPostProcess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thinColorCorrectionPostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/thinColorCorrectionPostProcess.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAExD;;GAEG;AACH,MAAM,OAAO,8BAA+B,SAAQ,aAAa;IAa1C,cAAc,CAAC,SAAkB,EAAE,IAAoB;QACtE,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAC7D,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,YAAY,IAAY,EAAE,KAAsB,EAAE,aAAqB,EAAE,OAAsC;QAC3G,KAAK,CAAC;YACF,GAAG,OAAO;YACV,IAAI;YACJ,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE;YAC1B,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,8BAA8B,CAAC,WAAW;YAC1D,QAAQ,EAAE,8BAA8B,CAAC,QAAQ;SACpD,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,GAAG,IAAI,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;QACzG,IAAI,CAAC,kBAAkB,CAAC,yBAAyB,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,kBAAkB,CAAC,KAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC;QAC1D,IAAI,CAAC,kBAAkB,CAAC,KAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC;QAE1D,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACvC,CAAC;IAOe,IAAI,CAAC,iBAAiB,GAAG,KAAK;QAC1C,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,MAAO,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAChF,CAAC;;AArDD;;GAEG;AACoB,0CAAW,GAAG,iBAAiB,CAAC;AAEvD;;GAEG;AACoB,uCAAQ,GAAG,CAAC,YAAY,CAAC,CAAC","sourcesContent":["import type { EffectWrapperCreationOptions, Nullable, Scene } from \"core/index\";\r\nimport { EffectWrapper } from \"../Materials/effectRenderer\";\r\nimport { Texture } from \"../Materials/Textures/texture\";\r\n\r\n/**\r\n * Post process used to apply color correction\r\n */\r\nexport class ThinColorCorrectionPostProcess extends EffectWrapper {\r\n private _colorTableTexture: Texture;\r\n\r\n /**\r\n * The fragment shader url\r\n */\r\n public static readonly FragmentUrl = \"colorCorrection\";\r\n\r\n /**\r\n * The list of uniforms used by the effect\r\n */\r\n public static readonly Samplers = [\"colorTable\"];\r\n\r\n protected override _gatherImports(useWebGPU: boolean, list: Promise<any>[]) {\r\n if (useWebGPU) {\r\n this._webGPUReady = true;\r\n list.push(import(\"../ShadersWGSL/colorCorrection.fragment\"));\r\n } else {\r\n list.push(import(\"../Shaders/colorCorrection.fragment\"));\r\n }\r\n }\r\n\r\n /**\r\n * Constructs a new black and white post process\r\n * @param name Name of the effect\r\n * @param scene The scene the effect belongs to\r\n * @param colorTableUrl URL of the color table texture\r\n * @param options Options to configure the effect\r\n */\r\n constructor(name: string, scene: Nullable<Scene>, colorTableUrl: string, options?: EffectWrapperCreationOptions) {\r\n super({\r\n ...options,\r\n name,\r\n engine: scene?.getEngine(),\r\n useShaderStore: true,\r\n useAsPostProcess: true,\r\n fragmentShader: ThinColorCorrectionPostProcess.FragmentUrl,\r\n samplers: ThinColorCorrectionPostProcess.Samplers,\r\n });\r\n\r\n this._colorTableTexture = new Texture(colorTableUrl, scene, true, false, Texture.TRILINEAR_SAMPLINGMODE);\r\n this._colorTableTexture.anisotropicFilteringLevel = 1;\r\n this._colorTableTexture.wrapU = Texture.CLAMP_ADDRESSMODE;\r\n this._colorTableTexture.wrapV = Texture.CLAMP_ADDRESSMODE;\r\n\r\n this.colorTableUrl = colorTableUrl;\r\n }\r\n\r\n /**\r\n * Gets the color table url used to create the LUT texture\r\n */\r\n public readonly colorTableUrl: string;\r\n\r\n public override bind(noDefaultBindings = false) {\r\n super.bind(noDefaultBindings);\r\n this._drawWrapper.effect!.setTexture(\"colorTable\", this._colorTableTexture);\r\n }\r\n}\r\n"]}
@@ -0,0 +1,29 @@
1
+ import type { Nullable, AbstractEngine, EffectWrapperCreationOptions } from "../index.js";
2
+ import { EffectWrapper } from "../Materials/effectRenderer.js";
3
+ import { Matrix } from "../Maths/math.vector.js";
4
+ /**
5
+ * Post process used to apply a kernel filter
6
+ */
7
+ export declare class ThinFilterPostProcess extends EffectWrapper {
8
+ /**
9
+ * The fragment shader url
10
+ */
11
+ static readonly FragmentUrl = "filter";
12
+ /**
13
+ * The list of uniforms used by the effect
14
+ */
15
+ static readonly Uniforms: string[];
16
+ protected _gatherImports(useWebGPU: boolean, list: Promise<any>[]): void;
17
+ /**
18
+ * Constructs a new filter post process
19
+ * @param name Name of the effect
20
+ * @param engine Engine to use to render the effect. If not provided, the last created engine will be used
21
+ * @param options Options to configure the effect
22
+ */
23
+ constructor(name: string, engine?: Nullable<AbstractEngine>, options?: EffectWrapperCreationOptions);
24
+ /**
25
+ * The matrix to be applied to the image
26
+ */
27
+ kernelMatrix: Matrix;
28
+ bind(noDefaultBindings?: boolean): void;
29
+ }
@@ -0,0 +1,51 @@
1
+ import { EffectWrapper } from "../Materials/effectRenderer.js";
2
+ import { Engine } from "../Engines/engine.js";
3
+ import { Matrix } from "../Maths/math.vector.js";
4
+ /**
5
+ * Post process used to apply a kernel filter
6
+ */
7
+ export class ThinFilterPostProcess extends EffectWrapper {
8
+ _gatherImports(useWebGPU, list) {
9
+ if (useWebGPU) {
10
+ this._webGPUReady = true;
11
+ list.push(import("../ShadersWGSL/filter.fragment.js"));
12
+ }
13
+ else {
14
+ list.push(import("../Shaders/filter.fragment.js"));
15
+ }
16
+ }
17
+ /**
18
+ * Constructs a new filter post process
19
+ * @param name Name of the effect
20
+ * @param engine Engine to use to render the effect. If not provided, the last created engine will be used
21
+ * @param options Options to configure the effect
22
+ */
23
+ constructor(name, engine = null, options) {
24
+ super({
25
+ ...options,
26
+ name,
27
+ engine: engine || Engine.LastCreatedEngine,
28
+ useShaderStore: true,
29
+ useAsPostProcess: true,
30
+ fragmentShader: ThinFilterPostProcess.FragmentUrl,
31
+ uniforms: ThinFilterPostProcess.Uniforms,
32
+ });
33
+ /**
34
+ * The matrix to be applied to the image
35
+ */
36
+ this.kernelMatrix = Matrix.Identity();
37
+ }
38
+ bind(noDefaultBindings = false) {
39
+ super.bind(noDefaultBindings);
40
+ this._drawWrapper.effect.setMatrix("kernelMatrix", this.kernelMatrix);
41
+ }
42
+ }
43
+ /**
44
+ * The fragment shader url
45
+ */
46
+ ThinFilterPostProcess.FragmentUrl = "filter";
47
+ /**
48
+ * The list of uniforms used by the effect
49
+ */
50
+ ThinFilterPostProcess.Uniforms = ["kernelMatrix"];
51
+ //# sourceMappingURL=thinFilterPostProcess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thinFilterPostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/thinFilterPostProcess.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,aAAa;IAWjC,cAAc,CAAC,SAAkB,EAAE,IAAoB;QACtE,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,YAAY,IAAY,EAAE,SAAmC,IAAI,EAAE,OAAsC;QACrG,KAAK,CAAC;YACF,GAAG,OAAO;YACV,IAAI;YACJ,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,iBAAkB;YAC3C,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,qBAAqB,CAAC,WAAW;YACjD,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;SAC3C,CAAC,CAAC;QAGP;;WAEG;QACI,iBAAY,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IALxC,CAAC;IAOe,IAAI,CAAC,iBAAiB,GAAG,KAAK;QAC1C,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,MAAO,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3E,CAAC;;AA7CD;;GAEG;AACoB,iCAAW,GAAG,QAAQ,AAAX,CAAY;AAE9C;;GAEG;AACoB,8BAAQ,GAAG,CAAC,cAAc,CAAC,AAAnB,CAAoB","sourcesContent":["import type { Nullable, AbstractEngine, EffectWrapperCreationOptions } from \"core/index\";\r\nimport { EffectWrapper } from \"../Materials/effectRenderer\";\r\nimport { Engine } from \"../Engines/engine\";\r\nimport { Matrix } from \"../Maths/math.vector\";\r\n\r\n/**\r\n * Post process used to apply a kernel filter\r\n */\r\nexport class ThinFilterPostProcess extends EffectWrapper {\r\n /**\r\n * The fragment shader url\r\n */\r\n public static readonly FragmentUrl = \"filter\";\r\n\r\n /**\r\n * The list of uniforms used by the effect\r\n */\r\n public static readonly Uniforms = [\"kernelMatrix\"];\r\n\r\n protected override _gatherImports(useWebGPU: boolean, list: Promise<any>[]) {\r\n if (useWebGPU) {\r\n this._webGPUReady = true;\r\n list.push(import(\"../ShadersWGSL/filter.fragment\"));\r\n } else {\r\n list.push(import(\"../Shaders/filter.fragment\"));\r\n }\r\n }\r\n\r\n /**\r\n * Constructs a new filter post process\r\n * @param name Name of the effect\r\n * @param engine Engine to use to render the effect. If not provided, the last created engine will be used\r\n * @param options Options to configure the effect\r\n */\r\n constructor(name: string, engine: Nullable<AbstractEngine> = null, options?: EffectWrapperCreationOptions) {\r\n super({\r\n ...options,\r\n name,\r\n engine: engine || Engine.LastCreatedEngine!,\r\n useShaderStore: true,\r\n useAsPostProcess: true,\r\n fragmentShader: ThinFilterPostProcess.FragmentUrl,\r\n uniforms: ThinFilterPostProcess.Uniforms,\r\n });\r\n }\r\n\r\n /**\r\n * The matrix to be applied to the image\r\n */\r\n public kernelMatrix = Matrix.Identity();\r\n\r\n public override bind(noDefaultBindings = false) {\r\n super.bind(noDefaultBindings);\r\n this._drawWrapper.effect!.setMatrix(\"kernelMatrix\", this.kernelMatrix);\r\n }\r\n}\r\n"]}
@@ -0,0 +1,52 @@
1
+ import type { Nullable, AbstractEngine, EffectWrapperCreationOptions } from "../index.js";
2
+ import { EffectWrapper } from "../Materials/effectRenderer.js";
3
+ /** Defines operator used for tonemapping */
4
+ export declare enum TonemappingOperator {
5
+ /** Hable */
6
+ Hable = 0,
7
+ /** Reinhard */
8
+ Reinhard = 1,
9
+ /** HejiDawson */
10
+ HejiDawson = 2,
11
+ /** Photographic */
12
+ Photographic = 3
13
+ }
14
+ /**
15
+ * Options used to create a ThinTonemapPostProcess.
16
+ */
17
+ export interface ThinTonemapPostProcessOptions extends EffectWrapperCreationOptions {
18
+ /** Defines the operator to use (default: Reinhard) */
19
+ operator?: TonemappingOperator;
20
+ /** Defines the required exposure adjustment (default: 1.0) */
21
+ exposureAdjustment?: number;
22
+ }
23
+ /**
24
+ * Post process used to apply a tone mapping operator
25
+ */
26
+ export declare class ThinTonemapPostProcess extends EffectWrapper {
27
+ /**
28
+ * The fragment shader url
29
+ */
30
+ static readonly FragmentUrl = "tonemap";
31
+ /**
32
+ * The list of uniforms used by the effect
33
+ */
34
+ static readonly Uniforms: string[];
35
+ protected _gatherImports(useWebGPU: boolean, list: Promise<any>[]): void;
36
+ /**
37
+ * Constructs a new tone mapping post process
38
+ * @param name Name of the effect
39
+ * @param engine Engine to use to render the effect. If not provided, the last created engine will be used
40
+ * @param options Options to configure the effect
41
+ */
42
+ constructor(name: string, engine?: Nullable<AbstractEngine>, options?: ThinTonemapPostProcessOptions);
43
+ /**
44
+ * Gets the operator to use (default: Reinhard)
45
+ */
46
+ readonly operator: TonemappingOperator;
47
+ /**
48
+ * Defines the required exposure adjustment (default: 1.0)
49
+ */
50
+ exposureAdjustment: number;
51
+ bind(noDefaultBindings?: boolean): void;
52
+ }