@needle-tools/engine 4.6.0-next.ffc175e → 4.6.1-next.26cf56c
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 +6 -0
- package/dist/generateMeshBVH.worker-BaNp_Xtp.js +25 -0
- package/dist/{gltf-progressive-Bm9eEfgu.min.js → gltf-progressive-Bl4okF1b.min.js} +1 -1
- package/dist/{gltf-progressive-GjIqwSG3.js → gltf-progressive-DSpdn0QT.js} +2 -2
- package/dist/{gltf-progressive-Dn6o99rH.umd.cjs → gltf-progressive-P8b8a0qY.umd.cjs} +1 -1
- package/dist/{needle-engine.bundle-DUkg_M5A.umd.cjs → needle-engine.bundle-B0Kku0-E.umd.cjs} +145 -141
- package/dist/needle-engine.bundle-B23LP9xh.min.js +1563 -0
- package/dist/{needle-engine.bundle-B3vWYoFH.js → needle-engine.bundle-gJVfKnbJ.js} +6252 -6216
- package/dist/needle-engine.js +4 -4
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/dist/{postprocessing-CRQa6Qxn.umd.cjs → postprocessing-BPhSPjAn.umd.cjs} +2 -2
- package/dist/{postprocessing-DF8AlRgW.min.js → postprocessing-DoBd3XIR.min.js} +2 -2
- package/dist/{postprocessing-D6W1EyZ-.js → postprocessing-XKNCD6By.js} +3 -3
- package/dist/{three-DMrv-4ar.umd.cjs → three-B_hneGZr.umd.cjs} +4 -4
- package/dist/{three-Bz6X1mrw.js → three-DrqIzZTH.js} +4198 -4198
- package/dist/{three-Boa-jOq-.min.js → three-DuDKwKB8.min.js} +33 -33
- package/dist/{three-examples-GggCDHv0.js → three-examples-B50TT3Iu.js} +5 -5
- package/dist/{three-examples-DuVhxqft.min.js → three-examples-DaDLBuy6.min.js} +14 -14
- package/dist/{three-examples-C7ryg8vN.umd.cjs → three-examples-X3OadjXB.umd.cjs} +3 -3
- package/dist/{three-mesh-ui-CY6Izc7C.min.js → three-mesh-ui-B3p3gyUz.min.js} +1 -1
- package/dist/{three-mesh-ui-CwlN0FUC.umd.cjs → three-mesh-ui-CQiIQIlA.umd.cjs} +1 -1
- package/dist/{three-mesh-ui-CLNOfsWn.js → three-mesh-ui-CxuWt7m-.js} +1 -1
- package/dist/{vendor-zxXa3Dmr.min.js → vendor-BlSxe9JJ.min.js} +3 -3
- package/dist/{vendor-BSD1RQIh.js → vendor-BmYIgaS1.js} +3 -3
- package/dist/{vendor-DHr4aqIZ.umd.cjs → vendor-Cavtu3CP.umd.cjs} +3 -3
- package/lib/engine/engine_assetdatabase.js +3 -1
- package/lib/engine/engine_assetdatabase.js.map +1 -1
- package/lib/engine/engine_context.d.ts +2 -2
- package/lib/engine/engine_context.js +11 -10
- package/lib/engine/engine_context.js.map +1 -1
- package/lib/engine/engine_utils_screenshot.d.ts +1 -1
- package/lib/engine/engine_utils_screenshot.js +11 -2
- package/lib/engine/engine_utils_screenshot.js.map +1 -1
- package/lib/engine-components/ReflectionProbe.d.ts +2 -1
- package/lib/engine-components/ReflectionProbe.js +4 -1
- package/lib/engine-components/ReflectionProbe.js.map +1 -1
- package/lib/engine-components/Renderer.js +9 -5
- package/lib/engine-components/Renderer.js.map +1 -1
- package/lib/engine-components/postprocessing/Effects/Antialiasing.js +2 -1
- package/lib/engine-components/postprocessing/Effects/Antialiasing.js.map +1 -1
- package/lib/engine-components/postprocessing/Effects/Tonemapping.js +10 -6
- package/lib/engine-components/postprocessing/Effects/Tonemapping.js.map +1 -1
- package/lib/engine-components/postprocessing/PostProcessingEffect.js +2 -1
- package/lib/engine-components/postprocessing/PostProcessingEffect.js.map +1 -1
- package/lib/engine-components/postprocessing/PostProcessingHandler.d.ts +8 -1
- package/lib/engine-components/postprocessing/PostProcessingHandler.js +103 -66
- package/lib/engine-components/postprocessing/PostProcessingHandler.js.map +1 -1
- package/lib/engine-components/postprocessing/Volume.d.ts +2 -0
- package/lib/engine-components/postprocessing/Volume.js +12 -1
- package/lib/engine-components/postprocessing/Volume.js.map +1 -1
- package/lib/engine-components/postprocessing/utils.d.ts +2 -0
- package/lib/engine-components/postprocessing/utils.js.map +1 -1
- package/package.json +1 -1
- package/plugins/vite/dependency-watcher.js +8 -2
- package/src/engine/engine_assetdatabase.ts +3 -1
- package/src/engine/engine_context.ts +14 -11
- package/src/engine/engine_utils_screenshot.ts +13 -3
- package/src/engine-components/ReflectionProbe.ts +5 -1
- package/src/engine-components/Renderer.ts +10 -7
- package/src/engine-components/postprocessing/Effects/Antialiasing.ts +2 -1
- package/src/engine-components/postprocessing/Effects/Tonemapping.ts +9 -7
- package/src/engine-components/postprocessing/PostProcessingEffect.ts +2 -1
- package/src/engine-components/postprocessing/PostProcessingHandler.ts +115 -72
- package/src/engine-components/postprocessing/Volume.ts +14 -1
- package/src/engine-components/postprocessing/utils.ts +2 -0
- package/dist/generateMeshBVH.worker-Cdfpaq5W.js +0 -25
- package/dist/needle-engine.bundle-CZu9qkBv.min.js +0 -1559
|
@@ -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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"}
|
|
@@ -3,6 +3,8 @@ import { type PostProcessingEffect } from "./PostProcessingEffect.js";
|
|
|
3
3
|
export declare const debug: string | number | boolean;
|
|
4
4
|
export type IPostProcessingManager = IComponent & {
|
|
5
5
|
get isPostProcessingManager(): boolean;
|
|
6
|
+
get dirty(): boolean;
|
|
7
|
+
set dirty(value: boolean);
|
|
6
8
|
addEffect(effect: PostProcessingEffect): void;
|
|
7
9
|
removeEffect(effect: PostProcessingEffect): void;
|
|
8
10
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/engine-components/postprocessing/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAE/E,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAGxD,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/engine-components/postprocessing/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAE/E,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAGxD,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;AAW3C,IAAI,yBAAyB,GAAuD,IAAI,CAAC;AAEzF,MAAM,UAAU,4BAA4B,CAAC,IAAiD;IAC1F,yBAAyB,GAAG,IAAI,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAA4B;IAClE,IAAI,GAAG,GAAG,MAAM,CAAC,UAA6B,CAAC;IAC/C,OAAO,GAAG,EAAE;QACR,KAAK,MAAM,IAAI,IAAI,0BAA0B,CAAC,GAAG,CAAC,EAAE;YAChD,IAAK,IAA0C,CAAC,uBAAuB,KAAK,IAAI,EAAE;gBAC9E,OAAO,IAAyC,CAAC;aACpD;SACJ;QACD,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;KACpB;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAA4B;IACjE,IAAI,OAAO,GAAkC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC/E,IAAI,CAAC,OAAO,EAAE;QACV,IAAI,yBAAyB,EAAE;YAC3B,IAAI,KAAK;gBACL,OAAO,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YAChE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAC;SAC5D;aACI;YACD,IAAI,gBAAgB,EAAE;gBAClB,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;SACxD;KACJ;IACD,OAAO,OAAO,CAAC;AACnB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@needle-tools/engine",
|
|
3
|
-
"version": "4.6.
|
|
3
|
+
"version": "4.6.1-next.26cf56c",
|
|
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": {
|
|
@@ -162,8 +162,14 @@ function testIfInstallIsRequired(projectDir, packageJson) {
|
|
|
162
162
|
}
|
|
163
163
|
if (expectedVersion?.length > 0) {
|
|
164
164
|
const isRange = expectedVersion.includes("x") || expectedVersion.includes("^") || expectedVersion.includes(">") || expectedVersion.includes("<") || expectedVersion.includes("~");
|
|
165
|
-
const
|
|
166
|
-
|
|
165
|
+
const isTagName = expectedVersion === "stable" ||
|
|
166
|
+
expectedVersion === "latest" ||
|
|
167
|
+
expectedVersion === "next" ||
|
|
168
|
+
expectedVersion === "beta" ||
|
|
169
|
+
expectedVersion === "alpha" ||
|
|
170
|
+
expectedVersion === "canary" ||
|
|
171
|
+
expectedVersion === "experimental";
|
|
172
|
+
if (!isRange && !isTagName) {
|
|
167
173
|
const packageJsonPath = path.join(depPath, "package.json");
|
|
168
174
|
/** @type {String} */
|
|
169
175
|
const installedVersion = JSON.parse(readFileSync(packageJsonPath, "utf8")).version;
|
|
@@ -61,7 +61,9 @@ export function disposeObjectResources(obj: object | null | undefined) {
|
|
|
61
61
|
return;
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
obj
|
|
64
|
+
if(typeof obj === "object") {
|
|
65
|
+
obj[$disposed] = true;
|
|
66
|
+
}
|
|
65
67
|
|
|
66
68
|
if (obj instanceof Scene) {
|
|
67
69
|
disposeObjectResources(obj.environment);
|
|
@@ -758,6 +758,9 @@ export class Context implements IContext {
|
|
|
758
758
|
this.physics?.engine?.clearCaches();
|
|
759
759
|
this.lodsManager.disable();
|
|
760
760
|
|
|
761
|
+
this._onBeforeRenderListeners.clear();
|
|
762
|
+
this._onAfterRenderListeners.clear();
|
|
763
|
+
|
|
761
764
|
if (!this.isManagedExternally) {
|
|
762
765
|
if (this.renderer) {
|
|
763
766
|
this.renderer.renderLists.dispose();
|
|
@@ -889,16 +892,17 @@ export class Context implements IContext {
|
|
|
889
892
|
}
|
|
890
893
|
}
|
|
891
894
|
|
|
892
|
-
private _onBeforeRenderListeners = new Map<string, OnRenderCallback[]>();
|
|
893
|
-
private _onAfterRenderListeners = new Map<string, OnRenderCallback[]>();
|
|
895
|
+
private readonly _onBeforeRenderListeners = new Map<string, OnRenderCallback[]>();
|
|
896
|
+
private readonly _onAfterRenderListeners = new Map<string, OnRenderCallback[]>();
|
|
894
897
|
|
|
895
898
|
/** Use to subscribe to onBeforeRender events on threejs objects.
|
|
896
899
|
* @link https://threejs.org/docs/#api/en/core/Object3D.onBeforeRender
|
|
897
900
|
*/
|
|
898
901
|
addBeforeRenderListener(target: Object3D, callback: OnRenderCallback) {
|
|
899
902
|
if (!this._onBeforeRenderListeners.has(target.uuid)) {
|
|
900
|
-
|
|
901
|
-
|
|
903
|
+
const arr: OnRenderCallback[] = [];
|
|
904
|
+
this._onBeforeRenderListeners.set(target.uuid, arr);
|
|
905
|
+
target.onBeforeRender = this._createRenderCallbackWrapper(arr);
|
|
902
906
|
}
|
|
903
907
|
this._onBeforeRenderListeners.get(target.uuid)!.push(callback);
|
|
904
908
|
}
|
|
@@ -919,8 +923,9 @@ export class Context implements IContext {
|
|
|
919
923
|
*/
|
|
920
924
|
addAfterRenderListener(target: Object3D, callback: OnRenderCallback) {
|
|
921
925
|
if (!this._onAfterRenderListeners.has(target.uuid)) {
|
|
922
|
-
|
|
923
|
-
|
|
926
|
+
const arr = [];
|
|
927
|
+
this._onAfterRenderListeners.set(target.uuid, arr);
|
|
928
|
+
target.onAfterRender = this._createRenderCallbackWrapper(arr);
|
|
924
929
|
}
|
|
925
930
|
this._onAfterRenderListeners.get(target.uuid)?.push(callback);
|
|
926
931
|
}
|
|
@@ -937,12 +942,10 @@ export class Context implements IContext {
|
|
|
937
942
|
}
|
|
938
943
|
|
|
939
944
|
|
|
940
|
-
private _createRenderCallbackWrapper(
|
|
945
|
+
private _createRenderCallbackWrapper(array: OnRenderCallback[]): OnRenderCallback {
|
|
941
946
|
return (renderer, scene, camera, geometry, material, group) => {
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
for (let i = 0; i < arr.length; i++) {
|
|
945
|
-
const fn = arr[i];
|
|
947
|
+
for (let i = 0; i < array.length; i++) {
|
|
948
|
+
const fn = array[i];
|
|
946
949
|
fn(renderer, scene, camera, geometry, material, group);
|
|
947
950
|
}
|
|
948
951
|
}
|
|
@@ -45,7 +45,7 @@ export declare type ScreenshotOptions = {
|
|
|
45
45
|
/**
|
|
46
46
|
* The context to take the screenshot from. If not provided, the current context will be used.
|
|
47
47
|
*/
|
|
48
|
-
context?: Pick<Context, "scene" | "renderer" | "mainCamera" | "renderNow" | "updateAspect" | "updateSize" | "currentFrameEvent">,
|
|
48
|
+
context?: Pick<Context, "scene" | "renderer" | "mainCamera" | "renderNow" | "updateAspect" | "updateSize" | "currentFrameEvent" | "devicePixelRatio">,
|
|
49
49
|
/**
|
|
50
50
|
* The width of the screenshot - if not provided, the width of the current renderer will be used.
|
|
51
51
|
*/
|
|
@@ -205,11 +205,21 @@ export function screenshot2(opts: ScreenshotOptionsDataUrl | ScreenshotOptionsTe
|
|
|
205
205
|
const renderWidth = width;
|
|
206
206
|
const renderHeight = height;
|
|
207
207
|
|
|
208
|
-
//
|
|
209
|
-
|
|
208
|
+
// Apply page zoom
|
|
209
|
+
let zoomLevel = (window.devicePixelRatio || 1);
|
|
210
|
+
let contextZoomLevel = 1;
|
|
211
|
+
// Apply context zoom level
|
|
212
|
+
if (context.devicePixelRatio === 'auto' || context.devicePixelRatio === 'manual')
|
|
213
|
+
contextZoomLevel = 1;
|
|
214
|
+
else
|
|
215
|
+
contextZoomLevel = context.devicePixelRatio / window.devicePixelRatio;
|
|
216
|
+
zoomLevel *= contextZoomLevel;
|
|
210
217
|
width /= zoomLevel;
|
|
211
218
|
height /= zoomLevel;
|
|
212
219
|
|
|
220
|
+
width = Math.floor(width);
|
|
221
|
+
height = Math.floor(height);
|
|
222
|
+
|
|
213
223
|
// save XR state and reset it for screenshot
|
|
214
224
|
const xrframe = renderer.xr.isPresenting && renderer.xr.getFrame();
|
|
215
225
|
const previousXRState = renderer.xr.enabled;
|
|
@@ -22,6 +22,10 @@ export class ReflectionProbe extends Behaviour {
|
|
|
22
22
|
|
|
23
23
|
private static _probes: Map<Context, ReflectionProbe[]> = new Map();
|
|
24
24
|
|
|
25
|
+
static isUsingReflectionProbe(material: Material) {
|
|
26
|
+
return !!(material[$reflectionProbeKey] || material[$originalMaterial]?.[$reflectionProbeKey]);
|
|
27
|
+
}
|
|
28
|
+
|
|
25
29
|
public static get(object: Object3D | null | undefined, context: Context, isAnchor: boolean, anchor?: Object3D): ReflectionProbe | null {
|
|
26
30
|
if (!object || object.isObject3D !== true) return null;
|
|
27
31
|
if (disable) return null;
|
|
@@ -29,7 +33,7 @@ export class ReflectionProbe extends Behaviour {
|
|
|
29
33
|
if (probes) {
|
|
30
34
|
for (const probe of probes) {
|
|
31
35
|
if (!probe.__didAwake) probe.__internalAwake();
|
|
32
|
-
if (probe.
|
|
36
|
+
if (probe.activeAndEnabled) {
|
|
33
37
|
if (anchor) {
|
|
34
38
|
// test if anchor is reflection probe object
|
|
35
39
|
if (probe.gameObject === anchor) {
|
|
@@ -708,7 +708,15 @@ export class Renderer extends Behaviour implements IRenderer {
|
|
|
708
708
|
if (this.reflectionProbeUsage !== ReflectionProbeUsage.Off && this._reflectionProbe) {
|
|
709
709
|
this._reflectionProbe.onSet(this);
|
|
710
710
|
}
|
|
711
|
-
|
|
711
|
+
// since three 163 we need to set the envMap to the scene envMap if it is not set
|
|
712
|
+
// otherwise the envmapIntensity has no effect: https://github.com/mrdoob/three.js/pull/27903
|
|
713
|
+
// internal issue: https://linear.app/needle/issue/NE-6363
|
|
714
|
+
for (const mat of this._sharedMaterials) {
|
|
715
|
+
// If the material has a envMap and is NOT using a reflection probe we set the envMap to the scene environment
|
|
716
|
+
if (mat && "envMap" in mat && "envMapIntensity" in mat && !ReflectionProbe.isUsingReflectionProbe(mat)) {
|
|
717
|
+
mat.envMap = this.context.scene.environment;
|
|
718
|
+
}
|
|
719
|
+
}
|
|
712
720
|
}
|
|
713
721
|
|
|
714
722
|
private onBeforeRenderThree = (_renderer, _scene, _camera, _geometry, material, _group) => {
|
|
@@ -716,11 +724,6 @@ export class Renderer extends Behaviour implements IRenderer {
|
|
|
716
724
|
const factor = this.hasLightmap ? Math.PI : 1;
|
|
717
725
|
const environmentIntensity = this.context.mainCameraComponent?.environmentIntensity ?? 1;
|
|
718
726
|
material.envMapIntensity = Math.max(0, environmentIntensity * this.context.sceneLighting.environmentIntensity / factor);
|
|
719
|
-
|
|
720
|
-
// since three 163 we need to set the envMap to the scene envMap if it is not set
|
|
721
|
-
// otherwise the envmapIntensity has no effect: https://github.com/mrdoob/three.js/pull/27903
|
|
722
|
-
// internal issue: https://linear.app/needle/issue/NE-6363
|
|
723
|
-
if (!material.envMap) material.envMap = this.context.scene.environment;
|
|
724
727
|
}
|
|
725
728
|
|
|
726
729
|
if (this._lightmaps) {
|
|
@@ -856,7 +859,7 @@ export class SkinnedMeshRenderer extends MeshRenderer {
|
|
|
856
859
|
mesh.computeBoundingSphere();
|
|
857
860
|
mesh.geometry = geometry;
|
|
858
861
|
}
|
|
859
|
-
catch(err) {
|
|
862
|
+
catch (err) {
|
|
860
863
|
console.error(`Error updating bounding sphere for ${mesh.name}`, err);
|
|
861
864
|
}
|
|
862
865
|
}
|
|
@@ -33,7 +33,8 @@ export class Antialiasing extends PostProcessingEffect {
|
|
|
33
33
|
onCreateEffect(): EffectProviderResult {
|
|
34
34
|
const effect = new MODULES.POSTPROCESSING.MODULE.SMAAEffect({
|
|
35
35
|
preset: MODULES.POSTPROCESSING.MODULE.SMAAPreset.HIGH,
|
|
36
|
-
edgeDetectionMode: MODULES.POSTPROCESSING.MODULE.EdgeDetectionMode.
|
|
36
|
+
edgeDetectionMode: MODULES.POSTPROCESSING.MODULE.EdgeDetectionMode.LUMA,
|
|
37
|
+
predicationMode: MODULES.POSTPROCESSING.MODULE.PredicationMode.DEPTH,
|
|
37
38
|
});
|
|
38
39
|
|
|
39
40
|
this.preset.onValueChanged = (newValue) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ToneMappingEffect as _TonemappingEffect, ToneMappingMode } from "postprocessing";
|
|
2
|
-
import { ACESFilmicToneMapping, AgXToneMapping, LinearToneMapping, NeutralToneMapping, NoToneMapping, ReinhardToneMapping } from "three";
|
|
2
|
+
import { ACESFilmicToneMapping, AgXToneMapping, LinearToneMapping, NeutralToneMapping, NoToneMapping, ReinhardToneMapping, WebGLRenderer } from "three";
|
|
3
3
|
|
|
4
4
|
import { MODULES } from "../../../engine/engine_modules.js";
|
|
5
5
|
import { serializable } from "../../../engine/engine_serialization.js";
|
|
@@ -36,6 +36,7 @@ function toThreeToneMapping(mode: NEToneMappingMode | undefined) {
|
|
|
36
36
|
case NEToneMappingMode.KhronosNeutral:
|
|
37
37
|
return NeutralToneMapping;
|
|
38
38
|
default:
|
|
39
|
+
if(debug) console.warn("[Postprocessing] Unknown tone mapping mode", mode);
|
|
39
40
|
return NeutralToneMapping;
|
|
40
41
|
}
|
|
41
42
|
}
|
|
@@ -84,7 +85,7 @@ export class ToneMappingEffect extends PostProcessingEffect {
|
|
|
84
85
|
setMode(mode: NEToneMappingModeNames) {
|
|
85
86
|
const enumValue = NEToneMappingMode[mode as NEToneMappingModeNames];
|
|
86
87
|
if (enumValue === undefined) {
|
|
87
|
-
console.error("Invalid ToneMapping mode", mode);
|
|
88
|
+
console.error("[PostProcessing] Invalid ToneMapping mode", mode);
|
|
88
89
|
return this;
|
|
89
90
|
}
|
|
90
91
|
this.mode.value = enumValue;
|
|
@@ -110,7 +111,7 @@ export class ToneMappingEffect extends PostProcessingEffect {
|
|
|
110
111
|
if (other === this) break;
|
|
111
112
|
// If another tonemapping effect is found, warn the user
|
|
112
113
|
if (other != this && other instanceof ToneMappingEffect) {
|
|
113
|
-
console.warn("Multiple tonemapping effects found in the same postprocessing stack: Please check your scene setup.", { activeEffect: other, ignoredEffect: this });
|
|
114
|
+
console.warn("[PostProcessing] Multiple tonemapping effects found in the same postprocessing stack: Please check your scene setup.", { activeEffect: other, ignoredEffect: this });
|
|
114
115
|
return undefined;
|
|
115
116
|
}
|
|
116
117
|
}
|
|
@@ -119,8 +120,9 @@ export class ToneMappingEffect extends PostProcessingEffect {
|
|
|
119
120
|
|
|
120
121
|
// ensure the effect tonemapping value is initialized
|
|
121
122
|
if (this.mode.isInitialized == false) {
|
|
122
|
-
const
|
|
123
|
-
this.mode
|
|
123
|
+
const mode = threeToNeToneMapping(this.context.renderer.toneMapping);
|
|
124
|
+
if(debug) console.log("[PostProcessing] Initializing ToneMapping mode to renderer.toneMapping", this.context.renderer.toneMapping + " → " + mode);
|
|
125
|
+
this.mode.initialize(mode);
|
|
124
126
|
}
|
|
125
127
|
|
|
126
128
|
const threeMode = toThreeToneMapping(this.mode.value);
|
|
@@ -130,9 +132,9 @@ export class ToneMappingEffect extends PostProcessingEffect {
|
|
|
130
132
|
this.mode.onValueChanged = (newValue) => {
|
|
131
133
|
const threeMode = toThreeToneMapping(newValue);
|
|
132
134
|
tonemapping.mode = threeToneMappingToEffectMode(threeMode);
|
|
133
|
-
if (debug) console.log("ToneMapping mode changed to", NEToneMappingMode[newValue], threeMode, tonemapping.mode);
|
|
135
|
+
if (debug) console.log("[PostProcessing] ToneMapping mode changed to", NEToneMappingMode[newValue], threeMode, tonemapping.mode);
|
|
134
136
|
};
|
|
135
|
-
if (debug) console.log("Use ToneMapping", NEToneMappingMode[this.mode.value], threeMode, tonemapping.mode, "renderer.tonemapping: " + this.context.renderer.toneMapping);
|
|
137
|
+
if (debug) console.log("[PostProcessing] Use ToneMapping", NEToneMappingMode[this.mode.value], threeMode, tonemapping.mode, "renderer.tonemapping: " + this.context.renderer.toneMapping);
|
|
136
138
|
|
|
137
139
|
|
|
138
140
|
this.exposure.onValueChanged = (newValue) => {
|
|
@@ -103,7 +103,8 @@ export abstract class PostProcessingEffect extends Component implements IEffectP
|
|
|
103
103
|
protected onEffectEnabled(manager?: IPostProcessingManager) {
|
|
104
104
|
if (manager && manager.isPostProcessingManager === true) this._manager = manager;
|
|
105
105
|
else if (!this._manager) this._manager = getPostProcessingManager(this);
|
|
106
|
-
this._manager
|
|
106
|
+
this._manager!.addEffect(this);
|
|
107
|
+
this._manager!.dirty = true;
|
|
107
108
|
}
|
|
108
109
|
|
|
109
110
|
/** override to initialize bindings on parameters */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Effect, EffectComposer, Pass, ToneMappingEffect as _TonemappingEffect } from "postprocessing";
|
|
2
|
-
import { HalfFloatType, NoToneMapping } from "three";
|
|
2
|
+
import { Camera as Camera3, HalfFloatType, NoToneMapping } from "three";
|
|
3
3
|
|
|
4
4
|
import { showBalloonWarning } from "../../engine/debug/index.js";
|
|
5
5
|
// import { internal_SetSharpeningEffectModule } from "./Effects/Sharpening.js";
|
|
@@ -44,7 +44,7 @@ export class PostProcessingHandler {
|
|
|
44
44
|
this.context = context;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
apply(components: PostProcessingEffect[])
|
|
47
|
+
apply(components: PostProcessingEffect[]): Promise<void> {
|
|
48
48
|
if ("env" in import.meta && import.meta.env.VITE_NEEDLE_USE_POSTPROCESSING === "false") {
|
|
49
49
|
if (debug) console.warn("Postprocessing is disabled via vite env setting");
|
|
50
50
|
else console.debug("Postprocessing is disabled via vite env setting");
|
|
@@ -164,14 +164,20 @@ export class PostProcessingHandler {
|
|
|
164
164
|
this.applyEffects(context);
|
|
165
165
|
}
|
|
166
166
|
|
|
167
|
+
private _anyPassHasDepth = false;
|
|
168
|
+
private _anyPassHasNormal = false;
|
|
169
|
+
private _hasSmaaEffect = false;
|
|
170
|
+
|
|
171
|
+
get anyPassHasDepth() { return this._anyPassHasDepth; }
|
|
172
|
+
get anyPassHasNormal() { return this._anyPassHasNormal; }
|
|
173
|
+
get hasSmaaEffect() { return this._hasSmaaEffect; }
|
|
174
|
+
|
|
167
175
|
|
|
168
176
|
/** Build composer passes */
|
|
169
177
|
private applyEffects(context: Context) {
|
|
170
178
|
|
|
171
179
|
const effectsOrPasses = this._effects;
|
|
172
|
-
|
|
173
180
|
if (effectsOrPasses.length <= 0) return;
|
|
174
|
-
|
|
175
181
|
const camera = context.mainCameraComponent as Camera;
|
|
176
182
|
const renderer = context.renderer;
|
|
177
183
|
const scene = context.scene;
|
|
@@ -182,6 +188,17 @@ export class PostProcessingHandler {
|
|
|
182
188
|
// https://github.com/pmndrs/postprocessing/blob/271944b74b543a5b743a62803a167b60cc6bb4ee/src/core/EffectComposer.js#L230C12-L230C12
|
|
183
189
|
renderer[autoclearSetting] = renderer.autoClear;
|
|
184
190
|
|
|
191
|
+
// Reset state
|
|
192
|
+
this._anyPassHasDepth = false;
|
|
193
|
+
this._anyPassHasNormal = false;
|
|
194
|
+
this._hasSmaaEffect = false;
|
|
195
|
+
|
|
196
|
+
for (const ef of effectsOrPasses) {
|
|
197
|
+
if (ef instanceof MODULES.POSTPROCESSING.MODULE.SMAAEffect) {
|
|
198
|
+
this._hasSmaaEffect = true;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
185
202
|
// create composer and set active on context
|
|
186
203
|
if (!this._composer) {
|
|
187
204
|
// const hdrRenderTarget = new WebGLRenderTarget(window.innerWidth, window.innerHeight, { type: HalfFloatType });
|
|
@@ -194,11 +211,13 @@ export class PostProcessingHandler {
|
|
|
194
211
|
if (context.composer && context.composer !== this._composer) {
|
|
195
212
|
console.warn("There's already an active EffectComposer in your scene: replacing it with a new one. This might cause unexpected behaviour. Make sure to only use one PostprocessingManager/Volume in your scene.");
|
|
196
213
|
}
|
|
214
|
+
|
|
197
215
|
context.composer = this._composer;
|
|
198
216
|
const composer = context.composer;
|
|
199
217
|
composer.setMainCamera(cam);
|
|
200
218
|
composer.setRenderer(renderer);
|
|
201
219
|
composer.setMainScene(scene);
|
|
220
|
+
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)
|
|
202
221
|
|
|
203
222
|
for (const prev of composer.passes)
|
|
204
223
|
prev.dispose();
|
|
@@ -218,9 +237,11 @@ export class PostProcessingHandler {
|
|
|
218
237
|
const effects: Array<Effect> = [];
|
|
219
238
|
|
|
220
239
|
for (const ef of effectsOrPasses) {
|
|
221
|
-
if (ef instanceof MODULES.POSTPROCESSING.MODULE.Effect)
|
|
240
|
+
if (ef instanceof MODULES.POSTPROCESSING.MODULE.Effect) {
|
|
222
241
|
effects.push(ef as Effect);
|
|
242
|
+
}
|
|
223
243
|
else if (ef instanceof MODULES.POSTPROCESSING.MODULE.Pass) {
|
|
244
|
+
ef.renderToScreen = false;
|
|
224
245
|
composer.addPass(ef as Pass);
|
|
225
246
|
}
|
|
226
247
|
else {
|
|
@@ -233,9 +254,10 @@ export class PostProcessingHandler {
|
|
|
233
254
|
// create and apply uber pass
|
|
234
255
|
if (effects.length > 0) {
|
|
235
256
|
const pass = new MODULES.POSTPROCESSING.MODULE.EffectPass(cam, ...effects);
|
|
236
|
-
pass.name = effects.map(e => e.name).join(" ");
|
|
257
|
+
pass.name = effects.map(e => e.name).join(", ");
|
|
237
258
|
pass.mainScene = scene;
|
|
238
259
|
pass.enabled = true;
|
|
260
|
+
pass.renderToScreen = false;
|
|
239
261
|
composer.addPass(pass);
|
|
240
262
|
}
|
|
241
263
|
}
|
|
@@ -255,8 +277,10 @@ export class PostProcessingHandler {
|
|
|
255
277
|
pass.name = ef.name;
|
|
256
278
|
composer.addPass(pass);
|
|
257
279
|
}
|
|
258
|
-
else if (ef instanceof MODULES.POSTPROCESSING.MODULE.Pass)
|
|
280
|
+
else if (ef instanceof MODULES.POSTPROCESSING.MODULE.Pass) {
|
|
281
|
+
ef.renderToScreen = false;
|
|
259
282
|
composer.addPass(ef as Pass);
|
|
283
|
+
}
|
|
260
284
|
else
|
|
261
285
|
// seems some effects are not correctly typed, but three can deal with them,
|
|
262
286
|
// so we just pass them through
|
|
@@ -264,10 +288,90 @@ export class PostProcessingHandler {
|
|
|
264
288
|
}
|
|
265
289
|
}
|
|
266
290
|
|
|
267
|
-
|
|
291
|
+
// 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)
|
|
292
|
+
for (let i = 0; i < composer.passes.length; i++) {
|
|
293
|
+
const pass = composer.passes[i];
|
|
294
|
+
const isLast = i === composer.passes.length - 1;
|
|
295
|
+
if ((pass as any)?.configuration !== undefined) {
|
|
296
|
+
(pass as any).configuration.gammaCorrection = isLast;
|
|
297
|
+
}
|
|
298
|
+
else if ("autosetGamma" in pass) {
|
|
299
|
+
// Some effects have a autosetGamma property that we can use to set the gamma correction
|
|
300
|
+
pass.autosetGamma = isLast;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
this._anyPassHasDepth ||= pass.needsDepthTexture;
|
|
304
|
+
if (pass instanceof MODULES.POSTPROCESSING.MODULE.NormalPass) {
|
|
305
|
+
this._anyPassHasNormal = true;
|
|
306
|
+
}
|
|
307
|
+
if (pass instanceof MODULES.POSTPROCESSING.MODULE.SMAAEffect) {
|
|
308
|
+
this._hasSmaaEffect = true;
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
// DEBUG LAND BELOW
|
|
313
|
+
if (debug) console.log("[PostProcessing] Passes →", [...composer.passes], "\n---------------------------------\n• " + composer.passes.map(i => i.name).join("\n• ") + "\n");
|
|
314
|
+
if (debug) this._onCreateEffectsDebug(this._composer!, cam);
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
private orderEffects() {
|
|
318
|
+
if (debug === "verbose") console.debug("Before ordering effects", [...this._effects]);
|
|
319
|
+
|
|
320
|
+
// Order of effects for correct results.
|
|
321
|
+
// Aligned with https://github.com/pmndrs/postprocessing/wiki/Effect-Merging#effect-execution-order
|
|
322
|
+
// We can not put this into global scope because then the module might not yet be initialized
|
|
323
|
+
effectsOrder ??= [
|
|
324
|
+
MODULES.POSTPROCESSING.MODULE.NormalPass,
|
|
325
|
+
MODULES.POSTPROCESSING.MODULE.DepthDownsamplingPass,
|
|
326
|
+
MODULES.POSTPROCESSING.MODULE.SMAAEffect,
|
|
327
|
+
MODULES.POSTPROCESSING.MODULE.SSAOEffect,
|
|
328
|
+
MODULES.POSTPROCESSING_AO.MODULE.N8AOPostPass,
|
|
329
|
+
MODULES.POSTPROCESSING.MODULE.TiltShiftEffect,
|
|
330
|
+
MODULES.POSTPROCESSING.MODULE.DepthOfFieldEffect,
|
|
331
|
+
MODULES.POSTPROCESSING.MODULE.ChromaticAberrationEffect,
|
|
332
|
+
MODULES.POSTPROCESSING.MODULE.BloomEffect,
|
|
333
|
+
MODULES.POSTPROCESSING.MODULE.SelectiveBloomEffect,
|
|
334
|
+
MODULES.POSTPROCESSING.MODULE.VignetteEffect,
|
|
335
|
+
MODULES.POSTPROCESSING.MODULE.PixelationEffect,
|
|
336
|
+
MODULES.POSTPROCESSING.MODULE.ToneMappingEffect,
|
|
337
|
+
MODULES.POSTPROCESSING.MODULE.HueSaturationEffect,
|
|
338
|
+
MODULES.POSTPROCESSING.MODULE.BrightnessContrastEffect,
|
|
339
|
+
// __SHARPENING_MODULE._SharpeningEffect,
|
|
340
|
+
];
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
// TODO: enforce correct order of effects (e.g. DOF before Bloom)
|
|
344
|
+
const effects = this._effects;
|
|
345
|
+
effects.sort((a, b) => {
|
|
346
|
+
// we use find index here because sometimes constructor names are prefixed with `_`
|
|
347
|
+
// 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)
|
|
348
|
+
const aidx = effectsOrder!.findIndex(e => a.constructor.name.endsWith(e.name));
|
|
349
|
+
const bidx = effectsOrder!.findIndex(e => b.constructor.name.endsWith(e.name));
|
|
350
|
+
// Unknown effects should be rendered first
|
|
351
|
+
if (aidx < 0) {
|
|
352
|
+
if (debug) console.warn("Unknown effect found: ", a.constructor.name);
|
|
353
|
+
return -1;
|
|
354
|
+
}
|
|
355
|
+
else if (bidx < 0) {
|
|
356
|
+
if (debug) console.warn("Unknown effect found: ", b.constructor.name);
|
|
357
|
+
return 1;
|
|
358
|
+
}
|
|
359
|
+
// if (aidx < 0) return 1;
|
|
360
|
+
// if (bidx < 0) return -1;
|
|
361
|
+
return aidx - bidx;
|
|
362
|
+
});
|
|
363
|
+
|
|
364
|
+
if (debug === "verbose") console.debug("After ordering effects", [...this._effects]);
|
|
365
|
+
}
|
|
366
|
+
|
|
268
367
|
|
|
269
|
-
console.log("[PostProcessing] Passes →", composer.passes);
|
|
270
368
|
|
|
369
|
+
|
|
370
|
+
private _menuEntry: HTMLSelectElement | null = null;
|
|
371
|
+
private _passIndices: number[] | null = null;
|
|
372
|
+
|
|
373
|
+
private _onCreateEffectsDebug(composer: EffectComposer, cam: Camera3) {
|
|
374
|
+
if (debug === "passes") {
|
|
271
375
|
// DepthEffect for debugging purposes, disabled by default, can be selected in the debug pass select
|
|
272
376
|
const depthEffect = new MODULES.POSTPROCESSING.MODULE.DepthEffect({
|
|
273
377
|
blendFunction: MODULES.POSTPROCESSING.MODULE.BlendFunction.NORMAL,
|
|
@@ -303,7 +407,7 @@ export class PostProcessingHandler {
|
|
|
303
407
|
if (menu && this._passIndices === null) {
|
|
304
408
|
if (this._menuEntry)
|
|
305
409
|
this._menuEntry.remove();
|
|
306
|
-
|
|
410
|
+
|
|
307
411
|
const select = document.createElement("select");
|
|
308
412
|
select.multiple = true;
|
|
309
413
|
const defaultOpt = document.createElement("option");
|
|
@@ -327,73 +431,12 @@ export class PostProcessingHandler {
|
|
|
327
431
|
else {
|
|
328
432
|
this._passIndices = indices;
|
|
329
433
|
}
|
|
330
|
-
|
|
331
|
-
this.applyEffects(context);
|
|
434
|
+
this.applyEffects(this.context);
|
|
332
435
|
});
|
|
333
436
|
}
|
|
334
437
|
}
|
|
335
438
|
}
|
|
336
439
|
|
|
337
|
-
private _menuEntry: HTMLSelectElement | null = null;
|
|
338
|
-
private _passIndices: number[] | null = null;
|
|
339
|
-
|
|
340
|
-
private orderEffects() {
|
|
341
|
-
if (debug) console.log("Before ordering effects", [...this._effects]);
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
// Order of effects for correct results.
|
|
346
|
-
// Aligned with https://github.com/pmndrs/postprocessing/wiki/Effect-Merging#effect-execution-order
|
|
347
|
-
// We can not put this into global scope because then the module might not yet be initialized
|
|
348
|
-
effectsOrder ??= [
|
|
349
|
-
MODULES.POSTPROCESSING.MODULE.NormalPass,
|
|
350
|
-
MODULES.POSTPROCESSING.MODULE.DepthDownsamplingPass,
|
|
351
|
-
MODULES.POSTPROCESSING.MODULE.SMAAEffect,
|
|
352
|
-
MODULES.POSTPROCESSING.MODULE.SSAOEffect,
|
|
353
|
-
MODULES.POSTPROCESSING_AO.MODULE.N8AOPostPass,
|
|
354
|
-
MODULES.POSTPROCESSING.MODULE.TiltShiftEffect,
|
|
355
|
-
MODULES.POSTPROCESSING.MODULE.DepthOfFieldEffect,
|
|
356
|
-
MODULES.POSTPROCESSING.MODULE.ChromaticAberrationEffect,
|
|
357
|
-
MODULES.POSTPROCESSING.MODULE.BloomEffect,
|
|
358
|
-
MODULES.POSTPROCESSING.MODULE.SelectiveBloomEffect,
|
|
359
|
-
MODULES.POSTPROCESSING.MODULE.VignetteEffect,
|
|
360
|
-
MODULES.POSTPROCESSING.MODULE.PixelationEffect,
|
|
361
|
-
MODULES.POSTPROCESSING.MODULE.ToneMappingEffect,
|
|
362
|
-
MODULES.POSTPROCESSING.MODULE.HueSaturationEffect,
|
|
363
|
-
MODULES.POSTPROCESSING.MODULE.BrightnessContrastEffect,
|
|
364
|
-
// __SHARPENING_MODULE._SharpeningEffect,
|
|
365
|
-
];
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
// TODO: enforce correct order of effects (e.g. DOF before Bloom)
|
|
369
|
-
const effects = this._effects;
|
|
370
|
-
effects.sort((a, b) => {
|
|
371
|
-
// we use find index here because sometimes constructor names are prefixed with `_`
|
|
372
|
-
// 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)
|
|
373
|
-
const aidx = effectsOrder!.findIndex(e => a.constructor.name.endsWith(e.name));
|
|
374
|
-
const bidx = effectsOrder!.findIndex(e => b.constructor.name.endsWith(e.name));
|
|
375
|
-
// Unknown effects should be rendered first
|
|
376
|
-
if (aidx < 0) {
|
|
377
|
-
if (debug) console.warn("Unknown effect found: ", a.constructor.name);
|
|
378
|
-
return -1;
|
|
379
|
-
}
|
|
380
|
-
else if (bidx < 0) {
|
|
381
|
-
if (debug) console.warn("Unknown effect found: ", b.constructor.name);
|
|
382
|
-
return 1;
|
|
383
|
-
}
|
|
384
|
-
if (aidx < 0) return 1;
|
|
385
|
-
if (bidx < 0) return -1;
|
|
386
|
-
return aidx - bidx;
|
|
387
|
-
});
|
|
388
|
-
if (debug) console.log("After ordering effects", [...this._effects]);
|
|
389
|
-
for (let i = 0; i < effects.length; i++) {
|
|
390
|
-
const effect = effects[i] as any;
|
|
391
|
-
if (effect?.configuration?.gammaCorrection !== undefined) {
|
|
392
|
-
const isLast = i === effects.length - 1;
|
|
393
|
-
effect.configuration.gammaCorrection = isLast;
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
440
|
}
|
|
398
441
|
|
|
399
442
|
let effectsOrder: Array<Constructor<Effect | Pass>> | null = null;
|