@shapediver/viewer.rendering-engine.rendering-engine-threejs 3.2.6 → 3.2.8
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/dist/managers/PostProcessingManager.d.ts +3 -2
- package/dist/managers/PostProcessingManager.d.ts.map +1 -1
- package/dist/managers/PostProcessingManager.js +25 -11
- package/dist/managers/PostProcessingManager.js.map +1 -1
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.d.ts +1 -0
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.d.ts.map +1 -1
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.js +38 -16
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.js.map +1 -1
- package/package.json +17 -17
- package/src/managers/PostProcessingManager.ts +28 -16
- package/src/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.ts +31 -18
|
@@ -16,6 +16,7 @@ export declare class PostProcessingManager implements IManager {
|
|
|
16
16
|
private _antiAliasingTechnique;
|
|
17
17
|
private _antiAliasingTechniqueMobile;
|
|
18
18
|
private _composer?;
|
|
19
|
+
private _currentCameraId;
|
|
19
20
|
private _effectDefinitions;
|
|
20
21
|
private _effectPass?;
|
|
21
22
|
private _effects;
|
|
@@ -25,12 +26,11 @@ export declare class PostProcessingManager implements IManager {
|
|
|
25
26
|
private _manualPostProcessing;
|
|
26
27
|
private _outlineManagers;
|
|
27
28
|
private _renderPass?;
|
|
29
|
+
private _sceneExtents;
|
|
28
30
|
private _selectiveBloomManagers;
|
|
29
31
|
private _smaaEffect?;
|
|
30
32
|
private _ssaaRenderPass?;
|
|
31
|
-
private _sceneExtents;
|
|
32
33
|
private _suspendEffectPassUpdate;
|
|
33
|
-
private _currentCameraId;
|
|
34
34
|
constructor(_renderingEngine: RenderingEngine);
|
|
35
35
|
get antiAliasingTechnique(): ANTI_ALIASING_TECHNIQUE;
|
|
36
36
|
set antiAliasingTechnique(value: ANTI_ALIASING_TECHNIQUE);
|
|
@@ -1010,5 +1010,6 @@ export declare class PostProcessingManager implements IManager {
|
|
|
1010
1010
|
resize(width: number, height: number): void;
|
|
1011
1011
|
saveSettings(settingsEngine: SettingsEngine): void;
|
|
1012
1012
|
updateEffect(token: string, definition: IPostProcessingEffectDefinition): void;
|
|
1013
|
+
private addPassToEffectComposer;
|
|
1013
1014
|
}
|
|
1014
1015
|
//# sourceMappingURL=PostProcessingManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostProcessingManager.d.ts","sourceRoot":"","sources":["../../src/managers/PostProcessingManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACH,aAAa,EAKb,MAAM,EACN,cAAc,EAMd,UAAU,EAaV,iBAAiB,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAKH,cAAc,EAGjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EACH,uBAAuB,EAYvB,+BAA+B,EAC/B,2BAA2B,EAO3B,2BAA2B,EAC9B,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,sDAAsD,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"PostProcessingManager.d.ts","sourceRoot":"","sources":["../../src/managers/PostProcessingManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,27 +45,27 @@ const SSAOEffect_1 = require("./postprocessing/ao/ssao/SSAOEffect");
|
|
|
45
45
|
const HBAOEffect_1 = require("./postprocessing/ao/hbao/HBAOEffect");
|
|
46
46
|
const gl_matrix_1 = require("gl-matrix");
|
|
47
47
|
class PostProcessingManager {
|
|
48
|
-
// #endregion Properties (
|
|
48
|
+
// #endregion Properties (22)
|
|
49
49
|
// #region Constructors (1)
|
|
50
50
|
constructor(_renderingEngine) {
|
|
51
51
|
this._renderingEngine = _renderingEngine;
|
|
52
|
-
// #region Properties (
|
|
52
|
+
// #region Properties (22)
|
|
53
53
|
this._converter = viewer_shared_services_1.Converter.instance;
|
|
54
54
|
this._eventEngine = viewer_shared_services_1.EventEngine.instance;
|
|
55
55
|
this._systemInfo = viewer_shared_services_1.SystemInfo.instance;
|
|
56
56
|
this._uuidGenerator = viewer_shared_services_1.UuidGenerator.instance;
|
|
57
57
|
this._antiAliasingTechnique = IPostProcessingEffectDefinitions_1.ANTI_ALIASING_TECHNIQUE.SMAA;
|
|
58
58
|
this._antiAliasingTechniqueMobile = IPostProcessingEffectDefinitions_1.ANTI_ALIASING_TECHNIQUE.FXAA;
|
|
59
|
+
this._currentCameraId = '';
|
|
59
60
|
this._effectDefinitions = [];
|
|
60
61
|
this._effects = [];
|
|
61
62
|
this._enablePostProcessingOnMobile = true;
|
|
62
63
|
this._godRaysManagers = {};
|
|
63
64
|
this._manualPostProcessing = false;
|
|
64
65
|
this._outlineManagers = {};
|
|
65
|
-
this._selectiveBloomManagers = {};
|
|
66
66
|
this._sceneExtents = 0;
|
|
67
|
+
this._selectiveBloomManagers = {};
|
|
67
68
|
this._suspendEffectPassUpdate = false;
|
|
68
|
-
this._currentCameraId = '';
|
|
69
69
|
this._eventEngine.addListener(viewer_shared_services_1.EVENTTYPE.SCENE.SCENE_BOUNDING_BOX_CHANGE, (e) => {
|
|
70
70
|
const viewerEvent = e;
|
|
71
71
|
if (viewerEvent.viewportId === this._renderingEngine.id) {
|
|
@@ -83,7 +83,7 @@ class PostProcessingManager {
|
|
|
83
83
|
// });
|
|
84
84
|
}
|
|
85
85
|
// #endregion Constructors (1)
|
|
86
|
-
// #region Public
|
|
86
|
+
// #region Public Getters And Setters (15)
|
|
87
87
|
get antiAliasingTechnique() {
|
|
88
88
|
return this._antiAliasingTechnique;
|
|
89
89
|
}
|
|
@@ -137,8 +137,8 @@ class PostProcessingManager {
|
|
|
137
137
|
if (this._ssaaRenderPass)
|
|
138
138
|
this._ssaaRenderPass.sampleLevel = value;
|
|
139
139
|
}
|
|
140
|
-
// #endregion Public
|
|
141
|
-
// #region Public Methods (
|
|
140
|
+
// #endregion Public Getters And Setters (15)
|
|
141
|
+
// #region Public Methods (13)
|
|
142
142
|
addEffect(definition, t) {
|
|
143
143
|
const token = t || this._uuidGenerator.create();
|
|
144
144
|
this._effectDefinitions.push({ token, definition });
|
|
@@ -198,10 +198,10 @@ class PostProcessingManager {
|
|
|
198
198
|
this._composer.removeAllPasses();
|
|
199
199
|
const antiAliasingTechnique = this._systemInfo.isMobile === true ? this._antiAliasingTechniqueMobile : this._antiAliasingTechnique;
|
|
200
200
|
if (antiAliasingTechnique === IPostProcessingEffectDefinitions_1.ANTI_ALIASING_TECHNIQUE.SSAA) {
|
|
201
|
-
this.
|
|
201
|
+
this.addPassToEffectComposer(this._ssaaRenderPass);
|
|
202
202
|
}
|
|
203
203
|
else {
|
|
204
|
-
this.
|
|
204
|
+
this.addPassToEffectComposer(this._renderPass);
|
|
205
205
|
}
|
|
206
206
|
// remove the effects where the tokens are not in the effectDefinitions
|
|
207
207
|
this._effects.forEach(e => e.effect.dispose());
|
|
@@ -521,11 +521,11 @@ class PostProcessingManager {
|
|
|
521
521
|
effectArray.unshift(this._smaaEffect);
|
|
522
522
|
}
|
|
523
523
|
this._effectPass = new postprocessing_1.EffectPass(this._renderingEngine.camera, ...this._effects.map(v => v.effect));
|
|
524
|
-
this.
|
|
524
|
+
this.addPassToEffectComposer(this._effectPass);
|
|
525
525
|
// for the AO effects we need to add a separate AA pass at the end that anti-aliases the AO effect
|
|
526
526
|
if (this._effectDefinitions.find(e => e.definition.type === IPostProcessingEffectDefinitions_1.POST_PROCESSING_EFFECT_TYPE.HBAO || e.definition.type === IPostProcessingEffectDefinitions_1.POST_PROCESSING_EFFECT_TYPE.SSAO)) {
|
|
527
527
|
// respect the AA choice if one of the effects was selected, use SMAA otherwise
|
|
528
|
-
this.
|
|
528
|
+
this.addPassToEffectComposer(new postprocessing_1.EffectPass(this._renderingEngine.camera, antiAliasingTechnique === IPostProcessingEffectDefinitions_1.ANTI_ALIASING_TECHNIQUE.FXAA ? this._fxaaEffect : this._smaaEffect));
|
|
529
529
|
}
|
|
530
530
|
}
|
|
531
531
|
getDefaultEffectProperties(type) {
|
|
@@ -1008,6 +1008,20 @@ class PostProcessingManager {
|
|
|
1008
1008
|
this.removeEffect(token);
|
|
1009
1009
|
this.addEffect(definition, token);
|
|
1010
1010
|
}
|
|
1011
|
+
// #endregion Public Methods (13)
|
|
1012
|
+
// #region Private Methods (1)
|
|
1013
|
+
addPassToEffectComposer(pass) {
|
|
1014
|
+
if (this._composer) {
|
|
1015
|
+
try {
|
|
1016
|
+
this._composer.addPass(pass);
|
|
1017
|
+
}
|
|
1018
|
+
catch (e) {
|
|
1019
|
+
// in this case a WebGL error is thrown, when the WebGL context is lost
|
|
1020
|
+
// as we already throw an error in the rendering engine, we can ignore this error here
|
|
1021
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/getContextAttributes
|
|
1022
|
+
}
|
|
1023
|
+
}
|
|
1024
|
+
}
|
|
1011
1025
|
}
|
|
1012
1026
|
exports.PostProcessingManager = PostProcessingManager;
|
|
1013
1027
|
//# sourceMappingURL=PostProcessingManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostProcessingManager.js","sourceRoot":"","sources":["../../src/managers/PostProcessingManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PostProcessingManager.js","sourceRoot":"","sources":["../../src/managers/PostProcessingManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,7 @@ export declare class PoissionDenoisePass extends Pass {
|
|
|
24
24
|
constructor(camera: Camera, inputTexture: Texture, depthTexture: Texture, options?: {
|
|
25
25
|
[key: string]: unknown;
|
|
26
26
|
});
|
|
27
|
+
private loadBlueNoiseTexture;
|
|
27
28
|
get texture(): Texture;
|
|
28
29
|
generateDenoiseSamples(numSamples: number, numRings: number, r: number, texelSize: Vector2): Vector2[];
|
|
29
30
|
generatePoissonDiskConstant(poissonDisk: Vector2[]): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PoissionDenoisePass.d.ts","sourceRoot":"","sources":["../../../../../src/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.ts"],"names":[],"mappings":"AACA,OAAO,EACN,MAAM,EAON,OAAO,EAEP,OAAO,EACP,aAAa,EACb,iBAAiB,EACjB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAkBtC,qBAAa,mBAAoB,SAAQ,IAAI;IAG5C,OAAc,cAAc;;;;;;;;;;MAA6B;IACzD,OAAc,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAElC,KAAK,SAAK;IACV,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,SAAwC;IAClD,MAAM,SAAK;IACX,aAAa,EAAE,iBAAiB,CAAC;IACjC,aAAa,EAAE,iBAAiB,CAAC;IACjC,KAAK,SAAS;IACd,OAAO,SAAM;gBAMR,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAA8B;
|
|
1
|
+
{"version":3,"file":"PoissionDenoisePass.d.ts","sourceRoot":"","sources":["../../../../../src/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.ts"],"names":[],"mappings":"AACA,OAAO,EACN,MAAM,EAON,OAAO,EAEP,OAAO,EACP,aAAa,EACb,iBAAiB,EACjB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAkBtC,qBAAa,mBAAoB,SAAQ,IAAI;IAG5C,OAAc,cAAc;;;;;;;;;;MAA6B;IACzD,OAAc,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAElC,KAAK,SAAK;IACV,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,SAAwC;IAClD,MAAM,SAAK;IACX,aAAa,EAAE,iBAAiB,CAAC;IACjC,aAAa,EAAE,iBAAiB,CAAC;IACjC,KAAK,SAAS;IACd,OAAO,SAAM;gBAMR,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAA8B;YAkE1H,oBAAoB;IAgCnC,IAAW,OAAO,YAEjB;IAMM,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO;IA4B1F,2BAA2B,CAAC,WAAW,EAAE,OAAO,EAAE;IAqBlD,MAAM,CAAC,QAAQ,EAAE,aAAa;IA4B9B,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAsB5C"}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
12
|
exports.PoissionDenoisePass = void 0;
|
|
4
13
|
const basic_1 = require("../utils/shader/basic");
|
|
@@ -29,22 +38,8 @@ class PoissionDenoisePass extends postprocessing_1.Pass {
|
|
|
29
38
|
this.radius = 8;
|
|
30
39
|
this.rings = 5.625;
|
|
31
40
|
this.samples = 16;
|
|
32
|
-
if (PoissionDenoisePass.blueNoiseTexture === undefined)
|
|
33
|
-
|
|
34
|
-
const url = URL.createObjectURL(result.data.blob);
|
|
35
|
-
new three_1.TextureLoader().load(url, texture => {
|
|
36
|
-
URL.revokeObjectURL(url);
|
|
37
|
-
PoissionDenoisePass.blueNoiseTexture = texture;
|
|
38
|
-
PoissionDenoisePass.blueNoiseTexture.minFilter = three_1.NearestFilter;
|
|
39
|
-
PoissionDenoisePass.blueNoiseTexture.magFilter = three_1.NearestFilter;
|
|
40
|
-
PoissionDenoisePass.blueNoiseTexture.wrapS = three_1.RepeatWrapping;
|
|
41
|
-
PoissionDenoisePass.blueNoiseTexture.wrapT = three_1.RepeatWrapping;
|
|
42
|
-
PoissionDenoisePass.blueNoiseTexture.colorSpace = three_1.NoColorSpace;
|
|
43
|
-
PoissionDenoisePass.blueNoiseTexture.needsUpdate = true;
|
|
44
|
-
this.fullscreenMaterial.uniforms.blueNoiseTexture.value = PoissionDenoisePass.blueNoiseTexture;
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
}
|
|
41
|
+
if (PoissionDenoisePass.blueNoiseTexture === undefined)
|
|
42
|
+
this.loadBlueNoiseTexture();
|
|
48
43
|
options = Object.assign(Object.assign({}, defaultPoissonBlurOptions), options);
|
|
49
44
|
this.inputTexture = inputTexture;
|
|
50
45
|
this.fullscreenMaterial = new three_1.ShaderMaterial({
|
|
@@ -96,6 +91,33 @@ class PoissionDenoisePass extends postprocessing_1.Pass {
|
|
|
96
91
|
});
|
|
97
92
|
}
|
|
98
93
|
}
|
|
94
|
+
loadBlueNoiseTexture() {
|
|
95
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
96
|
+
const result = yield viewer_shared_services_1.HttpClient.instance.loadTexture('https://viewer.shapediver.com/v3/graphics/LDR_RGBA_0.png');
|
|
97
|
+
if (result) {
|
|
98
|
+
const url = URL.createObjectURL(result.data.blob);
|
|
99
|
+
new three_1.TextureLoader().load(url, texture => {
|
|
100
|
+
URL.revokeObjectURL(url);
|
|
101
|
+
PoissionDenoisePass.blueNoiseTexture = texture;
|
|
102
|
+
PoissionDenoisePass.blueNoiseTexture.minFilter = three_1.NearestFilter;
|
|
103
|
+
PoissionDenoisePass.blueNoiseTexture.magFilter = three_1.NearestFilter;
|
|
104
|
+
PoissionDenoisePass.blueNoiseTexture.wrapS = three_1.RepeatWrapping;
|
|
105
|
+
PoissionDenoisePass.blueNoiseTexture.wrapT = three_1.RepeatWrapping;
|
|
106
|
+
PoissionDenoisePass.blueNoiseTexture.colorSpace = three_1.NoColorSpace;
|
|
107
|
+
PoissionDenoisePass.blueNoiseTexture.needsUpdate = true;
|
|
108
|
+
this.fullscreenMaterial.uniforms.blueNoiseTexture.value = PoissionDenoisePass.blueNoiseTexture;
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
viewer_shared_services_1.Logger.instance.warn('The blue noise texture could not be loaded. This may result in a suboptimal denoising quality. Retrying in 1 second...');
|
|
113
|
+
// if there was an issue loading the texture
|
|
114
|
+
// set a timeout with 1 second to try again
|
|
115
|
+
setTimeout(() => {
|
|
116
|
+
this.loadBlueNoiseTexture();
|
|
117
|
+
}, 1000);
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
}
|
|
99
121
|
// #endregion Constructors (1)
|
|
100
122
|
// #region Public Getters And Setters (1)
|
|
101
123
|
get texture() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PoissionDenoisePass.js","sourceRoot":"","sources":["../../../../../src/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PoissionDenoisePass.js","sourceRoot":"","sources":["../../../../../src/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shapediver/viewer.rendering-engine.rendering-engine-threejs",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.8",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"author": "Michael Oppitz <michael@shapediver.com>",
|
|
@@ -39,21 +39,21 @@
|
|
|
39
39
|
"testEnvironment": "node"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@shapediver/viewer.data-engine.gltf-converter": "3.2.
|
|
43
|
-
"@shapediver/viewer.data-engine.shared-types": "3.2.
|
|
44
|
-
"@shapediver/viewer.data-engine.tag3d-engine": "3.2.
|
|
45
|
-
"@shapediver/viewer.rendering-engine.animation-engine": "3.2.
|
|
46
|
-
"@shapediver/viewer.rendering-engine.animation-frame-engine": "3.2.
|
|
47
|
-
"@shapediver/viewer.rendering-engine.camera-engine": "3.2.
|
|
48
|
-
"@shapediver/viewer.rendering-engine.canvas-engine": "3.2.
|
|
49
|
-
"@shapediver/viewer.rendering-engine.intersection-engine": "3.2.
|
|
50
|
-
"@shapediver/viewer.rendering-engine.light-engine": "3.2.
|
|
51
|
-
"@shapediver/viewer.rendering-engine.rendering-engine": "3.2.
|
|
52
|
-
"@shapediver/viewer.shared.global-access-objects": "3.2.
|
|
53
|
-
"@shapediver/viewer.shared.math": "3.2.
|
|
54
|
-
"@shapediver/viewer.shared.node-tree": "3.2.
|
|
55
|
-
"@shapediver/viewer.shared.services": "3.2.
|
|
56
|
-
"@shapediver/viewer.shared.types": "3.2.
|
|
42
|
+
"@shapediver/viewer.data-engine.gltf-converter": "3.2.8",
|
|
43
|
+
"@shapediver/viewer.data-engine.shared-types": "3.2.8",
|
|
44
|
+
"@shapediver/viewer.data-engine.tag3d-engine": "3.2.8",
|
|
45
|
+
"@shapediver/viewer.rendering-engine.animation-engine": "3.2.8",
|
|
46
|
+
"@shapediver/viewer.rendering-engine.animation-frame-engine": "3.2.8",
|
|
47
|
+
"@shapediver/viewer.rendering-engine.camera-engine": "3.2.8",
|
|
48
|
+
"@shapediver/viewer.rendering-engine.canvas-engine": "3.2.8",
|
|
49
|
+
"@shapediver/viewer.rendering-engine.intersection-engine": "3.2.8",
|
|
50
|
+
"@shapediver/viewer.rendering-engine.light-engine": "3.2.8",
|
|
51
|
+
"@shapediver/viewer.rendering-engine.rendering-engine": "3.2.8",
|
|
52
|
+
"@shapediver/viewer.shared.global-access-objects": "3.2.8",
|
|
53
|
+
"@shapediver/viewer.shared.math": "3.2.8",
|
|
54
|
+
"@shapediver/viewer.shared.node-tree": "3.2.8",
|
|
55
|
+
"@shapediver/viewer.shared.services": "3.2.8",
|
|
56
|
+
"@shapediver/viewer.shared.types": "3.2.8",
|
|
57
57
|
"@tweenjs/tween.js": "^18.6.4",
|
|
58
58
|
"@types/stats.js": "^0.17.0",
|
|
59
59
|
"@types/three": "0.162.0",
|
|
@@ -62,5 +62,5 @@
|
|
|
62
62
|
"stats.js": "^0.17.0",
|
|
63
63
|
"three": "0.162.0"
|
|
64
64
|
},
|
|
65
|
-
"gitHead": "
|
|
65
|
+
"gitHead": "a8c27c745498812d103635aeec6d5311d6e8c8e3"
|
|
66
66
|
}
|
|
@@ -70,9 +70,8 @@ import { HBAOEffect } from './postprocessing/ao/hbao/HBAOEffect';
|
|
|
70
70
|
import { ISceneEvent } from '@shapediver/viewer.shared.types';
|
|
71
71
|
import { vec3 } from 'gl-matrix';
|
|
72
72
|
|
|
73
|
-
|
|
74
73
|
export class PostProcessingManager implements IManager {
|
|
75
|
-
// #region Properties (
|
|
74
|
+
// #region Properties (22)
|
|
76
75
|
|
|
77
76
|
private readonly _converter: Converter = Converter.instance;
|
|
78
77
|
private readonly _eventEngine: EventEngine = EventEngine.instance;
|
|
@@ -82,6 +81,7 @@ export class PostProcessingManager implements IManager {
|
|
|
82
81
|
private _antiAliasingTechnique: ANTI_ALIASING_TECHNIQUE = ANTI_ALIASING_TECHNIQUE.SMAA;
|
|
83
82
|
private _antiAliasingTechniqueMobile: ANTI_ALIASING_TECHNIQUE = ANTI_ALIASING_TECHNIQUE.FXAA;
|
|
84
83
|
private _composer?: EffectComposer;
|
|
84
|
+
private _currentCameraId: string = '';
|
|
85
85
|
private _effectDefinitions: {
|
|
86
86
|
token: string,
|
|
87
87
|
definition: IPostProcessingEffectDefinition
|
|
@@ -101,16 +101,15 @@ export class PostProcessingManager implements IManager {
|
|
|
101
101
|
[key: string]: OutlineManager
|
|
102
102
|
} = {};
|
|
103
103
|
private _renderPass?: RenderPass;
|
|
104
|
+
private _sceneExtents = 0;
|
|
104
105
|
private _selectiveBloomManagers: {
|
|
105
106
|
[key: string]: SelectiveBloomManager
|
|
106
107
|
} = {};
|
|
107
108
|
private _smaaEffect?: SMAAEffect;
|
|
108
109
|
private _ssaaRenderPass?: SSAARenderPass;
|
|
109
|
-
private _sceneExtents = 0;
|
|
110
110
|
private _suspendEffectPassUpdate = false;
|
|
111
|
-
private _currentCameraId: string = '';
|
|
112
111
|
|
|
113
|
-
// #endregion Properties (
|
|
112
|
+
// #endregion Properties (22)
|
|
114
113
|
|
|
115
114
|
// #region Constructors (1)
|
|
116
115
|
|
|
@@ -135,7 +134,7 @@ export class PostProcessingManager implements IManager {
|
|
|
135
134
|
|
|
136
135
|
// #endregion Constructors (1)
|
|
137
136
|
|
|
138
|
-
// #region Public
|
|
137
|
+
// #region Public Getters And Setters (15)
|
|
139
138
|
|
|
140
139
|
public get antiAliasingTechnique(): ANTI_ALIASING_TECHNIQUE {
|
|
141
140
|
return this._antiAliasingTechnique;
|
|
@@ -213,9 +212,9 @@ export class PostProcessingManager implements IManager {
|
|
|
213
212
|
this._ssaaRenderPass.sampleLevel = value;
|
|
214
213
|
}
|
|
215
214
|
|
|
216
|
-
// #endregion Public
|
|
215
|
+
// #endregion Public Getters And Setters (15)
|
|
217
216
|
|
|
218
|
-
// #region Public Methods (
|
|
217
|
+
// #region Public Methods (13)
|
|
219
218
|
|
|
220
219
|
public addEffect(definition: IPostProcessingEffectDefinition, t?: string): string {
|
|
221
220
|
const token = t || this._uuidGenerator.create();
|
|
@@ -231,7 +230,6 @@ export class PostProcessingManager implements IManager {
|
|
|
231
230
|
if(!this._outlineManagers[token])
|
|
232
231
|
this._outlineManagers[token] = new OutlineManager(this._renderingEngine);
|
|
233
232
|
break;
|
|
234
|
-
|
|
235
233
|
|
|
236
234
|
case POST_PROCESSING_EFFECT_TYPE.SELECTIVE_BLOOM:
|
|
237
235
|
if(!this._selectiveBloomManagers[token])
|
|
@@ -240,7 +238,6 @@ export class PostProcessingManager implements IManager {
|
|
|
240
238
|
|
|
241
239
|
default:
|
|
242
240
|
}
|
|
243
|
-
|
|
244
241
|
|
|
245
242
|
this.changeEffectPass();
|
|
246
243
|
return token;
|
|
@@ -288,9 +285,9 @@ export class PostProcessingManager implements IManager {
|
|
|
288
285
|
|
|
289
286
|
const antiAliasingTechnique = this._systemInfo.isMobile === true ? this._antiAliasingTechniqueMobile : this._antiAliasingTechnique;
|
|
290
287
|
if (antiAliasingTechnique === ANTI_ALIASING_TECHNIQUE.SSAA) {
|
|
291
|
-
this.
|
|
288
|
+
this.addPassToEffectComposer(this._ssaaRenderPass!);
|
|
292
289
|
} else {
|
|
293
|
-
this.
|
|
290
|
+
this.addPassToEffectComposer(this._renderPass!);
|
|
294
291
|
}
|
|
295
292
|
|
|
296
293
|
// remove the effects where the tokens are not in the effectDefinitions
|
|
@@ -641,12 +638,12 @@ export class PostProcessingManager implements IManager {
|
|
|
641
638
|
}
|
|
642
639
|
|
|
643
640
|
this._effectPass = new EffectPass(this._renderingEngine.camera, ...this._effects.map(v => v.effect));
|
|
644
|
-
this.
|
|
641
|
+
this.addPassToEffectComposer(this._effectPass);
|
|
645
642
|
|
|
646
643
|
// for the AO effects we need to add a separate AA pass at the end that anti-aliases the AO effect
|
|
647
644
|
if (this._effectDefinitions.find(e => e.definition.type === POST_PROCESSING_EFFECT_TYPE.HBAO || e.definition.type === POST_PROCESSING_EFFECT_TYPE.SSAO)) {
|
|
648
645
|
// respect the AA choice if one of the effects was selected, use SMAA otherwise
|
|
649
|
-
this.
|
|
646
|
+
this.addPassToEffectComposer(new EffectPass(this._renderingEngine.camera, antiAliasingTechnique === ANTI_ALIASING_TECHNIQUE.FXAA ? this._fxaaEffect! : this._smaaEffect!));
|
|
650
647
|
}
|
|
651
648
|
}
|
|
652
649
|
|
|
@@ -1100,7 +1097,6 @@ export class PostProcessingManager implements IManager {
|
|
|
1100
1097
|
} else {
|
|
1101
1098
|
initComposer();
|
|
1102
1099
|
}
|
|
1103
|
-
|
|
1104
1100
|
}
|
|
1105
1101
|
|
|
1106
1102
|
public removeEffect(token: string): boolean {
|
|
@@ -1165,5 +1161,21 @@ export class PostProcessingManager implements IManager {
|
|
|
1165
1161
|
this.addEffect(definition, token);
|
|
1166
1162
|
}
|
|
1167
1163
|
|
|
1168
|
-
// #endregion Public Methods (
|
|
1164
|
+
// #endregion Public Methods (13)
|
|
1165
|
+
|
|
1166
|
+
// #region Private Methods (1)
|
|
1167
|
+
|
|
1168
|
+
private addPassToEffectComposer(pass: EffectPass | RenderPass | SSAARenderPass ) {
|
|
1169
|
+
if (this._composer) {
|
|
1170
|
+
try {
|
|
1171
|
+
this._composer.addPass(pass);
|
|
1172
|
+
} catch (e) {
|
|
1173
|
+
// in this case a WebGL error is thrown, when the WebGL context is lost
|
|
1174
|
+
// as we already throw an error in the rendering engine, we can ignore this error here
|
|
1175
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/getContextAttributes
|
|
1176
|
+
}
|
|
1177
|
+
}
|
|
1178
|
+
}
|
|
1179
|
+
|
|
1180
|
+
// #endregion Private Methods (1)
|
|
1169
1181
|
}
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
WebGLRenderer,
|
|
14
14
|
WebGLRenderTarget
|
|
15
15
|
} from 'three';
|
|
16
|
-
import {
|
|
16
|
+
import { HttpClient, Logger } from '@shapediver/viewer.shared.services';
|
|
17
17
|
import { Pass } from 'postprocessing';
|
|
18
18
|
import { poissionDenoise as fragmentShader } from './shader/poissionDenoise';
|
|
19
19
|
import { sampleBlueNoise } from '../utils/shader/sampleBlueNoise';
|
|
@@ -54,23 +54,8 @@ export class PoissionDenoisePass extends Pass {
|
|
|
54
54
|
constructor(camera: Camera, inputTexture: Texture, depthTexture: Texture, options: { [key: string]: unknown } = defaultPoissonBlurOptions) {
|
|
55
55
|
super('PoissionBlurPass');
|
|
56
56
|
|
|
57
|
-
if (PoissionDenoisePass.blueNoiseTexture === undefined)
|
|
58
|
-
|
|
59
|
-
const url = URL.createObjectURL(result.data.blob);
|
|
60
|
-
new TextureLoader().load(url, texture => {
|
|
61
|
-
URL.revokeObjectURL(url);
|
|
62
|
-
PoissionDenoisePass.blueNoiseTexture = texture;
|
|
63
|
-
PoissionDenoisePass.blueNoiseTexture.minFilter = NearestFilter;
|
|
64
|
-
PoissionDenoisePass.blueNoiseTexture.magFilter = NearestFilter;
|
|
65
|
-
PoissionDenoisePass.blueNoiseTexture.wrapS = RepeatWrapping;
|
|
66
|
-
PoissionDenoisePass.blueNoiseTexture.wrapT = RepeatWrapping;
|
|
67
|
-
PoissionDenoisePass.blueNoiseTexture.colorSpace = NoColorSpace;
|
|
68
|
-
PoissionDenoisePass.blueNoiseTexture.needsUpdate = true;
|
|
69
|
-
|
|
70
|
-
(this.fullscreenMaterial as ShaderMaterial).uniforms.blueNoiseTexture.value = PoissionDenoisePass.blueNoiseTexture;
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
}
|
|
57
|
+
if (PoissionDenoisePass.blueNoiseTexture === undefined)
|
|
58
|
+
this.loadBlueNoiseTexture();
|
|
74
59
|
|
|
75
60
|
options = { ...defaultPoissonBlurOptions, ...options };
|
|
76
61
|
|
|
@@ -132,6 +117,34 @@ export class PoissionDenoisePass extends Pass {
|
|
|
132
117
|
}
|
|
133
118
|
}
|
|
134
119
|
|
|
120
|
+
private async loadBlueNoiseTexture() {
|
|
121
|
+
const result = await HttpClient.instance.loadTexture('https://viewer.shapediver.com/v3/graphics/LDR_RGBA_0.png');
|
|
122
|
+
|
|
123
|
+
if (result) {
|
|
124
|
+
const url = URL.createObjectURL(result.data.blob);
|
|
125
|
+
new TextureLoader().load(url, texture => {
|
|
126
|
+
URL.revokeObjectURL(url);
|
|
127
|
+
PoissionDenoisePass.blueNoiseTexture = texture;
|
|
128
|
+
PoissionDenoisePass.blueNoiseTexture.minFilter = NearestFilter;
|
|
129
|
+
PoissionDenoisePass.blueNoiseTexture.magFilter = NearestFilter;
|
|
130
|
+
PoissionDenoisePass.blueNoiseTexture.wrapS = RepeatWrapping;
|
|
131
|
+
PoissionDenoisePass.blueNoiseTexture.wrapT = RepeatWrapping;
|
|
132
|
+
PoissionDenoisePass.blueNoiseTexture.colorSpace = NoColorSpace;
|
|
133
|
+
PoissionDenoisePass.blueNoiseTexture.needsUpdate = true;
|
|
134
|
+
|
|
135
|
+
(this.fullscreenMaterial as ShaderMaterial).uniforms.blueNoiseTexture.value = PoissionDenoisePass.blueNoiseTexture;
|
|
136
|
+
});
|
|
137
|
+
} else {
|
|
138
|
+
Logger.instance.warn('The blue noise texture could not be loaded. This may result in a suboptimal denoising quality. Retrying in 1 second...');
|
|
139
|
+
|
|
140
|
+
// if there was an issue loading the texture
|
|
141
|
+
// set a timeout with 1 second to try again
|
|
142
|
+
setTimeout(() => {
|
|
143
|
+
this.loadBlueNoiseTexture();
|
|
144
|
+
}, 1000);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
135
148
|
// #endregion Constructors (1)
|
|
136
149
|
|
|
137
150
|
// #region Public Getters And Setters (1)
|