@needle-tools/engine 4.6.1-next.26cf56c → 4.6.1-next.2b6c7ea

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 (41) hide show
  1. package/dist/{needle-engine.bundle-B23LP9xh.min.js → needle-engine.bundle-BzX-r0pE.min.js} +170 -170
  2. package/dist/{needle-engine.bundle-gJVfKnbJ.js → needle-engine.bundle-CHrGRiUE.js} +8208 -8156
  3. package/dist/{needle-engine.bundle-B0Kku0-E.umd.cjs → needle-engine.bundle-Cyccgqnt.umd.cjs} +146 -146
  4. package/dist/needle-engine.js +342 -341
  5. package/dist/needle-engine.min.js +1 -1
  6. package/dist/needle-engine.umd.cjs +1 -1
  7. package/dist/{postprocessing-BPhSPjAn.umd.cjs → postprocessing-CjW23fio.umd.cjs} +17 -17
  8. package/dist/{postprocessing-XKNCD6By.js → postprocessing-DYLNOL3W.js} +1 -0
  9. package/dist/{postprocessing-DoBd3XIR.min.js → postprocessing-xYQWCHFu.min.js} +26 -26
  10. package/lib/engine/engine_context.d.ts +2 -0
  11. package/lib/engine/engine_context.js +6 -0
  12. package/lib/engine/engine_context.js.map +1 -1
  13. package/lib/engine-components/postprocessing/Effects/Antialiasing.js +2 -1
  14. package/lib/engine-components/postprocessing/Effects/Antialiasing.js.map +1 -1
  15. package/lib/engine-components/postprocessing/Effects/BloomEffect.d.ts +1 -1
  16. package/lib/engine-components/postprocessing/Effects/BloomEffect.js +3 -0
  17. package/lib/engine-components/postprocessing/Effects/BloomEffect.js.map +1 -1
  18. package/lib/engine-components/postprocessing/PostProcessingEffect.d.ts +18 -0
  19. package/lib/engine-components/postprocessing/PostProcessingEffect.js +18 -0
  20. package/lib/engine-components/postprocessing/PostProcessingEffect.js.map +1 -1
  21. package/lib/engine-components/postprocessing/PostProcessingHandler.d.ts +4 -3
  22. package/lib/engine-components/postprocessing/PostProcessingHandler.js +83 -119
  23. package/lib/engine-components/postprocessing/PostProcessingHandler.js.map +1 -1
  24. package/lib/engine-components/postprocessing/Volume.d.ts +0 -1
  25. package/lib/engine-components/postprocessing/Volume.js +48 -36
  26. package/lib/engine-components/postprocessing/Volume.js.map +1 -1
  27. package/lib/engine-components/postprocessing/index.d.ts +1 -0
  28. package/lib/engine-components/postprocessing/index.js +1 -0
  29. package/lib/engine-components/postprocessing/index.js.map +1 -1
  30. package/lib/engine-components/postprocessing/utils.d.ts +40 -0
  31. package/lib/engine-components/postprocessing/utils.js +101 -0
  32. package/lib/engine-components/postprocessing/utils.js.map +1 -1
  33. package/package.json +1 -1
  34. package/src/engine/engine_context.ts +8 -1
  35. package/src/engine-components/postprocessing/Effects/Antialiasing.ts +2 -1
  36. package/src/engine-components/postprocessing/Effects/BloomEffect.ts +4 -2
  37. package/src/engine-components/postprocessing/PostProcessingEffect.ts +19 -0
  38. package/src/engine-components/postprocessing/PostProcessingHandler.ts +94 -123
  39. package/src/engine-components/postprocessing/Volume.ts +52 -42
  40. package/src/engine-components/postprocessing/index.ts +2 -1
  41. package/src/engine-components/postprocessing/utils.ts +121 -2
@@ -3,9 +3,9 @@ import { showBalloonWarning } from "../../engine/debug/index.js";
3
3
  // import { internal_SetSharpeningEffectModule } from "./Effects/Sharpening.js";
4
4
  import { MODULES } from "../../engine/engine_modules.js";
5
5
  import { getParam } from "../../engine/engine_utils.js";
6
+ import { orderEffects } from "./utils.js";
6
7
  globalThis["NEEDLE_USE_POSTPROCESSING"] = globalThis["NEEDLE_USE_POSTPROCESSING"] !== undefined ? globalThis["NEEDLE_USE_POSTPROCESSING"] : true;
