@needle-tools/engine 4.6.0 → 4.6.1-next.20d54cd

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 (114) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/generateMeshBVH.worker-BaNp_Xtp.js +25 -0
  3. package/dist/{gltf-progressive-Bm9eEfgu.min.js → gltf-progressive-Bl4okF1b.min.js} +1 -1
  4. package/dist/{gltf-progressive-GjIqwSG3.js → gltf-progressive-DSpdn0QT.js} +2 -2
  5. package/dist/{gltf-progressive-Dn6o99rH.umd.cjs → gltf-progressive-P8b8a0qY.umd.cjs} +1 -1
  6. package/dist/needle-engine.bundle-BVrLqIyi.umd.cjs +1575 -0
  7. package/dist/{needle-engine.bundle-DsrPZ9gj.js → needle-engine.bundle-BonYthMO.js} +8850 -8678
  8. package/dist/needle-engine.bundle-CokaG-YG.min.js +1575 -0
  9. package/dist/needle-engine.js +352 -351
  10. package/dist/needle-engine.min.js +1 -1
  11. package/dist/needle-engine.umd.cjs +1 -1
  12. package/dist/{postprocessing-CRQa6Qxn.umd.cjs → postprocessing-CjW23fio.umd.cjs} +18 -18
  13. package/dist/{postprocessing-D6W1EyZ-.js → postprocessing-DYLNOL3W.js} +4 -3
  14. package/dist/{postprocessing-DF8AlRgW.min.js → postprocessing-xYQWCHFu.min.js} +26 -26
  15. package/dist/{three-DMrv-4ar.umd.cjs → three-B_hneGZr.umd.cjs} +4 -4
  16. package/dist/{three-Bz6X1mrw.js → three-DrqIzZTH.js} +4198 -4198
  17. package/dist/{three-Boa-jOq-.min.js → three-DuDKwKB8.min.js} +33 -33
  18. package/dist/{three-examples-GggCDHv0.js → three-examples-B50TT3Iu.js} +5 -5
  19. package/dist/{three-examples-DuVhxqft.min.js → three-examples-DaDLBuy6.min.js} +14 -14
  20. package/dist/{three-examples-C7ryg8vN.umd.cjs → three-examples-X3OadjXB.umd.cjs} +3 -3
  21. package/dist/{three-mesh-ui-CY6Izc7C.min.js → three-mesh-ui-B3p3gyUz.min.js} +1 -1
  22. package/dist/{three-mesh-ui-CwlN0FUC.umd.cjs → three-mesh-ui-CQiIQIlA.umd.cjs} +1 -1
  23. package/dist/{three-mesh-ui-CLNOfsWn.js → three-mesh-ui-CxuWt7m-.js} +1 -1
  24. package/dist/{vendor-zxXa3Dmr.min.js → vendor-BlSxe9JJ.min.js} +3 -3
  25. package/dist/{vendor-BSD1RQIh.js → vendor-BmYIgaS1.js} +3 -3
  26. package/dist/{vendor-DHr4aqIZ.umd.cjs → vendor-Cavtu3CP.umd.cjs} +3 -3
  27. package/lib/engine/engine_assetdatabase.js +3 -1
  28. package/lib/engine/engine_assetdatabase.js.map +1 -1
  29. package/lib/engine/engine_context.d.ts +6 -3
  30. package/lib/engine/engine_context.js +20 -12
  31. package/lib/engine/engine_context.js.map +1 -1
  32. package/lib/engine/engine_three_utils.d.ts +17 -14
  33. package/lib/engine/engine_three_utils.js +106 -53
  34. package/lib/engine/engine_three_utils.js.map +1 -1
  35. package/lib/engine/engine_tonemapping.d.ts +4 -0
  36. package/lib/engine/engine_tonemapping.js +21 -18
  37. package/lib/engine/engine_tonemapping.js.map +1 -1
  38. package/lib/engine/engine_utils.js.map +1 -1
  39. package/lib/engine/engine_utils_screenshot.d.ts +1 -1
  40. package/lib/engine/engine_utils_screenshot.js +11 -2
  41. package/lib/engine/engine_utils_screenshot.js.map +1 -1
  42. package/lib/engine/webcomponents/needle-engine.d.ts +4 -1
  43. package/lib/engine/webcomponents/needle-engine.extras.js +3 -3
  44. package/lib/engine/webcomponents/needle-engine.extras.js.map +1 -1
  45. package/lib/engine/webcomponents/needle-engine.js +11 -21
  46. package/lib/engine/webcomponents/needle-engine.js.map +1 -1
  47. package/lib/engine-components/CameraUtils.js.map +1 -1
  48. package/lib/engine-components/ReflectionProbe.d.ts +2 -1
  49. package/lib/engine-components/ReflectionProbe.js +4 -1
  50. package/lib/engine-components/ReflectionProbe.js.map +1 -1
  51. package/lib/engine-components/Renderer.js +9 -5
  52. package/lib/engine-components/Renderer.js.map +1 -1
  53. package/lib/engine-components/postprocessing/Effects/Antialiasing.js +3 -1
  54. package/lib/engine-components/postprocessing/Effects/Antialiasing.js.map +1 -1
  55. package/lib/engine-components/postprocessing/Effects/BloomEffect.d.ts +2 -2
  56. package/lib/engine-components/postprocessing/Effects/BloomEffect.js +5 -2
  57. package/lib/engine-components/postprocessing/Effects/BloomEffect.js.map +1 -1
  58. package/lib/engine-components/postprocessing/Effects/ColorAdjustments.d.ts +8 -0
  59. package/lib/engine-components/postprocessing/Effects/ColorAdjustments.js +27 -8
  60. package/lib/engine-components/postprocessing/Effects/ColorAdjustments.js.map +1 -1
  61. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.js +1 -0
  62. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.js.map +1 -1
  63. package/lib/engine-components/postprocessing/Effects/Sharpening.d.ts +1 -0
  64. package/lib/engine-components/postprocessing/Effects/Sharpening.js +4 -0
  65. package/lib/engine-components/postprocessing/Effects/Sharpening.js.map +1 -1
  66. package/lib/engine-components/postprocessing/Effects/Tonemapping.d.ts +2 -9
  67. package/lib/engine-components/postprocessing/Effects/Tonemapping.js +29 -73
  68. package/lib/engine-components/postprocessing/Effects/Tonemapping.js.map +1 -1
  69. package/lib/engine-components/postprocessing/Effects/Tonemapping.utils.d.ts +13 -0
  70. package/lib/engine-components/postprocessing/Effects/Tonemapping.utils.js +52 -0
  71. package/lib/engine-components/postprocessing/Effects/Tonemapping.utils.js.map +1 -0
  72. package/lib/engine-components/postprocessing/PostProcessingEffect.d.ts +18 -0
  73. package/lib/engine-components/postprocessing/PostProcessingEffect.js +22 -3
  74. package/lib/engine-components/postprocessing/PostProcessingEffect.js.map +1 -1
  75. package/lib/engine-components/postprocessing/PostProcessingHandler.d.ts +21 -4
  76. package/lib/engine-components/postprocessing/PostProcessingHandler.js +237 -125
  77. package/lib/engine-components/postprocessing/PostProcessingHandler.js.map +1 -1
  78. package/lib/engine-components/postprocessing/Volume.d.ts +2 -1
  79. package/lib/engine-components/postprocessing/Volume.js +51 -33
  80. package/lib/engine-components/postprocessing/Volume.js.map +1 -1
  81. package/lib/engine-components/postprocessing/index.d.ts +1 -0
  82. package/lib/engine-components/postprocessing/index.js +1 -0
  83. package/lib/engine-components/postprocessing/index.js.map +1 -1
  84. package/lib/engine-components/postprocessing/utils.d.ts +43 -0
  85. package/lib/engine-components/postprocessing/utils.js +82 -0
  86. package/lib/engine-components/postprocessing/utils.js.map +1 -1
  87. package/package.json +2 -2
  88. package/plugins/vite/dependency-watcher.js +8 -2
  89. package/src/engine/engine_assetdatabase.ts +3 -1
  90. package/src/engine/engine_context.ts +27 -15
  91. package/src/engine/engine_three_utils.ts +134 -58
  92. package/src/engine/engine_tonemapping.ts +23 -24
  93. package/src/engine/engine_utils.ts +2 -2
  94. package/src/engine/engine_utils_screenshot.ts +13 -3
  95. package/src/engine/webcomponents/needle-engine.extras.ts +3 -3
  96. package/src/engine/webcomponents/needle-engine.ts +14 -25
  97. package/src/engine-components/CameraUtils.ts +3 -3
  98. package/src/engine-components/ReflectionProbe.ts +5 -1
  99. package/src/engine-components/Renderer.ts +10 -7
  100. package/src/engine-components/postprocessing/Effects/Antialiasing.ts +3 -1
  101. package/src/engine-components/postprocessing/Effects/BloomEffect.ts +6 -4
  102. package/src/engine-components/postprocessing/Effects/ColorAdjustments.ts +24 -13
  103. package/src/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.ts +1 -0
  104. package/src/engine-components/postprocessing/Effects/Sharpening.ts +5 -0
  105. package/src/engine-components/postprocessing/Effects/Tonemapping.ts +29 -81
  106. package/src/engine-components/postprocessing/Effects/Tonemapping.utils.ts +60 -0
  107. package/src/engine-components/postprocessing/PostProcessingEffect.ts +23 -3
  108. package/src/engine-components/postprocessing/PostProcessingHandler.ts +268 -132
  109. package/src/engine-components/postprocessing/Volume.ts +54 -38
  110. package/src/engine-components/postprocessing/index.ts +2 -1
  111. package/src/engine-components/postprocessing/utils.ts +102 -2
  112. package/dist/generateMeshBVH.worker-Cdfpaq5W.js +0 -25
  113. package/dist/needle-engine.bundle-BDO_N7gN.min.js +0 -1559
  114. package/dist/needle-engine.bundle-CoJqbtmp.umd.cjs +0 -1559
