@shapediver/viewer.rendering-engine.rendering-engine-threejs 3.0.5 → 3.0.6
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/postprocessing/ao/poissionDenoise/PoissionDenoisePass.d.ts +2 -6
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.d.ts.map +1 -1
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.js +17 -15
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.js.map +1 -1
- package/package.json +17 -17
- package/src/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.ts +23 -22
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { Camera, Texture, Vector2, WebGLRenderer, WebGLRenderTarget } from 'three';
|
|
1
2
|
import { Pass } from 'postprocessing';
|
|
2
|
-
import { Camera, Texture, Vector2, WebGLRenderTarget, WebGLRenderer } from 'three';
|
|
3
3
|
export declare class PoissionDenoisePass extends Pass {
|
|
4
4
|
static DefaultOptions: {
|
|
5
5
|
iterations: number;
|
|
@@ -12,11 +12,7 @@ export declare class PoissionDenoisePass extends Pass {
|
|
|
12
12
|
distance: number;
|
|
13
13
|
normalTexture: null;
|
|
14
14
|
};
|
|
15
|
-
static
|
|
16
|
-
buffer: ArrayBuffer;
|
|
17
|
-
blob: Blob;
|
|
18
|
-
}>>;
|
|
19
|
-
static blueNoiseTexture: Texture;
|
|
15
|
+
static blueNoiseTexture?: Texture;
|
|
20
16
|
index: number;
|
|
21
17
|
inputTexture: Texture;
|
|
22
18
|
iterations: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PoissionDenoisePass.d.ts","sourceRoot":"","sources":["../../../../../src/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.ts"],"names":[],"mappings":"
|
|
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;IAqFzI,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,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PoissionDenoisePass = void 0;
|
|
4
|
-
const postprocessing_1 = require("postprocessing");
|
|
5
|
-
const three_1 = require("three");
|
|
6
4
|
const basic_1 = require("../utils/shader/basic");
|
|
7
|
-
const
|
|
8
|
-
const poissionDenoise_1 = require("./shader/poissionDenoise");
|
|
5
|
+
const three_1 = require("three");
|
|
9
6
|
const viewer_shared_services_1 = require("@shapediver/viewer.shared.services");
|
|
7
|
+
const postprocessing_1 = require("postprocessing");
|
|
8
|
+
const poissionDenoise_1 = require("./shader/poissionDenoise");
|
|
9
|
+
const sampleBlueNoise_1 = require("../utils/shader/sampleBlueNoise");
|
|
10
10
|
const finalFragmentShader = poissionDenoise_1.poissionDenoise.replace('#include <sampleBlueNoise>', sampleBlueNoise_1.sampleBlueNoise);
|
|
11
11
|
const defaultPoissonBlurOptions = {
|
|
12
12
|
iterations: 1,
|
|
@@ -20,7 +20,7 @@ const defaultPoissonBlurOptions = {
|
|
|
20
20
|
normalTexture: null
|
|
21
21
|
};
|
|
22
22
|
class PoissionDenoisePass extends postprocessing_1.Pass {
|
|
23
|
-
// #endregion Properties (
|
|
23
|
+
// #endregion Properties (11)
|
|
24
24
|
// #region Constructors (1)
|
|
25
25
|
constructor(camera, inputTexture, depthTexture, options = defaultPoissonBlurOptions) {
|
|
26
26
|
super('PoissionBlurPass');
|
|
@@ -29,15 +29,19 @@ class PoissionDenoisePass extends postprocessing_1.Pass {
|
|
|
29
29
|
this.radius = 8;
|
|
30
30
|
this.rings = 5.625;
|
|
31
31
|
this.samples = 16;
|
|
32
|
-
if (
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
if (PoissionDenoisePass.blueNoiseTexture === undefined) {
|
|
33
|
+
viewer_shared_services_1.HttpClient.instance.loadTexture('https://viewer.shapediver.com/v3/graphics/LDR_RGBA_0.png').then(result => {
|
|
34
|
+
const url = URL.createObjectURL(result.data.blob);
|
|
35
|
+
new three_1.TextureLoader().load(url, texture => {
|
|
36
|
+
URL.revokeObjectURL(url);
|
|
37
|
+
PoissionDenoisePass.blueNoiseTexture = texture;
|
|
36
38
|
PoissionDenoisePass.blueNoiseTexture.minFilter = three_1.NearestFilter;
|
|
37
39
|
PoissionDenoisePass.blueNoiseTexture.magFilter = three_1.NearestFilter;
|
|
38
40
|
PoissionDenoisePass.blueNoiseTexture.wrapS = three_1.RepeatWrapping;
|
|
39
41
|
PoissionDenoisePass.blueNoiseTexture.wrapT = three_1.RepeatWrapping;
|
|
40
42
|
PoissionDenoisePass.blueNoiseTexture.colorSpace = three_1.NoColorSpace;
|
|
43
|
+
PoissionDenoisePass.blueNoiseTexture.needsUpdate = true;
|
|
44
|
+
this.fullscreenMaterial.uniforms.blueNoiseTexture.value = PoissionDenoisePass.blueNoiseTexture;
|
|
41
45
|
});
|
|
42
46
|
});
|
|
43
47
|
}
|
|
@@ -91,14 +95,13 @@ class PoissionDenoisePass extends postprocessing_1.Pass {
|
|
|
91
95
|
}
|
|
92
96
|
});
|
|
93
97
|
}
|
|
94
|
-
this.fullscreenMaterial.uniforms.blueNoiseTexture.value = PoissionDenoisePass.blueNoiseTexture;
|
|
95
98
|
}
|
|
96
99
|
// #endregion Constructors (1)
|
|
97
|
-
// #region Public
|
|
100
|
+
// #region Public Getters And Setters (1)
|
|
98
101
|
get texture() {
|
|
99
102
|
return this.renderTargetB.texture;
|
|
100
103
|
}
|
|
101
|
-
// #endregion Public
|
|
104
|
+
// #endregion Public Getters And Setters (1)
|
|
102
105
|
// #region Public Methods (4)
|
|
103
106
|
generateDenoiseSamples(numSamples, numRings, r, texelSize) {
|
|
104
107
|
const angleStep = (2 * Math.PI * numRings) / numSamples;
|
|
@@ -139,7 +142,7 @@ class PoissionDenoisePass extends postprocessing_1.Pass {
|
|
|
139
142
|
render(renderer) {
|
|
140
143
|
this.fullscreenMaterial.uniforms.index.value = 0;
|
|
141
144
|
const noiseTexture = this.fullscreenMaterial.uniforms.blueNoiseTexture.value;
|
|
142
|
-
if (noiseTexture) {
|
|
145
|
+
if (noiseTexture !== undefined && noiseTexture !== null && noiseTexture instanceof three_1.Texture) {
|
|
143
146
|
const { width, height } = noiseTexture.source.data;
|
|
144
147
|
this.fullscreenMaterial.uniforms.blueNoiseRepeat.value.set(this.renderTargetA.width / width, this.renderTargetA.height / height);
|
|
145
148
|
}
|
|
@@ -165,7 +168,6 @@ class PoissionDenoisePass extends postprocessing_1.Pass {
|
|
|
165
168
|
}
|
|
166
169
|
}
|
|
167
170
|
exports.PoissionDenoisePass = PoissionDenoisePass;
|
|
168
|
-
// #region Properties (
|
|
171
|
+
// #region Properties (11)
|
|
169
172
|
PoissionDenoisePass.DefaultOptions = defaultPoissonBlurOptions;
|
|
170
|
-
PoissionDenoisePass.blueNoiseTextureImage = viewer_shared_services_1.HttpClient.instance.loadTexture('https://viewer.shapediver.com/v3/graphics/LDR_RGBA_0.png');
|
|
171
173
|
//# sourceMappingURL=PoissionDenoisePass.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PoissionDenoisePass.js","sourceRoot":"","sources":["../../../../../src/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.ts"],"names":[],"mappings":";;;AAAA,
|
|
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.0.
|
|
3
|
+
"version": "3.0.6",
|
|
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.0.
|
|
43
|
-
"@shapediver/viewer.data-engine.shared-types": "3.0.
|
|
44
|
-
"@shapediver/viewer.data-engine.tag3d-engine": "3.0.
|
|
45
|
-
"@shapediver/viewer.rendering-engine.animation-engine": "3.0.
|
|
46
|
-
"@shapediver/viewer.rendering-engine.animation-frame-engine": "3.0.
|
|
47
|
-
"@shapediver/viewer.rendering-engine.camera-engine": "3.0.
|
|
48
|
-
"@shapediver/viewer.rendering-engine.canvas-engine": "3.0.
|
|
49
|
-
"@shapediver/viewer.rendering-engine.intersection-engine": "3.0.
|
|
50
|
-
"@shapediver/viewer.rendering-engine.light-engine": "3.0.
|
|
51
|
-
"@shapediver/viewer.rendering-engine.rendering-engine": "3.0.
|
|
52
|
-
"@shapediver/viewer.shared.global-access-objects": "3.0.
|
|
53
|
-
"@shapediver/viewer.shared.math": "3.0.
|
|
54
|
-
"@shapediver/viewer.shared.node-tree": "3.0.
|
|
55
|
-
"@shapediver/viewer.shared.services": "3.0.
|
|
56
|
-
"@shapediver/viewer.shared.types": "3.0.
|
|
42
|
+
"@shapediver/viewer.data-engine.gltf-converter": "3.0.6",
|
|
43
|
+
"@shapediver/viewer.data-engine.shared-types": "3.0.6",
|
|
44
|
+
"@shapediver/viewer.data-engine.tag3d-engine": "3.0.6",
|
|
45
|
+
"@shapediver/viewer.rendering-engine.animation-engine": "3.0.6",
|
|
46
|
+
"@shapediver/viewer.rendering-engine.animation-frame-engine": "3.0.6",
|
|
47
|
+
"@shapediver/viewer.rendering-engine.camera-engine": "3.0.6",
|
|
48
|
+
"@shapediver/viewer.rendering-engine.canvas-engine": "3.0.6",
|
|
49
|
+
"@shapediver/viewer.rendering-engine.intersection-engine": "3.0.6",
|
|
50
|
+
"@shapediver/viewer.rendering-engine.light-engine": "3.0.6",
|
|
51
|
+
"@shapediver/viewer.rendering-engine.rendering-engine": "3.0.6",
|
|
52
|
+
"@shapediver/viewer.shared.global-access-objects": "3.0.6",
|
|
53
|
+
"@shapediver/viewer.shared.math": "3.0.6",
|
|
54
|
+
"@shapediver/viewer.shared.node-tree": "3.0.6",
|
|
55
|
+
"@shapediver/viewer.shared.services": "3.0.6",
|
|
56
|
+
"@shapediver/viewer.shared.types": "3.0.6",
|
|
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": "c9a43ef749feeeb9b4825b6a25b37a06a62e78e9"
|
|
66
66
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { basic as vertexShader } from '../utils/shader/basic';
|
|
2
2
|
import {
|
|
3
3
|
Camera,
|
|
4
4
|
HalfFloatType,
|
|
@@ -10,13 +10,13 @@ import {
|
|
|
10
10
|
Texture,
|
|
11
11
|
TextureLoader,
|
|
12
12
|
Vector2,
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
WebGLRenderer,
|
|
14
|
+
WebGLRenderTarget
|
|
15
15
|
} from 'three';
|
|
16
|
-
import { basic as vertexShader } from '../utils/shader/basic';
|
|
17
|
-
import { sampleBlueNoise } from '../utils/shader/sampleBlueNoise';
|
|
18
|
-
import { poissionDenoise as fragmentShader } from './shader/poissionDenoise';
|
|
19
16
|
import { Converter, HttpClient } from '@shapediver/viewer.shared.services';
|
|
17
|
+
import { Pass } from 'postprocessing';
|
|
18
|
+
import { poissionDenoise as fragmentShader } from './shader/poissionDenoise';
|
|
19
|
+
import { sampleBlueNoise } from '../utils/shader/sampleBlueNoise';
|
|
20
20
|
|
|
21
21
|
const finalFragmentShader = fragmentShader.replace('#include <sampleBlueNoise>', sampleBlueNoise);
|
|
22
22
|
|
|
@@ -33,12 +33,10 @@ const defaultPoissonBlurOptions = {
|
|
|
33
33
|
};
|
|
34
34
|
|
|
35
35
|
export class PoissionDenoisePass extends Pass {
|
|
36
|
-
// #region Properties (
|
|
36
|
+
// #region Properties (11)
|
|
37
37
|
|
|
38
38
|
public static DefaultOptions = defaultPoissonBlurOptions;
|
|
39
|
-
|
|
40
|
-
public static blueNoiseTextureImage = HttpClient.instance.loadTexture('https://viewer.shapediver.com/v3/graphics/LDR_RGBA_0.png');
|
|
41
|
-
public static blueNoiseTexture: Texture;
|
|
39
|
+
public static blueNoiseTexture?: Texture;
|
|
42
40
|
|
|
43
41
|
public index = 0;
|
|
44
42
|
public inputTexture: Texture;
|
|
@@ -49,22 +47,27 @@ export class PoissionDenoisePass extends Pass {
|
|
|
49
47
|
public rings = 5.625;
|
|
50
48
|
public samples = 16;
|
|
51
49
|
|
|
52
|
-
// #endregion Properties (
|
|
50
|
+
// #endregion Properties (11)
|
|
53
51
|
|
|
54
52
|
// #region Constructors (1)
|
|
55
53
|
|
|
56
54
|
constructor(camera: Camera, inputTexture: Texture, depthTexture: Texture, options: { [key: string]: unknown } = defaultPoissonBlurOptions) {
|
|
57
55
|
super('PoissionBlurPass');
|
|
58
56
|
|
|
59
|
-
if(
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
57
|
+
if (PoissionDenoisePass.blueNoiseTexture === undefined) {
|
|
58
|
+
HttpClient.instance.loadTexture('https://viewer.shapediver.com/v3/graphics/LDR_RGBA_0.png').then(result => {
|
|
59
|
+
const url = URL.createObjectURL(result.data.blob);
|
|
60
|
+
new TextureLoader().load(url, texture => {
|
|
61
|
+
URL.revokeObjectURL(url);
|
|
62
|
+
PoissionDenoisePass.blueNoiseTexture = texture;
|
|
63
63
|
PoissionDenoisePass.blueNoiseTexture.minFilter = NearestFilter;
|
|
64
64
|
PoissionDenoisePass.blueNoiseTexture.magFilter = NearestFilter;
|
|
65
65
|
PoissionDenoisePass.blueNoiseTexture.wrapS = RepeatWrapping;
|
|
66
66
|
PoissionDenoisePass.blueNoiseTexture.wrapT = RepeatWrapping;
|
|
67
67
|
PoissionDenoisePass.blueNoiseTexture.colorSpace = NoColorSpace;
|
|
68
|
+
PoissionDenoisePass.blueNoiseTexture.needsUpdate = true;
|
|
69
|
+
|
|
70
|
+
(this.fullscreenMaterial as ShaderMaterial).uniforms.blueNoiseTexture.value = PoissionDenoisePass.blueNoiseTexture;
|
|
68
71
|
});
|
|
69
72
|
});
|
|
70
73
|
}
|
|
@@ -127,19 +130,17 @@ export class PoissionDenoisePass extends Pass {
|
|
|
127
130
|
}
|
|
128
131
|
});
|
|
129
132
|
}
|
|
130
|
-
|
|
131
|
-
(this.fullscreenMaterial as ShaderMaterial).uniforms.blueNoiseTexture.value = PoissionDenoisePass.blueNoiseTexture;
|
|
132
133
|
}
|
|
133
134
|
|
|
134
135
|
// #endregion Constructors (1)
|
|
135
136
|
|
|
136
|
-
// #region Public
|
|
137
|
+
// #region Public Getters And Setters (1)
|
|
137
138
|
|
|
138
139
|
public get texture() {
|
|
139
140
|
return this.renderTargetB.texture;
|
|
140
141
|
}
|
|
141
142
|
|
|
142
|
-
// #endregion Public
|
|
143
|
+
// #endregion Public Getters And Setters (1)
|
|
143
144
|
|
|
144
145
|
// #region Public Methods (4)
|
|
145
146
|
|
|
@@ -157,10 +158,10 @@ export class PoissionDenoisePass extends Pass {
|
|
|
157
158
|
.multiply(texelSize)
|
|
158
159
|
.multiplyScalar(r);
|
|
159
160
|
|
|
160
|
-
if(isNaN(v.x) || v.x === Infinity || v.x === -Infinity)
|
|
161
|
+
if (isNaN(v.x) || v.x === Infinity || v.x === -Infinity)
|
|
161
162
|
v.x = 0;
|
|
162
163
|
|
|
163
|
-
if(isNaN(v.y) || v.y === Infinity || v.y === -Infinity)
|
|
164
|
+
if (isNaN(v.y) || v.y === Infinity || v.y === -Infinity)
|
|
164
165
|
v.y = 0;
|
|
165
166
|
|
|
166
167
|
samples.push(v);
|
|
@@ -196,7 +197,7 @@ export class PoissionDenoisePass extends Pass {
|
|
|
196
197
|
(this.fullscreenMaterial as ShaderMaterial).uniforms.index.value = 0;
|
|
197
198
|
|
|
198
199
|
const noiseTexture = (this.fullscreenMaterial as ShaderMaterial).uniforms.blueNoiseTexture.value;
|
|
199
|
-
if (noiseTexture) {
|
|
200
|
+
if (noiseTexture !== undefined && noiseTexture !== null && noiseTexture instanceof Texture) {
|
|
200
201
|
const { width, height } = (noiseTexture as Texture).source.data;
|
|
201
202
|
|
|
202
203
|
(this.fullscreenMaterial as ShaderMaterial).uniforms.blueNoiseRepeat.value.set(
|