7
8
  const debug = getParam("debugpost");
8
- const dontMergePasses = getParam("debugpostpasses");
9
9
  const activeKey = Symbol("needle:postprocessing-handler");
10
10
  const autoclearSetting = Symbol("needle:previous-autoclear-state");
11
11
  /**
@@ -44,7 +44,7 @@ export class PostProcessingHandler {
44
44
  this._isActive = true;
45
45
  return this.onApply(this.context, components);
46
46
  }
47
- unapply() {
47
+ unapply(dispose = true) {
48
48
  if (debug)
49
49
  console.log("Unapplying postprocessing effects");
50
50
  this._isActive = false;
@@ -58,19 +58,22 @@ export class PostProcessingHandler {
58
58
  const active = context[activeKey];
59
59
  if (active === this) {
60
60
  delete context[activeKey];
61
+ // Restore the auto clear setting
62
+ if (typeof context.renderer[autoclearSetting] === "boolean") {
63
+ context.renderer.autoClear = context.renderer[autoclearSetting];
64
+ }
61
65
  }
66
+ this._composer?.removeAllPasses();
67
+ if (dispose)
68
+ this._composer?.dispose();
62
69
  if (context.composer === this._composer) {
63
- context.composer?.dispose();
64
70
  context.composer = null;
65
71
  }
66
- if (typeof context.renderer[autoclearSetting] === "boolean") {
67
- context.renderer.autoClear = context.renderer[autoclearSetting];
68
- }
69
72
  }
70
73
  dispose() {
71
- this.unapply();
74
+ this.unapply(true);
72
75
  for (const effect of this._effects) {
73
- effect.dispose();
76
+ effect.effect.dispose();
74
77
  }
75
78
  this._effects.length = 0;
76
79
  this._composer = null;
@@ -118,10 +121,19 @@ export class PostProcessingHandler {
118
121
  if (!res)
119
122
  continue;
120
123
  if (Array.isArray(res)) {
121
- this._effects.push(...res);
124
+ for (const effect of res) {
125
+ this._effects.push({
126
+ effect,
127
+ priority: component.priority
128
+ });
129
+ }
130
+ }
131
+ else {
132
+ this._effects.push({
133
+ effect: res,
134
+ priority: component.priority
135
+ });
122
136
  }
123
- else
124
- this._effects.push(res);
125
137
  }
126
138
  }
127
139
  else {
@@ -133,7 +145,7 @@ export class PostProcessingHandler {
133
145
  if (this.context.renderer.toneMapping != NoToneMapping) {
134
146
  if (!this._effects.find(e => e instanceof MODULES.POSTPROCESSING.MODULE.ToneMappingEffect)) {
135
147
  const tonemapping = new MODULES.POSTPROCESSING.MODULE.ToneMappingEffect();
136
- this._effects.push(tonemapping);
148
+ this._effects.push({ effect: tonemapping });
137
149
  }
138
150
  }
139
151
  this.applyEffects(context);
@@ -146,9 +158,14 @@ export class PostProcessingHandler {
146
158
  get hasSmaaEffect() { return this._hasSmaaEffect; }
147
159
  /** Build composer passes */