@@ -1 +1 @@
1
- {"version":3,"file":"BloomEffect.js","sourceRoot":"","sources":["../../../../src/engine-components/postprocessing/Effects/BloomEffect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BloomEffect.js","sourceRoot":"","sources":["../../../../src/engine-components/postprocessing/Effects/BloomEffect.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,15 @@ import { VolumeParameter } from "../VolumeParameter.js";
6
6
  */
7
7
  export declare class ColorAdjustments extends PostProcessingEffect {
8
8
  get typeName(): string;
9
+ /**
10
+ * Whether values for contrast, hueshift or saturation are remapped to a different range.
11
+ */
12
+ remap: boolean;
9
13
  readonly postExposure: VolumeParameter;
14
+ /**
15
+ * Range -1 to 1, where 0 is the default value, -1 is the lowest contrast and 1 is the highest contrast.
16
+ * @default 0
17
+ */
10
18
  readonly contrast: VolumeParameter;
11
19
  readonly hueShift: VolumeParameter;
12
20
  readonly saturation: VolumeParameter;
@@ -4,7 +4,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { NoToneMapping } from "three";
8
7
  import { MODULES } from "../../../engine/engine_modules.js";
9
8
  import { serializable } from "../../../engine/engine_serialization.js";
10
9
  import { PostProcessingEffect } from "../PostProcessingEffect.js";
@@ -19,16 +18,28 @@ export class ColorAdjustments extends PostProcessingEffect {
19
18
  get typeName() {
20
19
  return "ColorAdjustments";
21
20
  }
22
- postExposure = new VolumeParameter(0);
21
+ /**
22
+ * Whether values for contrast, hueshift or saturation are remapped to a different range.
23
+ */
24
+ remap = true;
25
+ postExposure = new VolumeParameter(1);
26
+ /**
27
+ * Range -1 to 1, where 0 is the default value, -1 is the lowest contrast and 1 is the highest contrast.
28
+ * @default 0
29
+ */
23
30
  contrast = new VolumeParameter(0);
24
31
  hueShift = new VolumeParameter(0);
25
32
  saturation = new VolumeParameter(0);
26
33
  init() {
27
34
  this.postExposure.valueProcessor = v => {
35
+ if (!this.remap)
36
+ return v;
28
37
  v = Math.pow(2.0, v);
29
38
  return v;
30
39
  };
31
40
  this.contrast.valueProcessor = (v) => {
41
+ if (!this.remap)
42
+ return v;
32
43
  let divisor = 1;
33
44
  if (v > 0)
34
45
  divisor = 200;
@@ -39,9 +50,15 @@ export class ColorAdjustments extends PostProcessingEffect {
39
50
  return val;
40
51
  };
41
52
  this.contrast.defaultValue = 0;
42
- this.hueShift.valueProcessor = (v) => Math.PI * v / 180;
53
+ this.hueShift.valueProcessor = (v) => {
54
+ if (!this.remap)
55
+ return v;
56
+ return Math.PI * v / 180;
57
+ };
43
58
  this.hueShift.defaultValue = 0;
44
59
  this.saturation.valueProcessor = (v) => {
60
+ if (!this.remap)
61
+ return v;
45
62
  if (v < 0)
46
63
  return (v / 100);
47
64
  const sat = (v / (100 * Math.PI));
@@ -52,8 +69,8 @@ export class ColorAdjustments extends PostProcessingEffect {
52
69
  onCreateEffect() {
53
70
  const effects = [];
54
71
  // TODO: do we still need this?
55
- if (this.context.renderer.toneMapping !== NoToneMapping && this.postExposure.overrideState)
56
- this.context.renderer.toneMapping = NoToneMapping;
72
+ // if (this.context.renderer.toneMapping !== NoToneMapping && this.postExposure.overrideState)
73
+ // this.context.renderer.toneMapping = NoToneMapping;
57
74
  // find the ToneMapping effect because we need it to apply post exposure
58
75
  let tonemappingEffect = this.postprocessingContext?.components.find(c => c instanceof ToneMappingEffect);
59
76
  if (!tonemappingEffect) {
@@ -63,17 +80,19 @@ export class ColorAdjustments extends PostProcessingEffect {
63
80
  // We need this effect if someone uses ACES or AgX tonemapping;
64
81
  // problem is that we CAN'T use this effect for the "Linear" case, the package expects that in this case you remove the effect
65
82
  this.postExposure.onValueChanged = (v) => {
66
- if (this.postExposure.overrideState) {
83
+ if (this.postExposure.overrideState && tonemappingEffect) {
67
84
  tonemappingEffect.exposure.value = v;
68
85
  }
86
+ else
87
+ console.warn("[PostProcessing] PostExposure is set to override but no ToneMappingEffect found in the postprocessing stack. Please add a ToneMappingEffect to your postprocessing stack to use PostExposure.");
69
88
  };
70
89
  const brightnesscontrast = new MODULES.POSTPROCESSING.MODULE.BrightnessContrastEffect();
71
90
  this.contrast.onValueChanged = v => brightnesscontrast.contrast = v;
72
91
  const hueSaturationEffect = new MODULES.POSTPROCESSING.MODULE.HueSaturationEffect();
73
- effects.push(brightnesscontrast);
74
- effects.push(hueSaturationEffect);
75
92
  this.hueShift.onValueChanged = v => hueSaturationEffect.hue = v;
76
93
  this.saturation.onValueChanged = v => hueSaturationEffect.saturation = v;
94
+ effects.push(brightnesscontrast);
95
+ effects.push(hueSaturationEffect);
77
96
  return effects;
78
97
  }
79
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ColorAdjustments.js","sourceRoot":"","sources":["../../../../src/engine-components/postprocessing/Effects/ColorAdjustments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ColorAdjustments.js","sourceRoot":"","sources":["../../../../src/engine-components/postprocessing/Effects/ColorAdjustments.ts"],"names":[],"mappings":"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"}
@@ -95,6 +95,7 @@ export class ScreenSpaceAmbientOcclusionN8 extends PostProcessingEffect {
95
95
  const width = this.context.domWidth;
96
96
  const height = this.context.domHeight;
97
97
  const ssao = this._ssao = new MODULES.POSTPROCESSING_AO.MODULE.N8AOPostPass(this.context.scene, cam, width, height);
98
+ ssao.name = "SSAO N8";
98
99
  const mode = ScreenSpaceAmbientOcclusionN8QualityMode[this.quality];
99
100
  ssao.setQualityMode(mode);
100
101
  ssao.configuration.transparencyAware = false;
@@ -1 +1 @@
1
- {"version":3,"file":"ScreenspaceAmbientOcclusionN8.js","sourceRoot":"","sources":["../../../../src/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ScreenspaceAmbientOcclusionN8.js","sourceRoot":"","sources":["../../../../src/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { PostProcessingEffect } from "../PostProcessingEffect.js";
5
5
  */
6
6
  export declare class SharpeningEffect extends PostProcessingEffect {
7
7
  get typeName(): string;
8
+ order: number | undefined;
8
9
  private _effect?;
9
10
  onCreateEffect(): any;
10
11
  private get effect();
@@ -4,10 +4,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
+ import { EffectAttribute } from "postprocessing";
7
8
  import { Uniform } from "three";
8
9
  import { MODULES } from "../../../engine/engine_modules.js";
9
10
  import { serializable } from "../../../engine/engine_serialization.js";
10
11
  import { PostProcessingEffect } from "../PostProcessingEffect.js";
12
+ import { PostProcessingEffectOrder } from "../utils.js";
11
13
  // import type { createSharpeningEffectType } from "./Sharpening.effect";
12
14
  // let __SHARPENING_MODULE: typeof import("./Sharpening.effect");
13
15
  // /** @hidden */
@@ -22,6 +24,7 @@ export class SharpeningEffect extends PostProcessingEffect {
22
24
  get typeName() {
23
25
  return "Sharpening";
24
26
  }
27
+ order = PostProcessingEffectOrder.Sharpening;
25
28
  _effect;
26
29
  onCreateEffect() {
27
30
  this._effect ??= new (createSharpeningEffectType())();
@@ -116,6 +119,7 @@ function createSharpeningEffectType() {
116
119
  ["radius", new Uniform(1)],
117
120
  // ["threshold", new Uniform(0)],
118
121
  ]),
122
+ attributes: EffectAttribute.CONVOLUTION
119
123
  });
120
124
  }
121
125
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Sharpening.js","sourceRoot":"","sources":["../../../../src/engine-components/postprocessing/Effects/Sharpening.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,yEAAyE;AAEzE,iEAAiE;AACjE,iBAAiB;AACjB,qGAAqG;AACrG,oCAAoC;AACpC,IAAI;AAEJ;;;GAGG;AACH,MAAM,OAAO,gBAAiB,SAAQ,oBAAoB;IAEtD,IAAI,QAAQ;QACR,OAAO,YAAY,CAAC;IACxB,CAAC;IAEO,OAAO,CAAO;IAEtB,cAAc;QACV,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,0BAA0B,EAAE,CAAC,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,IAAY,MAAM;QACd,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAGD,IAAI,MAAM,CAAC,KAAa;QACpB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,IAAI,CAAC,OAAO;YACZ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,KAAK,GAAG,KAAK,CAAC;IAC3D,CAAC;IACD,IAAI,MAAM;QACN,IAAI,IAAI,CAAC,OAAO;YACZ,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,KAAK,CAAC;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IACO,OAAO,GAAG,CAAC,CAAC;IAGpB,IAAI,MAAM,CAAC,KAAa;QACpB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,IAAI,CAAC,OAAO;YACZ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,KAAK,GAAG,KAAK,CAAC;IAC3D,CAAC;IACD,IAAI,MAAM;QACN,IAAI,IAAI,CAAC,OAAO;YACZ,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,KAAK,CAAC;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IACO,OAAO,GAAG,CAAC,CAAC;CAUvB;AAjCG;IADC,YAAY,EAAE;8CAKd;AASD;IADC,YAAY,EAAE;8CAKd;AAoBL,SAAS,0BAA0B;IAE/B,MAAM,IAAI,GAAG;;;;;KAKZ,CAAA;IAED,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuCZ,CAAA;IAED,MAAM,iBAAkB,SAAQ,OAAO,CAAC,cAAc,CAAC,MAAO,CAAC,MAAM;QACjE;YACI,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE;gBACtB,YAAY,EAAE,IAAI;gBAClB,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM;gBACjE,QAAQ,EAAE,IAAI,GAAG,CAAuB;oBACpC,CAAC,QAAQ,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC1B,CAAC,QAAQ,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC1B,iCAAiC;iBACpC,CAAC;aACL,CAAC,CAAC;QACP,CAAC;KACJ;IACD,OAAO,iBAAiB,CAAC;AAG7B,CAAC"}
1
+ {"version":3,"file":"Sharpening.js","sourceRoot":"","sources":["../../../../src/engine-components/postprocessing/Effects/Sharpening.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,yEAAyE;AAEzE,iEAAiE;AACjE,iBAAiB;AACjB,qGAAqG;AACrG,oCAAoC;AACpC,IAAI;AAEJ;;;GAGG;AACH,MAAM,OAAO,gBAAiB,SAAQ,oBAAoB;IAEtD,IAAI,QAAQ;QACR,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,KAAK,GAAuB,yBAAyB,CAAC,UAAU,CAAC;IAEzD,OAAO,CAAO;IAEtB,cAAc;QACV,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,0BAA0B,EAAE,CAAC,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,IAAY,MAAM;QACd,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAGD,IAAI,MAAM,CAAC,KAAa;QACpB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,IAAI,CAAC,OAAO;YACZ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,KAAK,GAAG,KAAK,CAAC;IAC3D,CAAC;IACD,IAAI,MAAM;QACN,IAAI,IAAI,CAAC,OAAO;YACZ,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,KAAK,CAAC;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IACO,OAAO,GAAG,CAAC,CAAC;IAGpB,IAAI,MAAM,CAAC,KAAa;QACpB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,IAAI,CAAC,OAAO;YACZ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,KAAK,GAAG,KAAK,CAAC;IAC3D,CAAC;IACD,IAAI,MAAM;QACN,IAAI,IAAI,CAAC,OAAO;YACZ,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,KAAK,CAAC;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IACO,OAAO,GAAG,CAAC,CAAC;CAUvB;AAjCG;IADC,YAAY,EAAE;8CAKd;AASD;IADC,YAAY,EAAE;8CAKd;AAoBL,SAAS,0BAA0B;IAE/B,MAAM,IAAI,GAAG;;;;;KAKZ,CAAA;IAED,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuCZ,CAAA;IAED,MAAM,iBAAkB,SAAQ,OAAO,CAAC,cAAc,CAAC,MAAO,CAAC,MAAM;QACjE;YACI,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE;gBACtB,YAAY,EAAE,IAAI;gBAClB,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM;gBACjE,QAAQ,EAAE,IAAI,GAAG,CAAuB;oBACpC,CAAC,QAAQ,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC1B,CAAC,QAAQ,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC1B,iCAAiC;iBACpC,CAAC;gBACF,UAAU,EAAE,eAAe,CAAC,WAAW;aAC1C,CAAC,CAAC;QACP,CAAC;KACJ;IACD,OAAO,iBAAiB,CAAC;AAG7B,CAAC"}
@@ -1,13 +1,6 @@
1
1
  import { EffectProviderResult, PostProcessingEffect } from "../PostProcessingEffect.js";
2
2
  import { VolumeParameter } from "../VolumeParameter.js";
3
- declare enum NEToneMappingMode {
4
- None = 0,
5
- Neutral = 1,
6
- ACES = 2,
7
- AgX = 3,
8
- KhronosNeutral = 4
9
- }
10
- type NEToneMappingModeNames = keyof typeof NEToneMappingMode;
3
+ import { NEToneMappingModeNames } from "./Tonemapping.utils.js";
11
4
  /**
12
5
  * @category Effects
13
6
  * @group Components
@@ -20,7 +13,7 @@ export declare class ToneMappingEffect extends PostProcessingEffect {
20
13
  setMode(mode: NEToneMappingModeNames): this;
21
14
  get isToneMapping(): boolean;
22
15
  onEffectEnabled(): void;
16
+ private _tonemappingEffect;
23
17
  onCreateEffect(): EffectProviderResult | undefined;
24
18
  onBeforeRender(): void;
25
19
  }
26
- export {};
@@ -4,59 +4,16 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { ACESFilmicToneMapping, AgXToneMapping, LinearToneMapping, NeutralToneMapping, ReinhardToneMapping } from "three";
8
7
  import { MODULES } from "../../../engine/engine_modules.js";
9
8
  import { serializable } from "../../../engine/engine_serialization.js";
9
+ import { nameToThreeTonemapping } from "../../../engine/engine_tonemapping.js";
10
10
  import { getParam } from "../../../engine/engine_utils.js";
11
11
  import { PostProcessingEffect } from "../PostProcessingEffect.js";
12
12
  import { findPostProcessingManager } from "../utils.js";
13
13
  import { VolumeParameter } from "../VolumeParameter.js";
14
14
  import { registerCustomEffectType } from "../VolumeProfile.js";
15
+ import { NEToneMappingMode, threeToNeedleToneMapping, threeToneMappingToEffectMode, toThreeToneMapping } from "./Tonemapping.utils.js";
15
16
  const debug = getParam("debugpost");
16
- var NEToneMappingMode;
17
- (function (NEToneMappingMode) {
18
- NEToneMappingMode[NEToneMappingMode["None"] = 0] = "None";
19
- NEToneMappingMode[NEToneMappingMode["Neutral"] = 1] = "Neutral";
20
- NEToneMappingMode[NEToneMappingMode["ACES"] = 2] = "ACES";
21
- NEToneMappingMode[NEToneMappingMode["AgX"] = 3] = "AgX";
22
- NEToneMappingMode[NEToneMappingMode["KhronosNeutral"] = 4] = "KhronosNeutral";
23
- })(NEToneMappingMode || (NEToneMappingMode = {}));
24
- function toThreeToneMapping(mode) {
25
- switch (mode) {
26
- case NEToneMappingMode.None:
27
- return LinearToneMapping;
28
- case NEToneMappingMode.Neutral:
29
- return ReinhardToneMapping;
30
- case NEToneMappingMode.ACES:
31
- return ACESFilmicToneMapping;
32
- case NEToneMappingMode.AgX:
33
- return AgXToneMapping;
34
- case NEToneMappingMode.KhronosNeutral:
35
- return NeutralToneMapping;
36
- default:
37
- return NeutralToneMapping;
38
- }
39
- }
40
- function threeToNeToneMapping(mode) {
41
- switch (mode) {
42
- case LinearToneMapping: return NEToneMappingMode.None;
43
- case ACESFilmicToneMapping: return NEToneMappingMode.ACES;
44
- case AgXToneMapping: return NEToneMappingMode.AgX;
45
- case NeutralToneMapping: return NEToneMappingMode.Neutral;
46
- case ReinhardToneMapping: return NEToneMappingMode.Neutral;
47
- default: return NEToneMappingMode.None;
48
- }
49
- }
50
- function threeToneMappingToEffectMode(mode) {
51
- switch (mode) {
52
- case LinearToneMapping: return MODULES.POSTPROCESSING.MODULE.ToneMappingMode.LINEAR;
53
- case ACESFilmicToneMapping: return MODULES.POSTPROCESSING.MODULE.ToneMappingMode.ACES_FILMIC;
54
- case AgXToneMapping: return MODULES.POSTPROCESSING.MODULE.ToneMappingMode.AGX;
55
- case NeutralToneMapping: return MODULES.POSTPROCESSING.MODULE.ToneMappingMode.NEUTRAL;
56
- case ReinhardToneMapping: return MODULES.POSTPROCESSING.MODULE.ToneMappingMode.REINHARD;
57
- default: return MODULES.POSTPROCESSING.MODULE.ToneMappingMode.LINEAR;
58
- }
59
- }
60
17
  /**
61
18
  * @category Effects
62
19
  * @group Components
@@ -71,7 +28,7 @@ export class ToneMappingEffect extends PostProcessingEffect {
71
28
  setMode(mode) {
72
29
  const enumValue = NEToneMappingMode[mode];
73
30
  if (enumValue === undefined) {
74
- console.error("Invalid ToneMapping mode", mode);
31
+ console.error("[PostProcessing] Invalid ToneMapping mode", mode);
75
32
  return this;
76
33
  }
77
34
  this.mode.value = enumValue;
@@ -86,47 +43,46 @@ export class ToneMappingEffect extends PostProcessingEffect {
86
43
  return;
87
44
  super.onEffectEnabled(ppmanager);
88
45
  }
46
+ _tonemappingEffect = null;
89
47
  onCreateEffect() {
90
- // TODO: this should be done in the PostProcessingHandler
91
- if (this.postprocessingContext) {
92
- for (const other of this.postprocessingContext.components) {
93
- // If we're the first tonemapping effect it's all good
94
- if (other === this)
95
- break;
96
- // If another tonemapping effect is found, warn the user
97
- if (other != this && other instanceof ToneMappingEffect) {
98
- console.warn("Multiple tonemapping effects found in the same postprocessing stack: Please check your scene setup.", { activeEffect: other, ignoredEffect: this });
99
- return undefined;
100
- }
101
- }
102
- }
103
48
  // ensure the effect tonemapping value is initialized
104
49
  if (this.mode.isInitialized == false) {
105
- const init = threeToNeToneMapping(this.context.renderer.toneMapping);
106
- this.mode.initialize(init);
50
+ const mode = threeToNeedleToneMapping(this.context.renderer.toneMapping);
51
+ if (debug)
52
+ console.log("[PostProcessing] Initializing ToneMapping mode to renderer.toneMapping", this.context.renderer.toneMapping + " → " + mode);
53
+ this.mode.initialize(mode);
107
54
  }
55
+ this._tonemappingEffect?.dispose();
108
56
  const threeMode = toThreeToneMapping(this.mode.value);
109
- const tonemapping = new MODULES.POSTPROCESSING.MODULE.ToneMappingEffect({
57
+ const tonemapping = this._tonemappingEffect = new MODULES.POSTPROCESSING.MODULE.ToneMappingEffect({
110
58
  mode: threeToneMappingToEffectMode(threeMode),
111
59
  });
112
60
  this.mode.onValueChanged = (newValue) => {
113
- const threeMode = toThreeToneMapping(newValue);
114
- tonemapping.mode = threeToneMappingToEffectMode(threeMode);
61
+ if (typeof newValue === "string") {
62
+ newValue = nameToThreeTonemapping(newValue);
63
+ tonemapping.mode = threeToneMappingToEffectMode(newValue);
64
+ }
65
+ else {
66
+ const threeMode = toThreeToneMapping(newValue);
67
+ tonemapping.mode = threeToneMappingToEffectMode(threeMode);
68
+ }
69
+ tonemapping.name = "ToneMapping (" + NEToneMappingMode[newValue] + ")";
115
70
  if (debug)
116
- console.log("ToneMapping mode changed to", NEToneMappingMode[newValue], threeMode, tonemapping.mode);
71
+ console.log("[PostProcessing] ToneMapping mode changed to", NEToneMappingMode[newValue], threeMode, tonemapping.mode);
117
72
  };
118
73
  if (debug)
119
- console.log("Use ToneMapping", NEToneMappingMode[this.mode.value], threeMode, tonemapping.mode, "renderer.tonemapping: " + this.context.renderer.toneMapping);
120
- this.exposure.onValueChanged = (newValue) => {
121
- this.context.renderer.toneMappingExposure = newValue;
122
- };
74
+ console.log("[PostProcessing] Use ToneMapping", NEToneMappingMode[this.mode.value], threeMode, tonemapping.mode, "renderer.tonemapping: " + this.context.renderer.toneMapping);
123
75
  return tonemapping;
124
76
  }
125
77
  onBeforeRender() {
126
- if (this.mode.overrideState)
127
- this.context.renderer.toneMapping = toThreeToneMapping(this.mode.value);
128
- if (this.exposure.overrideState && this.exposure.value !== undefined)
129
- this.context.renderer.toneMappingExposure = this.exposure.value;
78
+ if (this._tonemappingEffect && this.postprocessingContext?.handler.getEffectIsActive(this._tonemappingEffect)) {
79
+ if (this.mode.overrideState)
80
+ this.context.renderer.toneMapping = toThreeToneMapping(this.mode.value);
81
+ if (this.exposure.overrideState && this.exposure.value !== undefined) {
82
+ const newValue = Math.max(0.01, this.exposure.value);
83
+ this.context.renderer.toneMappingExposure = newValue;
84
+ }
85
+ }
130
86
  }
131
87
  }
132
88
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"Tonemapping.js","sourceRoot":"","sources":["../../../../src/engine-components/postprocessing/Effects/Tonemapping.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tonemapping.js","sourceRoot":"","sources":["../../../../src/engine-components/postprocessing/Effects/Tonemapping.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { ToneMappingMode } from "postprocessing";
2
+ import { ToneMapping } from "three";
3
+ export declare enum NEToneMappingMode {
4
+ None = 0,
5
+ Neutral = 1,
6
+ ACES = 2,
7
+ AgX = 3,
8
+ KhronosNeutral = 4
9
+ }
10
+ export type NEToneMappingModeNames = keyof typeof NEToneMappingMode;
11
+ export declare function toThreeToneMapping(mode: NEToneMappingMode | undefined): 1 | 2 | 4 | 6 | 7;
12
+ export declare function threeToNeedleToneMapping(mode: ToneMapping | number | undefined): NEToneMappingMode;
13
+ export declare function threeToneMappingToEffectMode(mode: number | undefined): ToneMappingMode;
@@ -0,0 +1,52 @@
1
+ import { ACESFilmicToneMapping, AgXToneMapping, LinearToneMapping, NeutralToneMapping, ReinhardToneMapping } from "three";
2
+ import { MODULES } from "../../../engine/engine_modules.js";
3
+ export var NEToneMappingMode;
4
+ (function (NEToneMappingMode) {
5
+ NEToneMappingMode[NEToneMappingMode["None"] = 0] = "None";
6
+ NEToneMappingMode[NEToneMappingMode["Neutral"] = 1] = "Neutral";
7
+ NEToneMappingMode[NEToneMappingMode["ACES"] = 2] = "ACES";
8
+ NEToneMappingMode[NEToneMappingMode["AgX"] = 3] = "AgX";
9
+ NEToneMappingMode[NEToneMappingMode["KhronosNeutral"] = 4] = "KhronosNeutral";
10
+ })(NEToneMappingMode || (NEToneMappingMode = {}));
11
+ const unknownTonemappingWarning = new Map();
12
+ export function toThreeToneMapping(mode) {
13
+ switch (mode) {
14
+ case NEToneMappingMode.None:
15
+ return LinearToneMapping;
16
+ case NEToneMappingMode.Neutral:
17
+ return ReinhardToneMapping;
18
+ case NEToneMappingMode.ACES:
19
+ return ACESFilmicToneMapping;
20
+ case NEToneMappingMode.AgX:
21
+ return AgXToneMapping;
22
+ case NEToneMappingMode.KhronosNeutral:
23
+ return NeutralToneMapping;
24
+ default:
25
+ if (!unknownTonemappingWarning.has(mode)) {
26
+ unknownTonemappingWarning.set(mode, true);
27
+ console.warn("[Postprocessing] Unknown tone mapping mode", mode);
28
+ }
29
+ return NeutralToneMapping;
30
+ }
31
+ }
32
+ export function threeToNeedleToneMapping(mode) {
33
+ switch (mode) {
34
+ case LinearToneMapping: return NEToneMappingMode.None;
35
+ case ACESFilmicToneMapping: return NEToneMappingMode.ACES;
36
+ case AgXToneMapping: return NEToneMappingMode.AgX;
37
+ case NeutralToneMapping: return NEToneMappingMode.Neutral;
38
+ case ReinhardToneMapping: return NEToneMappingMode.Neutral;
39
+ default: return NEToneMappingMode.None;
40
+ }
41
+ }
42
+ export function threeToneMappingToEffectMode(mode) {
43
+ switch (mode) {
44
+ case LinearToneMapping: return MODULES.POSTPROCESSING.MODULE.ToneMappingMode.LINEAR;
45
+ case ACESFilmicToneMapping: return MODULES.POSTPROCESSING.MODULE.ToneMappingMode.ACES_FILMIC;
46
+ case AgXToneMapping: return MODULES.POSTPROCESSING.MODULE.ToneMappingMode.AGX;
47
+ case NeutralToneMapping: return MODULES.POSTPROCESSING.MODULE.ToneMappingMode.NEUTRAL;
48
+ case ReinhardToneMapping: return MODULES.POSTPROCESSING.MODULE.ToneMappingMode.REINHARD;
49
+ default: return MODULES.POSTPROCESSING.MODULE.ToneMappingMode.LINEAR;
50
+ }
51
+ }
52
+ //# sourceMappingURL=Tonemapping.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tonemapping.utils.js","sourceRoot":"","sources":["../../../../src/engine-components/postprocessing/Effects/Tonemapping.utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,mBAAmB,EAAe,MAAM,OAAO,CAAC;AAEvI,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAE5D,MAAM,CAAN,IAAY,iBAMX;AAND,WAAY,iBAAiB;IACzB,yDAAQ,CAAA;IACR,+DAAW,CAAA;IACX,yDAAQ,CAAA;IACR,uDAAO,CAAA;IACP,6EAAkB,CAAA;AACtB,CAAC,EANW,iBAAiB,KAAjB,iBAAiB,QAM5B;AAGD,MAAM,yBAAyB,GAAG,IAAI,GAAG,EAAgB,CAAC;AAE1D,MAAM,UAAU,kBAAkB,CAAC,IAAmC;IAClE,QAAQ,IAAI,EAAE;QACV,KAAK,iBAAiB,CAAC,IAAI;YACvB,OAAO,iBAAiB,CAAC;QAC7B,KAAK,iBAAiB,CAAC,OAAO;YAC1B,OAAO,mBAAmB,CAAC;QAC/B,KAAK,iBAAiB,CAAC,IAAI;YACvB,OAAO,qBAAqB,CAAC;QACjC,KAAK,iBAAiB,CAAC,GAAG;YACtB,OAAO,cAAc,CAAC;QAC1B,KAAK,iBAAiB,CAAC,cAAc;YACjC,OAAO,kBAAkB,CAAC;QAC9B;YACI,IAAG,CAAC,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACrC,yBAAyB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC1C,OAAO,CAAC,IAAI,CAAC,4CAA4C,EAAE,IAAI,CAAC,CAAC;aACpE;YACD,OAAO,kBAAkB,CAAC;KACjC;AACL,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAsC;IAC3E,QAAQ,IAAI,EAAE;QACV,KAAK,iBAAiB,CAAC,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC;QACtD,KAAK,qBAAqB,CAAC,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC;QAC1D,KAAK,cAAc,CAAC,CAAC,OAAO,iBAAiB,CAAC,GAAG,CAAC;QAClD,KAAK,kBAAkB,CAAC,CAAC,OAAO,iBAAiB,CAAC,OAAO,CAAC;QAC1D,KAAK,mBAAmB,CAAC,CAAC,OAAO,iBAAiB,CAAC,OAAO,CAAC;QAC3D,OAAO,CAAC,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC;KAC1C;AAEL,CAAC;AAGD,MAAM,UAAU,4BAA4B,CAAC,IAAwB;IACjE,QAAQ,IAAI,EAAE;QACV,KAAK,iBAAiB,CAAC,CAAC,OAAO,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC;QACpF,KAAK,qBAAqB,CAAC,CAAC,OAAO,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC;QAC7F,KAAK,cAAc,CAAC,CAAC,OAAO,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC;QAC9E,KAAK,kBAAkB,CAAC,CAAC,OAAO,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC;QACtF,KAAK,mBAAmB,CAAC,CAAC,OAAO,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC;QACxF,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC;KACxE;AACL,CAAC"}
@@ -43,6 +43,24 @@ export interface IEffectProvider {
43
43
  */
44
44
  export declare abstract class PostProcessingEffect extends Component implements IEffectProvider, IEditorModification {
45
45
  get isPostProcessingEffect(): boolean;
46
+ /**
47
+ * The order of this effect. The higher the order the later the effect will be applied in the post processing stack.
48
+ * This can be used to control the order of effects when multiple effects are applied.
49
+ * It is recommended to use the PostProcessingEffectOrder constant to order your custom effects before or after built-in effects.
50
+ * @default `undefined` (no specific order set, will be applied in the order of registration)
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * import { PostProcessingEffectOrder } from "@needle-tools/engine"
55
+ *
56
+ * export class MyCustomEffect extends PostProcessingEffect {
57
+ * order: PostProcessingEffectOrder.Bloom + 1; // render after bloom
58
+ * // This will ensure that the effect is applied after the bloom effect in the post processing stack.
59
+ * // ... the rest of your effect code
60
+ * }
61
+ * ```
62
+ */
63
+ order: number | undefined;
46
64
  constructor(params?: any);
47
65
  abstract get typeName(): string;
48
66
  /**
@@ -41,6 +41,24 @@ const debug = getParam("debugpost");
41
41
  */
42
42
  export class PostProcessingEffect extends Component {
43
43
  get isPostProcessingEffect() { return true; }
44
+ /**
45
+ * The order of this effect. The higher the order the later the effect will be applied in the post processing stack.
46
+ * This can be used to control the order of effects when multiple effects are applied.
47
+ * It is recommended to use the PostProcessingEffectOrder constant to order your custom effects before or after built-in effects.
48
+ * @default `undefined` (no specific order set, will be applied in the order of registration)
49
+ *
50
+ * @example
51
+ * ```typescript
52
+ * import { PostProcessingEffectOrder } from "@needle-tools/engine"
53
+ *
54
+ * export class MyCustomEffect extends PostProcessingEffect {
55
+ * order: PostProcessingEffectOrder.Bloom + 1; // render after bloom
56
+ * // This will ensure that the effect is applied after the bloom effect in the post processing stack.
57
+ * // ... the rest of your effect code
58
+ * }
59
+ * ```
60
+ */
61
+ order = undefined;
44
62
  constructor(params = undefined) {
45
63
  super();
46
64
  if (params) {
@@ -67,7 +85,7 @@ export class PostProcessingEffect extends Component {
67
85
  onEnable() {
68
86
  super.onEnable();
69
87
  if (debug)
70
- console.warn("onEnable effect", this, this.__internalDidAwakeAndStart);
88
+ console.warn("Enable", this.constructor.name + (!this.__internalDidAwakeAndStart ? " (awake)" : ""));
71
89
  // Dont override the serialized value by enabling (we could also just disable this component / map enabled to active)
72
90
  if (this.__internalDidAwakeAndStart)
73
91
  this.active = true;
@@ -76,7 +94,7 @@ export class PostProcessingEffect extends Component {
76
94
  onDisable() {
77
95
  super.onDisable();
78
96
  if (debug)
79
- console.warn("onDisable effect", this);
97
+ console.warn("Disable", this.constructor.name);
80
98
  this._manager?.removeEffect(this);
81
99
  this.active = false;
82
100
  }
@@ -85,7 +103,8 @@ export class PostProcessingEffect extends Component {
85
103
  this._manager = manager;
86
104
  else if (!this._manager)
87
105
  this._manager = getPostProcessingManager(this);
88
- this._manager?.addEffect(this);
106
+ this._manager.addEffect(this);
107
+ this._manager.dirty = true;
89
108
  }
90
109
  /** override to initialize bindings on parameters */
91
110
  init() { }
@@ -1 +1 @@
1
- {"version":3,"file":"PostProcessingEffect.js","sourceRoot":"","sources":["../../../src/engine-components/postprocessing/PostProcessingEffect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostProcessingEffect.js","sourceRoot":"","sources":["../../../src/engine-components/postprocessing/PostProcessingEffect.ts"],"names":[],"mappings":"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"}