@needle-tools/engine 4.3.0-alpha.5 → 4.3.0
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.
- package/CHANGELOG.md +8 -1
- package/dist/needle-engine.bundle.js +3701 -3688
- package/dist/needle-engine.bundle.light.js +3571 -3558
- package/dist/needle-engine.bundle.light.min.js +97 -97
- package/dist/needle-engine.bundle.light.umd.cjs +104 -104
- package/dist/needle-engine.bundle.min.js +97 -97
- package/dist/needle-engine.bundle.umd.cjs +104 -104
- package/dist/needle-engine.d.ts +9 -9
- package/dist/needle-engine.light.d.ts +9 -9
- package/lib/engine/engine_utils_screenshot.js +17 -2
- package/lib/engine/engine_utils_screenshot.js.map +1 -1
- package/lib/engine-components/AudioSource.js +1 -1
- package/lib/engine-components/AudioSource.js.map +1 -1
- package/lib/engine-components/RigidBody.d.ts +3 -1
- package/lib/engine-components/RigidBody.js +6 -5
- package/lib/engine-components/RigidBody.js.map +1 -1
- package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.d.ts +2 -0
- package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.js +42 -5
- package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.js.map +1 -1
- package/lib/engine-components/postprocessing/PostProcessingEffect.d.ts +4 -0
- package/lib/engine-components/postprocessing/PostProcessingEffect.js +9 -1
- package/lib/engine-components/postprocessing/PostProcessingEffect.js.map +1 -1
- package/lib/engine-components/postprocessing/PostProcessingHandler.js +6 -6
- package/lib/engine-components/postprocessing/PostProcessingHandler.js.map +1 -1
- package/lib/engine-components/postprocessing/Volume.js +6 -6
- package/lib/engine-components/postprocessing/Volume.js.map +1 -1
- package/lib/engine-components/postprocessing/VolumeProfile.d.ts +2 -1
- package/lib/engine-components/postprocessing/VolumeProfile.js +8 -2
- package/lib/engine-components/postprocessing/VolumeProfile.js.map +1 -1
- package/package.json +2 -2
- package/src/engine/engine_utils_screenshot.ts +17 -3
- package/src/engine-components/AudioSource.ts +1 -1
- package/src/engine-components/RigidBody.ts +6 -4
- package/src/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.ts +56 -9
- package/src/engine-components/postprocessing/PostProcessingEffect.ts +7 -1
- package/src/engine-components/postprocessing/PostProcessingHandler.ts +6 -6
- package/src/engine-components/postprocessing/Volume.ts +5 -7
- package/src/engine-components/postprocessing/VolumeProfile.ts +10 -2
|
@@ -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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"}
|
|
@@ -61,6 +61,8 @@ export class Volume extends Behaviour {
|
|
|
61
61
|
if (!(entry instanceof PostProcessingEffect)) {
|
|
62
62
|
entry = new EffectWrapper(entry);
|
|
63
63
|
}
|
|
64
|
+
if (entry.gameObject === undefined)
|
|
65
|
+
this.gameObject.addComponent(entry);
|
|
64
66
|
if (this._effects.includes(entry))
|
|
65
67
|
return effect;
|
|
66
68
|
this._effects.push(entry);
|
|
@@ -113,7 +115,7 @@ export class Volume extends Behaviour {
|
|
|
113
115
|
});
|
|
114
116
|
}
|
|
115
117
|
// ensure the profile is initialized
|
|
116
|
-
this.sharedProfile?.
|
|
118
|
+
this.sharedProfile?.__init(this);
|
|
117
119
|
}
|
|
118
120
|
onEnable() {
|
|
119
121
|
this._isDirty = true;
|
|
@@ -168,7 +170,7 @@ export class Volume extends Behaviour {
|
|
|
168
170
|
_isDirty = false;
|
|
169
171
|
apply() {
|
|
170
172
|
if (debug)
|
|
171
|
-
console.log(
|
|
173
|
+
console.log(`Apply PostProcessing "${this.name}"`);
|
|
172
174
|
if (isDevEnvironment()) {
|
|
173
175
|
if (this._lastApplyTime !== undefined && Date.now() - this._lastApplyTime < 100) {
|
|
174
176
|
this._rapidApplyCount++;
|
|
@@ -184,17 +186,15 @@ export class Volume extends Behaviour {
|
|
|
184
186
|
if (this.sharedProfile?.components) {
|
|
185
187
|
const comps = this.sharedProfile.components;
|
|
186
188
|
for (const effect of comps) {
|
|
187
|
-
if (effect.active && !this._activeEffects.includes(effect))
|
|
189
|
+
if (effect.active && effect.enabled && !this._activeEffects.includes(effect))
|
|
188
190
|
this._activeEffects.push(effect);
|
|
189
191
|
}
|
|
190
192
|
}
|
|
191
193
|
// add effects registered via code
|
|
192
194
|
for (const effect of this._effects) {
|
|
193
|
-
if (effect.active && !this._activeEffects.includes(effect))
|
|
195
|
+
if (effect.active && effect.enabled && !this._activeEffects.includes(effect))
|
|
194
196
|
this._activeEffects.push(effect);
|
|
195
197
|
}
|
|
196
|
-
if (debug)
|
|
197
|
-
console.log("Apply PostProcessing", this._activeEffects);
|
|
198
198
|
if (this._activeEffects.length > 0) {
|
|
199
199
|
if (!this._postprocessing)
|
|
200
200
|
this._postprocessing = new PostProcessingHandler(this.context);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Volume.js","sourceRoot":"","sources":["../../../src/engine-components/postprocessing/Volume.ts"],"names":[],"mappings":";;;;;;AAEA,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEnF,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAA0B,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;AAGpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,OAAO,MAAO,SAAQ,SAAS;IAEjC,IAAI,uBAAuB;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,8CAA8C;IAC9C,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAGD,aAAa,CAAiB;IAE9B;;OAEG;IACH,SAAS,CAA0C,MAAS;
|
|
1
|
+
{"version":3,"file":"Volume.js","sourceRoot":"","sources":["../../../src/engine-components/postprocessing/Volume.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Component } from "../Component.js";
|
|
1
2
|
import { PostProcessingEffect } from "./PostProcessingEffect.js";
|
|
2
3
|
export declare function registerCustomEffectType(name: string, effect: typeof PostProcessingEffect): void;
|
|
3
4
|
/** @internal */
|
|
@@ -8,7 +9,7 @@ export declare class VolumeProfile {
|
|
|
8
9
|
* call init on all components
|
|
9
10
|
* @hidden
|
|
10
11
|
**/
|
|
11
|
-
|
|
12
|
+
__init(owner: Component): void;
|
|
12
13
|
addEffect(effect: PostProcessingEffect): void;
|
|
13
14
|
removeEffect(effect: PostProcessingEffect): void;
|
|
14
15
|
}
|
|
@@ -37,8 +37,14 @@ export class VolumeProfile {
|
|
|
37
37
|
* call init on all components
|
|
38
38
|
* @hidden
|
|
39
39
|
**/
|
|
40
|
-
|
|
41
|
-
this.components?.forEach(c =>
|
|
40
|
+
__init(owner) {
|
|
41
|
+
this.components?.forEach(c => {
|
|
42
|
+
// Make sure all components are added to the gameobject (this is not the case when e.g. effects are serialized from Unity)
|
|
43
|
+
if (c.gameObject === undefined) {
|
|
44
|
+
owner.gameObject.addComponent(c);
|
|
45
|
+
}
|
|
46
|
+
c.init();
|
|
47
|
+
});
|
|
42
48
|
}
|
|
43
49
|
addEffect(effect) {
|
|
44
50
|
this.components.push(effect);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VolumeProfile.js","sourceRoot":"","sources":["../../../src/engine-components/postprocessing/VolumeProfile.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"VolumeProfile.js","sourceRoot":"","sources":["../../../src/engine-components/postprocessing/VolumeProfile.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;AAEpC,MAAM,aAAa,GAAoD,EAAE,CAAC;AAC1E,MAAM,UAAU,wBAAwB,CAAC,IAAY,EAAE,MAAmC;IACtF,aAAa,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACjC,CAAC;AAED,qBAAqB;AACrB,SAAS,oBAAoB,CAAC,IAAwB;IAClD,IAAI,IAAI,CAAC,MAAM,IAAI,aAAa;QAC5B,OAAO,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,0CAA0C;IAC1C,uDAAuD;IACvD,yBAAyB;IACzB,qCAAqC;IACrC,mDAAmD;IACnD,0CAA0C;IAC1C,2DAA2D;IAC3D,iDAAiD;IACjD,IAAI;IACJ,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM;QACpB,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAClE,OAAO,oBAAoB,CAAC;AAChC,CAAC;AAED,gBAAgB;AAChB,MAAM,OAAO,aAAa;IAEtB,kCAAkC;IAElC,UAAU,GAA2B,EAAE,CAAC;IAExC;;;QAGI;IACJ,MAAM,CAAC,KAAgB;QACnB,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE;YACzB,0HAA0H;YAC1H,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,EAAE;gBAC5B,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;aACpC;YACD,CAAC,CAAC,IAAI,EAAE,CAAA;QACZ,CAAC,CAAC,CAAC;IACP,CAAC;IAED,SAAS,CAAC,MAA4B;QAClC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IACD,YAAY,CAAC,MAA4B;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,GAAG,IAAI,CAAC;YAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;CACJ;AAvBG;IADC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;iDAC5B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@needle-tools/engine",
|
|
3
|
-
"version": "4.3.0
|
|
3
|
+
"version": "4.3.0",
|
|
4
4
|
"description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in",
|
|
5
5
|
"main": "dist/needle-engine.min.js",
|
|
6
6
|
"exports": {
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
],
|
|
87
87
|
"dependencies": {
|
|
88
88
|
"@dimforge/rapier3d-compat": "^0.14.0",
|
|
89
|
-
"@needle-tools/gltf-progressive": "^2.1.
|
|
89
|
+
"@needle-tools/gltf-progressive": "^2.1.2",
|
|
90
90
|
"@webxr-input-profiles/motion-controllers": "^1.0.0",
|
|
91
91
|
"flatbuffers": "2.0.4",
|
|
92
92
|
"md5": "^2.3.0",
|
|
@@ -10,6 +10,7 @@ import { onAfterRender } from "./engine_lifecycle_api.js";
|
|
|
10
10
|
import { registerFrameEventCallback } from "./engine_lifecycle_functions_internal.js";
|
|
11
11
|
import { Context, FrameEvent } from "./engine_setup.js";
|
|
12
12
|
import { ICamera } from "./engine_types.js";
|
|
13
|
+
import { DeviceUtilities } from "./engine_utils.js";
|
|
13
14
|
import { updateTextureFromXRFrame } from "./engine_utils_screenshot.xr.js";
|
|
14
15
|
import { RGBAColor } from "./js-extensions/index.js";
|
|
15
16
|
import { setCustomVisibility } from "./js-extensions/Layers.js";
|
|
@@ -395,8 +396,22 @@ export function screenshot2(opts: ScreenshotOptionsDataUrl | ScreenshotOptionsTe
|
|
|
395
396
|
|
|
396
397
|
if ("download_filename" in opts && opts.download_filename) {
|
|
397
398
|
let download_name = opts.download_filename;
|
|
398
|
-
|
|
399
|
-
|
|
399
|
+
// On mobile we don't want to see the dialogue for every screenshot
|
|
400
|
+
if (DeviceUtilities.isMobileDevice() && typeof window !== "undefined") {
|
|
401
|
+
const key = download_name + "_screenshots";
|
|
402
|
+
const parts = download_name.split(".");
|
|
403
|
+
const ext = parts.pop()?.toLowerCase();
|
|
404
|
+
let count = 0;
|
|
405
|
+
if (localStorage.getItem(key)) {
|
|
406
|
+
count = parseInt(sessionStorage.getItem(key) || "0");
|
|
407
|
+
}
|
|
408
|
+
if (count > 0) {
|
|
409
|
+
// const timestamp = new Date().toLocaleString();
|
|
410
|
+
download_name = `${parts.join()}-${count}.${ext}`;
|
|
411
|
+
}
|
|
412
|
+
count += 1;
|
|
413
|
+
sessionStorage.setItem(key, count.toString());
|
|
414
|
+
}
|
|
400
415
|
saveImage(dataUrl, download_name);
|
|
401
416
|
}
|
|
402
417
|
return dataUrl;
|
|
@@ -424,7 +439,6 @@ export function screenshot2(opts: ScreenshotOptionsDataUrl | ScreenshotOptionsTe
|
|
|
424
439
|
|
|
425
440
|
|
|
426
441
|
|
|
427
|
-
|
|
428
442
|
// trim to transparent pixels
|
|
429
443
|
function trimCanvas(originalCanvas: HTMLCanvasElement): HTMLCanvasElement | null {
|
|
430
444
|
if (!("document" in globalThis)) return null;
|
|
@@ -3,12 +3,12 @@ import { PositionalAudioHelper } from 'three/examples/jsm/helpers/PositionalAudi
|
|
|
3
3
|
|
|
4
4
|
import { isDevEnvironment } from "../engine/debug/index.js";
|
|
5
5
|
import { Application, ApplicationEvents } from "../engine/engine_application.js";
|
|
6
|
+
import { findObjectOfType } from "../engine/engine_components.js";
|
|
6
7
|
import { Mathf } from "../engine/engine_math.js";
|
|
7
8
|
import { serializable } from "../engine/engine_serialization_decorator.js";
|
|
8
9
|
import { DeviceUtilities, getParam } from "../engine/engine_utils.js";
|
|
9
10
|
import { AudioListener } from "./AudioListener.js";
|
|
10
11
|
import { Behaviour, GameObject } from "./Component.js";
|
|
11
|
-
import { findObjectOfType } from "../engine/engine_components.js";
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
const debug = getParam("debugaudio");
|
|
@@ -498,7 +498,9 @@ export class Rigidbody extends Behaviour implements IRigidbody {
|
|
|
498
498
|
else this.setAngularVelocity(x);
|
|
499
499
|
}
|
|
500
500
|
|
|
501
|
-
/**
|
|
501
|
+
/**
|
|
502
|
+
* Returns the rigidbody velocity smoothed over ~ 10 frames
|
|
503
|
+
*/
|
|
502
504
|
public get smoothedVelocity(): Vector3 {
|
|
503
505
|
this._smoothedVelocityGetter.copy(this._smoothedVelocity);
|
|
504
506
|
return this._smoothedVelocityGetter.multiplyScalar(1 / this.context.time.deltaTime);
|
|
@@ -512,9 +514,9 @@ export class Rigidbody extends Behaviour implements IRigidbody {
|
|
|
512
514
|
|
|
513
515
|
|
|
514
516
|
private captureVelocity() {
|
|
515
|
-
const
|
|
516
|
-
|
|
517
|
-
const vel =
|
|
517
|
+
const matrixWorld = this.gameObject.matrixWorld;
|
|
518
|
+
Rigidbody.tempPosition.setFromMatrixPosition(matrixWorld);
|
|
519
|
+
const vel = Rigidbody.tempPosition.sub(this._lastPosition);
|
|
518
520
|
this._lastPosition.copy(Rigidbody.tempPosition);
|
|
519
521
|
this._smoothedVelocity.lerp(vel, this.context.time.deltaTime / .1);
|
|
520
522
|
}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import type { N8AOPostPass } from "n8ao";
|
|
2
|
-
import { Color, PerspectiveCamera } from "three";
|
|
2
|
+
import { Color, DepthFormat, DepthStencilFormat, DepthTexture, PerspectiveCamera, UnsignedInt248Type, UnsignedIntType, WebGLRenderTarget } from "three";
|
|
3
3
|
|
|
4
4
|
import { MODULES } from "../../../engine/engine_modules.js";
|
|
5
5
|
import { serializable } from "../../../engine/engine_serialization.js";
|
|
6
6
|
import { validate } from "../../../engine/engine_util_decorator.js";
|
|
7
|
+
import { getParam } from "../../../engine/engine_utils.js";
|
|
7
8
|
import { type EffectProviderResult, PostProcessingEffect } from "../PostProcessingEffect.js";
|
|
8
9
|
import { VolumeParameter } from "../VolumeParameter.js";
|
|
9
10
|
import { registerCustomEffectType } from "../VolumeProfile.js";
|
|
10
11
|
|
|
12
|
+
const debugN8AO = getParam("debugN8AO");
|
|
13
|
+
|
|
11
14
|
// https://github.com/N8python/n8ao
|
|
12
15
|
|
|
13
16
|
/**See (N8AO documentation)[https://github.com/N8python/n8ao] */
|
|
@@ -30,6 +33,10 @@ export class ScreenSpaceAmbientOcclusionN8 extends PostProcessingEffect {
|
|
|
30
33
|
return "ScreenSpaceAmbientOcclusionN8";
|
|
31
34
|
}
|
|
32
35
|
|
|
36
|
+
get pass(): N8AOPostPass {
|
|
37
|
+
return this._ssao;
|
|
38
|
+
}
|
|
39
|
+
|
|
33
40
|
@validate()
|
|
34
41
|
@serializable()
|
|
35
42
|
gammaCorrection: boolean = true;
|
|
@@ -109,19 +116,51 @@ export class ScreenSpaceAmbientOcclusionN8 extends PostProcessingEffect {
|
|
|
109
116
|
|
|
110
117
|
const cam = this.context.mainCamera! as PerspectiveCamera;
|
|
111
118
|
|
|
119
|
+
const width = this.context.domWidth;
|
|
120
|
+
const height = this.context.domHeight;
|
|
121
|
+
|
|
112
122
|
const ssao = this._ssao = new MODULES.POSTPROCESSING_AO.MODULE.N8AOPostPass(
|
|
113
123
|
this.context.scene,
|
|
114
124
|
cam,
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
125
|
+
width, height
|
|
126
|
+
) as N8AOPostPass;
|
|
127
|
+
|
|
118
128
|
const mode = ScreenSpaceAmbientOcclusionN8QualityMode[this.quality];
|
|
119
129
|
ssao.setQualityMode(mode);
|
|
120
130
|
|
|
121
|
-
ssao.configuration.
|
|
131
|
+
ssao.configuration.transparencyAware = false;
|
|
132
|
+
// ssao.needsSwap = false;
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
const renderTarget = new WebGLRenderTarget(width, height);
|
|
136
|
+
ssao.configuration.beautyRenderTarget = renderTarget;
|
|
137
|
+
ssao.configuration.autoRenderBeauty = false;
|
|
138
|
+
// // If you just want a depth buffer
|
|
139
|
+
// renderTarget.depthTexture = new DepthTexture(width, height, UnsignedIntType);
|
|
140
|
+
// renderTarget.depthTexture.format = DepthFormat;
|
|
141
|
+
// // If you want a depth buffer and a stencil buffer
|
|
142
|
+
// renderTarget.depthTexture = new DepthTexture(width, height, UnsignedInt248Type);
|
|
143
|
+
// renderTarget.depthTexture.format = DepthStencilFormat;
|
|
122
144
|
|
|
145
|
+
|
|
146
|
+
ssao.configuration.gammaCorrection = this.gammaCorrection;
|
|
123
147
|
ssao.configuration.screenSpaceRadius = this.screenspaceRadius;
|
|
124
148
|
|
|
149
|
+
|
|
150
|
+
if (debugN8AO) {
|
|
151
|
+
// ssao.debug = debugN8AO;
|
|
152
|
+
ssao.enableDebugMode();
|
|
153
|
+
console.log(ssao);
|
|
154
|
+
setInterval(() => {
|
|
155
|
+
console.log("SSAO", ssao.lastTime);
|
|
156
|
+
}, 1000);
|
|
157
|
+
setInterval(() => {
|
|
158
|
+
// ssao.enabled = !ssao.enabled;
|
|
159
|
+
console.log("SSAO", ssao.enabled, { ssao, autoRenderBeauty: ssao.configuration.autoRenderBeauty });
|
|
160
|
+
}, 4000)
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
|
|
125
164
|
this.intensity.onValueChanged = newValue => {
|
|
126
165
|
ssao.configuration.intensity = newValue;
|
|
127
166
|
}
|
|
@@ -135,10 +174,18 @@ export class ScreenSpaceAmbientOcclusionN8 extends PostProcessingEffect {
|
|
|
135
174
|
if (!ssao.color) ssao.color = new Color();
|
|
136
175
|
ssao.configuration.color.copy(newValue);
|
|
137
176
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
// const normalPass = new MODULES.POSTPROCESSING.MODULE.NormalPass(this.context.scene, cam);
|
|
180
|
+
// const depthDownsamplingPass = new MODULES.POSTPROCESSING.MODULE.DepthDownsamplingPass({
|
|
181
|
+
// normalBuffer: normalPass.texture,
|
|
182
|
+
// resolutionScale: .1
|
|
183
|
+
// });
|
|
184
|
+
// const arr = new Array();
|
|
185
|
+
// arr.push(normalPass);
|
|
186
|
+
// arr.push(depthDownsamplingPass);
|
|
187
|
+
// arr.push(ssao);
|
|
188
|
+
return ssao;
|
|
142
189
|
}
|
|
143
190
|
|
|
144
191
|
}
|
|
@@ -75,6 +75,10 @@ export abstract class PostProcessingEffect extends Component implements IEffectP
|
|
|
75
75
|
|
|
76
76
|
abstract get typeName(): string;
|
|
77
77
|
|
|
78
|
+
/**
|
|
79
|
+
* Whether the effect is active or not. Prefer using `enabled` instead.
|
|
80
|
+
* @deprecated
|
|
81
|
+
*/
|
|
78
82
|
@serializable()
|
|
79
83
|
active: boolean = true;
|
|
80
84
|
|
|
@@ -82,14 +86,16 @@ export abstract class PostProcessingEffect extends Component implements IEffectP
|
|
|
82
86
|
|
|
83
87
|
onEnable(): void {
|
|
84
88
|
super.onEnable();
|
|
85
|
-
this.
|
|
89
|
+
if (debug) console.warn("onEnable effect", this, this.__internalDidAwakeAndStart)
|
|
86
90
|
// Dont override the serialized value by enabling (we could also just disable this component / map enabled to active)
|
|
87
91
|
if (this.__internalDidAwakeAndStart)
|
|
88
92
|
this.active = true;
|
|
93
|
+
this.onEffectEnabled();
|
|
89
94
|
}
|
|
90
95
|
|
|
91
96
|
onDisable(): void {
|
|
92
97
|
super.onDisable();
|
|
98
|
+
if (debug) console.warn("onDisable effect", this)
|
|
93
99
|
this._manager?.removeEffect(this);
|
|
94
100
|
this.active = false;
|
|
95
101
|
}
|
|
@@ -219,12 +219,12 @@ export class PostProcessingHandler {
|
|
|
219
219
|
if (ef instanceof MODULES.POSTPROCESSING.MODULE.Effect)
|
|
220
220
|
effects.push(ef as Effect);
|
|
221
221
|
else if (ef instanceof MODULES.POSTPROCESSING.MODULE.Pass) {
|
|
222
|
-
const pass = new MODULES.POSTPROCESSING.MODULE.EffectPass(cam, ...effects);
|
|
223
|
-
pass.mainScene = scene;
|
|
224
|
-
pass.name = effects.map(e => e.constructor.name).join(", ");
|
|
225
|
-
pass.enabled = true;
|
|
222
|
+
// const pass = new MODULES.POSTPROCESSING.MODULE.EffectPass(cam, ...effects);
|
|
223
|
+
// pass.mainScene = scene;
|
|
224
|
+
// pass.name = effects.map(e => e.constructor.name).join(", ");
|
|
225
|
+
// pass.enabled = true;
|
|
226
226
|
// composer.addPass(pass);
|
|
227
|
-
effects.length = 0;
|
|
227
|
+
// effects.length = 0;
|
|
228
228
|
composer.addPass(ef as Pass);
|
|
229
229
|
}
|
|
230
230
|
else {
|
|
@@ -262,7 +262,7 @@ export class PostProcessingHandler {
|
|
|
262
262
|
}
|
|
263
263
|
|
|
264
264
|
if (debug)
|
|
265
|
-
console.log("PostProcessing Passes
|
|
265
|
+
console.log("[PostProcessing] Passes →", composer.passes);
|
|
266
266
|
}
|
|
267
267
|
|
|
268
268
|
private orderEffects() {
|
|
@@ -62,11 +62,11 @@ export class Volume extends Behaviour implements IEditorModificationReceiver, IP
|
|
|
62
62
|
* Add a post processing effect to the stack and schedules the effect stack to be re-created.
|
|
63
63
|
*/
|
|
64
64
|
addEffect<T extends PostProcessingEffect | Effect>(effect: T): T {
|
|
65
|
-
|
|
66
65
|
let entry = effect as PostProcessingEffect;
|
|
67
66
|
if (!(entry instanceof PostProcessingEffect)) {
|
|
68
67
|
entry = new EffectWrapper(entry);
|
|
69
68
|
}
|
|
69
|
+
if(entry.gameObject === undefined) this.gameObject.addComponent(entry);
|
|
70
70
|
if (this._effects.includes(entry)) return effect;
|
|
71
71
|
this._effects.push(entry);
|
|
72
72
|
this._isDirty = true;
|
|
@@ -125,7 +125,7 @@ export class Volume extends Behaviour implements IEditorModificationReceiver, IP
|
|
|
125
125
|
}
|
|
126
126
|
|
|
127
127
|
// ensure the profile is initialized
|
|
128
|
-
this.sharedProfile?.
|
|
128
|
+
this.sharedProfile?.__init(this);
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
onEnable(): void {
|
|
@@ -190,7 +190,7 @@ export class Volume extends Behaviour implements IEditorModificationReceiver, IP
|
|
|
190
190
|
private _isDirty: boolean = false;
|
|
191
191
|
|
|
192
192
|
private apply() {
|
|
193
|
-
if (debug) console.log(
|
|
193
|
+
if (debug) console.log(`Apply PostProcessing "${this.name}"`);
|
|
194
194
|
|
|
195
195
|
if (isDevEnvironment()) {
|
|
196
196
|
if (this._lastApplyTime !== undefined && Date.now() - this._lastApplyTime < 100) {
|
|
@@ -209,18 +209,16 @@ export class Volume extends Behaviour implements IEditorModificationReceiver, IP
|
|
|
209
209
|
if (this.sharedProfile?.components) {
|
|
210
210
|
const comps = this.sharedProfile.components;
|
|
211
211
|
for (const effect of comps) {
|
|
212
|
-
if (effect.active && !this._activeEffects.includes(effect))
|
|
212
|
+
if (effect.active && effect.enabled && !this._activeEffects.includes(effect))
|
|
213
213
|
this._activeEffects.push(effect);
|
|
214
214
|
}
|
|
215
215
|
}
|
|
216
216
|
// add effects registered via code
|
|
217
217
|
for (const effect of this._effects) {
|
|
218
|
-
if (effect.active && !this._activeEffects.includes(effect))
|
|
218
|
+
if (effect.active && effect.enabled && !this._activeEffects.includes(effect))
|
|
219
219
|
this._activeEffects.push(effect);
|
|
220
220
|
}
|
|
221
221
|
|
|
222
|
-
if (debug) console.log("Apply PostProcessing", this._activeEffects);
|
|
223
|
-
|
|
224
222
|
if (this._activeEffects.length > 0) {
|
|
225
223
|
if (!this._postprocessing)
|
|
226
224
|
this._postprocessing = new PostProcessingHandler(this.context);
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { serializeable } from "../../engine/engine_serialization_decorator.js";
|
|
2
2
|
import { getParam } from "../../engine/engine_utils.js";
|
|
3
|
+
import { Component } from "../Component.js";
|
|
3
4
|
import { PostProcessingEffect } from "./PostProcessingEffect.js";
|
|
5
|
+
import type { Volume } from "./Volume.js";
|
|
4
6
|
|
|
5
7
|
const debug = getParam("debugpost");
|
|
6
8
|
|
|
@@ -38,8 +40,14 @@ export class VolumeProfile {
|
|
|
38
40
|
* call init on all components
|
|
39
41
|
* @hidden
|
|
40
42
|
**/
|
|
41
|
-
|
|
42
|
-
this.components?.forEach(c =>
|
|
43
|
+
__init(owner: Component) {
|
|
44
|
+
this.components?.forEach(c => {
|
|
45
|
+
// Make sure all components are added to the gameobject (this is not the case when e.g. effects are serialized from Unity)
|
|
46
|
+
if (c.gameObject === undefined) {
|
|
47
|
+
owner.gameObject.addComponent(c);
|
|
48
|
+
}
|
|
49
|
+
c.init()
|
|
50
|
+
});
|
|
43
51
|
}
|
|
44
52
|
|
|
45
53
|
addEffect(effect: PostProcessingEffect) {
|