148
160
  applyEffects(context) {
161
+ // Reset state
162
+ this._anyPassHasDepth = false;
163
+ this._anyPassHasNormal = false;
164
+ this._hasSmaaEffect = false;
149
165
  const effectsOrPasses = this._effects;
150
- if (effectsOrPasses.length <= 0)
166
+ if (effectsOrPasses.length <= 0) {
151
167
  return;
168
+ }
152
169
  const camera = context.mainCameraComponent;
153
170
  const renderer = context.renderer;
154
171
  const scene = context.scene;
@@ -156,16 +173,11 @@ export class PostProcessingHandler {
156
173
  // Store the auto clear setting because the postprocessing composer just disables it
157
174
  // and when we disable postprocessing we want to restore the original setting
158
175
  // https://github.com/pmndrs/postprocessing/blob/271944b74b543a5b743a62803a167b60cc6bb4ee/src/core/EffectComposer.js#L230C12-L230C12
159
- renderer[autoclearSetting] = renderer.autoClear;
160
- // Reset state
161
- this._anyPassHasDepth = false;
162
- this._anyPassHasNormal = false;
163
- this._hasSmaaEffect = false;
164
- for (const ef of effectsOrPasses) {
165
- if (ef instanceof MODULES.POSTPROCESSING.MODULE.SMAAEffect) {
166
- this._hasSmaaEffect = true;
167
- }
176
+ // First we need to get the previously set autoClear setting, if it exists
177
+ if (typeof renderer[autoclearSetting] === "boolean") {
178
+ renderer.autoClear = renderer[autoclearSetting];
168
179
  }
180
+ renderer[autoclearSetting] = renderer.autoClear;
169
181
  // create composer and set active on context
170
182
  if (!this._composer) {
171
183
  // const hdrRenderTarget = new WebGLRenderTarget(window.innerWidth, window.innerHeight, { type: HalfFloatType });
@@ -183,6 +195,7 @@ export class PostProcessingHandler {
183
195
  composer.setRenderer(renderer);
184
196
  composer.setMainScene(scene);
185
197
  composer.autoRenderToScreen = true; // Must be enabled because it might be disabled during addPass by the composer itself (depending on the effect's settings or order)
198
+ composer.multisampling = 0;
186
199
  for (const prev of composer.passes)
187
200
  prev.dispose();
188
201
  composer.removeAllPasses();
@@ -191,59 +204,54 @@ export class PostProcessingHandler {
191
204
  screenpass.name = "Render To Screen";
192
205
  screenpass.mainScene = scene;
193
206
  composer.addPass(screenpass);
194
- const automaticEffectsOrdering = true;
195
- if (automaticEffectsOrdering && !dontMergePasses) {
196
- try {
197
- this.orderEffects();
198
- const effects = [];
199
- for (const ef of effectsOrPasses) {
200
- if (ef instanceof MODULES.POSTPROCESSING.MODULE.Effect) {
201
- effects.push(ef);
202
- }
203
- else if (ef instanceof MODULES.POSTPROCESSING.MODULE.Pass) {
204
- ef.renderToScreen = false;
205
- composer.addPass(ef);
206
- }
207
- else {
208
- // seems some effects are not correctly typed, but three can deal with them,
209
- // so we might need to just pass them through
210
- composer.addPass(ef);
211
- }
207
+ try {
208
+ orderEffects(this._effects);
209
+ const effectsToMerge = [];
210
+ let hasConvolutionEffectInArray = false;
211
+ for (const entry of effectsOrPasses) {
212
+ const ef = entry.effect;
213
+ if (ef instanceof MODULES.POSTPROCESSING.MODULE.SMAAEffect) {
214
+ this._hasSmaaEffect = true;
212
215
  }
213
- // create and apply uber pass
214
- if (effects.length > 0) {
215
- const pass = new MODULES.POSTPROCESSING.MODULE.EffectPass(cam, ...effects);
216
- pass.name = effects.map(e => e.name).join(", ");
217
- pass.mainScene = scene;
218
- pass.enabled = true;
219
- pass.renderToScreen = false;
220
- composer.addPass(pass);
216
+ else if (ef instanceof MODULES.POSTPROCESSING.MODULE.NormalPass) {
217
+ this._anyPassHasNormal = true;
221
218
  }
222
- }
223
- catch (e) {
224
- console.error("Error while applying postprocessing effects", e);
225
- composer.removeAllPasses();
226
- }
227
- }
228
- else {
229
- // we still want to sort passes, but we do not want to merge them for debugging
230
- if (automaticEffectsOrdering)
231
- this.orderEffects();
232
- for (const ef of effectsOrPasses) {
233
219
  if (ef instanceof MODULES.POSTPROCESSING.MODULE.Effect) {
234
- const pass = new MODULES.POSTPROCESSING.MODULE.EffectPass(cam, ef);
235
- pass.name = ef.name;
236
- composer.addPass(pass);
220
+ const attributes = ef.getAttributes();
221
+ const convolution = MODULES.POSTPROCESSING.MODULE.EffectAttribute.CONVOLUTION;
222
+ if (attributes & convolution) {
223
+ if (debug)
224
+ console.log("[PostProcessing] Convolution effect detected: " + ef.name, hasConvolutionEffectInArray);
225
+ if (hasConvolutionEffectInArray) {
226
+ hasConvolutionEffectInArray = false;
227
+ if (debug)
228
+ console.log("[PostProcessing] Merging effects with convolution effect in array", effectsToMerge.map(e => e.name).join(", "));
229
+ this.createPassForMergeableEffects(effectsToMerge, composer, cam, scene);
230
+ }
231
+ hasConvolutionEffectInArray = true;
232
+ }
233
+ // Otherwise we can merge it
234
+ effectsToMerge.push(ef);
237
235
  }
238
236
  else if (ef instanceof MODULES.POSTPROCESSING.MODULE.Pass) {
237
+ hasConvolutionEffectInArray = false;
238
+ this.createPassForMergeableEffects(effectsToMerge, composer, cam, scene);
239
239
  ef.renderToScreen = false;
240
240
  composer.addPass(ef);
241
241
  }
242
- else
242
+ else {
243
243
  // seems some effects are not correctly typed, but three can deal with them,
244
- // so we just pass them through
244
+ // so we might need to just pass them through
245
+ hasConvolutionEffectInArray = false;
246
+ this.createPassForMergeableEffects(effectsToMerge, composer, cam, scene);
245
247
  composer.addPass(ef);
248
+ }
246
249
  }
250
+ this.createPassForMergeableEffects(effectsToMerge, composer, cam, scene);
251
+ }
252
+ catch (e) {
253
+ console.error("Error while applying postprocessing effects", e);
254
+ composer.removeAllPasses();
247
255
  }
248
256
  // The last pass is the one that renders to the screen, so we need to set the gamma correction for it (and enable it for all others)
249
257
  for (let i = 0; i < composer.passes.length; i++) {
@@ -257,12 +265,6 @@ export class PostProcessingHandler {
257
265
  pass.autosetGamma = isLast;
258
266
  }
259
267
  this._anyPassHasDepth ||= pass.needsDepthTexture;
260
- if (pass instanceof MODULES.POSTPROCESSING.MODULE.NormalPass) {
261
- this._anyPassHasNormal = true;
262
- }
263
- if (pass instanceof MODULES.POSTPROCESSING.MODULE.SMAAEffect) {
264
- this._hasSmaaEffect = true;
265
- }
266
268
  }
267
269
  // DEBUG LAND BELOW
268
270
  if (debug)
@@ -270,54 +272,17 @@ export class PostProcessingHandler {
270
272
  if (debug)
271
273
  this._onCreateEffectsDebug(this._composer, cam);
272
274
  }
273
- orderEffects() {
274
- if (debug === "verbose")
275
- console.debug("Before ordering effects", [...this._effects]);
276
- // Order of effects for correct results.
277
- // Aligned with https://github.com/pmndrs/postprocessing/wiki/Effect-Merging#effect-execution-order
278
- // We can not put this into global scope because then the module might not yet be initialized
279
- effectsOrder ??= [
280
- MODULES.POSTPROCESSING.MODULE.NormalPass,
281
- MODULES.POSTPROCESSING.MODULE.DepthDownsamplingPass,
282
- MODULES.POSTPROCESSING.MODULE.SMAAEffect,
283
- MODULES.POSTPROCESSING.MODULE.SSAOEffect,
284
- MODULES.POSTPROCESSING_AO.MODULE.N8AOPostPass,
285
- MODULES.POSTPROCESSING.MODULE.TiltShiftEffect,
286
- MODULES.POSTPROCESSING.MODULE.DepthOfFieldEffect,
287
- MODULES.POSTPROCESSING.MODULE.ChromaticAberrationEffect,
288
- MODULES.POSTPROCESSING.MODULE.BloomEffect,
289
- MODULES.POSTPROCESSING.MODULE.SelectiveBloomEffect,
290
- MODULES.POSTPROCESSING.MODULE.VignetteEffect,
291
- MODULES.POSTPROCESSING.MODULE.PixelationEffect,
292
- MODULES.POSTPROCESSING.MODULE.ToneMappingEffect,
293
- MODULES.POSTPROCESSING.MODULE.HueSaturationEffect,
294
- MODULES.POSTPROCESSING.MODULE.BrightnessContrastEffect,
295
- // __SHARPENING_MODULE._SharpeningEffect,
296
- ];
297
- // TODO: enforce correct order of effects (e.g. DOF before Bloom)
298
- const effects = this._effects;
299
- effects.sort((a, b) => {
300
- // we use find index here because sometimes constructor names are prefixed with `_`
301
- // TODO: find a more robust solution that isnt name based (not sure if that exists tho... maybe we must give effect TYPES some priority/index)
302
- const aidx = effectsOrder.findIndex(e => a.constructor.name.endsWith(e.name));
303
- const bidx = effectsOrder.findIndex(e => b.constructor.name.endsWith(e.name));
304
- // Unknown effects should be rendered first
305
- if (aidx < 0) {
306
- if (debug)
307
- console.warn("Unknown effect found: ", a.constructor.name);
308
- return -1;
309
- }
310
- else if (bidx < 0) {
311
- if (debug)
312
- console.warn("Unknown effect found: ", b.constructor.name);
313
- return 1;
314
- }
315
- // if (aidx < 0) return 1;
316
- // if (bidx < 0) return -1;
317
- return aidx - bidx;
318
- });
319
- if (debug === "verbose")
320
- console.debug("After ordering effects", [...this._effects]);
275
+ /** Should be called before `composer.addPass()` to create an effect pass with all previously collected effects that can be merged up to that point */
276
+ createPassForMergeableEffects(effects, composer, camera, scene) {
277
+ if (effects.length > 0) {
278
+ const pass = new MODULES.POSTPROCESSING.MODULE.EffectPass(camera, ...effects);
279
+ pass.name = effects.map(e => e.name).join(", ");
280
+ pass.mainScene = scene;
281
+ pass.enabled = true;
282
+ pass.renderToScreen = false;
283
+ composer.addPass(pass);
284
+ effects.length = 0; // Clear effects after adding them to the pass
285
+ }
321
286
  }
322
287
  _menuEntry = null;
323
288
  _passIndices = null;
@@ -384,5 +349,4 @@ export class PostProcessingHandler {
384
349
  }
385
350
  }
386
351
  }
387
- let effectsOrder = null;
388
352
  //# sourceMappingURL=PostProcessingHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PostProcessingHandler.js","sourceRoot":"","sources":["../../../src/engine-components/postprocessing/PostProcessingHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostProcessingHandler.js","sourceRoot":"","sources":["../../../src/engine-components/postprocessing/PostProcessingHandler.ts"],"names":[],"mappings":"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"}
@@ -80,7 +80,6 @@ export declare class Volume extends Behaviour implements IEditorModificationRece
80
80
  private _rapidApplyCount;
81
81
  private _isDirty;
82
82
  private apply;
83
- private unapply;
84
83
  private _applyPostQueue;
85
84
  /** called from needle editor sync package if its active */
86
85
  onEditorModification(modification: EditorModification): void | boolean | undefined;
@@ -165,44 +165,57 @@ export class Volume extends Behaviour {
165
165
  this.context.composer.setRenderer(this.context.renderer);
166
166
  this.context.composer.setMainScene(this.context.scene);
167
167
  const composer = this.context.composer;
168
- // If the postprocessing handler is using depth+normals (e.g. with SMAA) we ALWAYS disable multisampling to avoid ugly edges
169
- if (this._postprocessing && (this._postprocessing.hasSmaaEffect)) {
170
- if (composer.multisampling !== 0) {
171
- composer.multisampling = 0;
172
- if (debug || isDevEnvironment()) {
173
- console.warn(`[PostProcessing] Disabling multisampling because depth or normals are used. If you need anti-aliasing, consider adding an Antialiasing component or SMAA effect to the PostprocessingManager.`);
168
+ if (this.multisampling === "auto") {
169
+ // If the postprocessing handler is using depth+normals (e.g. with SMAA) we ALWAYS disable multisampling to avoid ugly edges
170
+ if (this._postprocessing && (this._postprocessing.hasSmaaEffect)) {
171
+ if (composer.multisampling !== 0) {
172
+ composer.multisampling = 0;
173
+ if (debug || isDevEnvironment()) {
174
+ console.warn(`[PostProcessing] Disabling multisampling you're using SMAA and have set the 'multisampling: auto' on your PostprocessingManager/Volume component. If you need anti-aliasing, consider adding an Antialiasing component or SMAA effect to the PostprocessingManager.`);
175
+ }
174
176
  }
175
177
  }
176
- }
177
- else if (this.multisampling === "auto") {
178
- const timeSinceLastChange = this.context.time.realtimeSinceStartup - this._multisampleAutoChangeTime;
179
- if (this.context.time.realtimeSinceStartup - this._componentEnabledTime > 2
180
- && timeSinceLastChange > .5) {
181
- const prev = composer.multisampling;
182
- if (composer.multisampling > 0 && this.context.time.smoothedFps <= 50) {
183
- this._multisampleAutoChangeTime = this.context.time.realtimeSinceStartup;
184
- this._multisampleAutoDecreaseTime = this.context.time.realtimeSinceStartup;
185
- composer.multisampling *= .5;
186
- composer.multisampling = Math.floor(composer.multisampling);
187
- if (debug)
188
- console.debug(`[PostProcessing] Reduced multisampling from ${prev} to ${composer.multisampling}`);
189
- }
190
- // if performance is good for a while try increasing multisampling again
191
- else if (timeSinceLastChange > 1
192
- && this.context.time.smoothedFps >= 59
193
- && composer.multisampling < this.context.renderer.capabilities.maxSamples
194
- && this.context.time.realtimeSinceStartup - this._multisampleAutoDecreaseTime > 10) {
195
- this._multisampleAutoChangeTime = this.context.time.realtimeSinceStartup;
196
- composer.multisampling = composer.multisampling <= 0 ? 1 : composer.multisampling * 2;
197
- composer.multisampling = Math.floor(composer.multisampling);
198
- if (debug)
199
- console.debug(`[PostProcessing] Increased multisampling from ${prev} to ${composer.multisampling}`);
178
+ else {
179
+ const timeSinceLastChange = this.context.time.realtimeSinceStartup - this._multisampleAutoChangeTime;
180
+ if (this.context.time.realtimeSinceStartup - this._componentEnabledTime > 2
181
+ && timeSinceLastChange > .5) {
182
+ const prev = composer.multisampling;
183
+ if (composer.multisampling > 0 && this.context.time.smoothedFps <= 50) {
184
+ this._multisampleAutoChangeTime = this.context.time.realtimeSinceStartup;
185
+ this._multisampleAutoDecreaseTime = this.context.time.realtimeSinceStartup;
186
+ let newMultiSample = composer.multisampling * .5;
187
+ newMultiSample = Math.floor(newMultiSample);
188
+ if (newMultiSample != composer.multisampling) {
189
+ composer.multisampling = newMultiSample;
190
+ }
191
+ if (debug)
192
+ console.debug(`[PostProcessing] Reduced multisampling from ${prev} to ${composer.multisampling}`);
193
+ }
194
+ // if performance is good for a while try increasing multisampling again
195
+ else if (timeSinceLastChange > 1
196
+ && this.context.time.smoothedFps >= 59
197
+ && composer.multisampling < this.context.renderer.capabilities.maxSamples
198
+ && this.context.time.realtimeSinceStartup - this._multisampleAutoDecreaseTime > 10) {
199
+ this._multisampleAutoChangeTime = this.context.time.realtimeSinceStartup;
200
+ let newMultiSample = composer.multisampling <= 0 ? 1 : composer.multisampling * 2;
201
+ newMultiSample = Math.floor(newMultiSample);
202
+ if (newMultiSample !== composer.multisampling) {
203
+ composer.multisampling = newMultiSample;
204
+ }
205
+ if (debug)
206
+ console.debug(`[PostProcessing] Increased multisampling from ${prev} to ${composer.multisampling}`);
207
+ }
200
208
  }
201
209
  }
202
210
  }
203
211
  else {
204
- composer.multisampling = Math.max(0, Math.min(this.multisampling, this.context.renderer.capabilities.maxSamples));
212
+ const newMultiSample = Math.max(0, Math.min(this.multisampling, this.context.renderer.capabilities.maxSamples));
213
+ if (newMultiSample !== composer.multisampling)
214
+ composer.multisampling = newMultiSample;
205
215
  }
216
+ // Fix multisampling for the composer, it ONLY needs to be done for the input buffer
217
+ // this is super important for performance a negative visual impact
218
+ composer.outputBuffer.samples = 0;
206
219
  // only set the main camera if any pass has a different camera
207
220
  // trying to avoid doing this regularly since it involves doing potentially unnecessary work
208
221
  // https://github.com/pmndrs/postprocessing/blob/3d3df0576b6d49aec9e763262d5a1ff7429fd91a/src/core/EffectComposer.js#L406
@@ -227,7 +240,7 @@ export class Volume extends Behaviour {
227
240
  _isDirty = false;
228
241
  apply() {
229
242
  if (debug)
230
- console.log(`Apply PostProcessing "${this.name}"`);
243
+ console.log(`Apply PostProcessing "${this.name || "unnamed"}"`);
231
244
  if (isDevEnvironment()) {
232
245
  if (this._lastApplyTime !== undefined && Date.now() - this._lastApplyTime < 100) {
233
246
  this._rapidApplyCount++;
@@ -237,7 +250,6 @@ export class Volume extends Behaviour {
237
250
  this._lastApplyTime = Date.now();
238
251
  }
239
252
  this._isDirty = false;
240
- this.unapply();
241
253
  this._activeEffects.length = 0;
242
254
  // get from profile
243
255
  if (this.sharedProfile?.components) {
@@ -278,9 +290,9 @@ export class Volume extends Behaviour {
278
290
  }
279
291
  });
280
292
  }
281
- }
282
- unapply() {
283
- this._postprocessing?.unapply();
293
+ else {
294
+ this._postprocessing?.unapply(false);
295
+ }
284
296
  }
285
297
  _applyPostQueue() {
286
298
  if (this._modificationQueue) {
@@ -1 +1 @@
1
- {"version":3,"file":"Volume.js","sourceRoot":"","sources":["../../../src/engine-components/postprocessing/Volume.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Volume.js","sourceRoot":"","sources":["../../../src/engine-components/postprocessing/Volume.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export * from "./PostProcessingEffect.js";
2
2
  export * from "./PostProcessingHandler.js";
3
+ export { PostProcessingEffectPriority } from "./utils.js";
3
4
  export { PostProcessingManager } from "./Volume.js";
4
5
  export * from "./VolumeParameter.js";
5
6
  export * from "./VolumeProfile.js";
@@ -1,5 +1,6 @@
1
1
  export * from "./PostProcessingEffect.js";
2
2
  export * from "./PostProcessingHandler.js";
3
+ export { PostProcessingEffectPriority } from "./utils.js";
3
4
  export { PostProcessingManager } from "./Volume.js";
4
5
  export * from "./VolumeParameter.js";
5
6
  export * from "./VolumeProfile.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine-components/postprocessing/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAA;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACnD,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine-components/postprocessing/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAA;AAC1C,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACnD,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { Effect, Pass } from "postprocessing";
1
2
  import { ConstructorConcrete, IComponent } from "../../engine/engine_types.js";
2
3
  import { type PostProcessingEffect } from "./PostProcessingEffect.js";
3
4
  export declare const debug: string | number | boolean;
@@ -11,3 +12,42 @@ export type IPostProcessingManager = IComponent & {
11
12
  export declare function setPostprocessingManagerType(type: ConstructorConcrete<IPostProcessingManager>): void;
12
13
  export declare function findPostProcessingManager(effect: PostProcessingEffect): IPostProcessingManager | null;
13
14
  export declare function getPostProcessingManager(effect: PostProcessingEffect): IPostProcessingManager | null;
15
+ export type PostprocessingEffectData = {
16
+ effect: Effect | Pass;
17
+ priority?: number;
18
+ };
19
+ /**
20
+ * Default priority for post-processing effects. This can be used to sort effects by their rendering order when creating custom effects.
21
+ * E.g. in your custom effect, you can set `priority: PostProcessingEffectPriority.Bloom + 1;` to ensure it gets rendered after the bloom effect.
22
+ * OR `priority: PostProcessingEffectPriority.Bloom - 1;` to ensure it gets rendered before the bloom effect.
23
+ * @example
24
+ * ```typescript
25
+ * import { PostProcessingEffectPriority } from "@needle-tools/engine"
26
+ *
27
+ * export class MyCustomEffect extends PostProcessingEffect {
28
+ * priority: PostProcessingEffectPriority.Bloom + 1; // render after bloom
29
+ *
30
+ * // ... your effect code
31
+ * }
32
+ * ```
33
+ */
34
+ export declare const PostProcessingEffectPriority: {
35
+ /** Used to render effects at the start of the post-processing chain */
36
+ AT_START: number;
37
+ NormalPass: number;
38
+ DepthDownsamplingPass: number;
39
+ SMAA: number;
40
+ SSAO: number;
41
+ TiltShift: number;
42
+ DepthOfField: number;
43
+ ChromaticAberration: number;
44
+ Bloom: number;
45
+ Vignette: number;
46
+ Pixelation: number;
47
+ ToneMapping: number;
48
+ HueSaturation: number;
49
+ BrightnessContrast: number;
50
+ /** Used to render effects at the end of the post-processing chain, e.g. for final adjustments or overlays. */
51
+ AT_END: number;
52
+ };
53
+ export declare function orderEffects(effects: Array<PostprocessingEffectData>): void;