@shapediver/viewer.rendering-engine.rendering-engine-threejs 3.0.5 → 3.1.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/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/dist/managers/postprocessing/utils/CopyMaterial.js +1 -1
- package/dist/shaders/multi_points.d.ts +1 -1
- package/dist/shaders/multi_points.d.ts.map +1 -1
- package/dist/shaders/multi_points.js +2 -2
- package/package.json +17 -17
- package/src/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.ts +23 -22
- package/src/managers/postprocessing/utils/CopyMaterial.ts +1 -1
- package/src/shaders/multi_points.ts +2 -2
- package/src/shaders/multi_points_frag.glsl +2 -2
|
@@ -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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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export declare const vert = "\nattribute float positionIndex;\nflat varying int vMaterialIndex;\nflat varying int vPositionIndex;\n\nuniform float size_0;\nuniform float size_1;\nuniform float size_2;\nuniform float size_3;\nuniform float size_4;\nuniform float size_5;\nuniform float size_6;\nuniform float size_7;\n\nuniform bool sizeAttenuation_0;\nuniform bool sizeAttenuation_1;\nuniform bool sizeAttenuation_2;\nuniform bool sizeAttenuation_3;\nuniform bool sizeAttenuation_4;\nuniform bool sizeAttenuation_5;\nuniform bool sizeAttenuation_6;\nuniform bool sizeAttenuation_7;\n\nuniform highp usampler2D materialIndexDataTexture;\n\nuniform float scale;\n\nfloat getSize(int materialIndex) {\n if ( materialIndex == 1 ) {\n return size_1;\n } else if ( materialIndex == 2 ) {\n return size_2;\n } else if ( materialIndex == 3 ) {\n return size_3;\n } else if ( materialIndex == 4 ) {\n return size_4;\n } else if ( materialIndex == 5 ) {\n return size_5;\n } else if ( materialIndex == 6 ) {\n return size_6;\n } else if ( materialIndex == 7 ) {\n return size_7;\n } else {\n return size_0;\n }\n}\n\nbool getSizeAttenuation(int materialIndex) {\n if ( materialIndex == 1 ) {\n return sizeAttenuation_1;\n } else if ( materialIndex == 2 ) {\n return sizeAttenuation_2;\n } else if ( materialIndex == 3 ) {\n return sizeAttenuation_3;\n } else if ( materialIndex == 4 ) {\n return sizeAttenuation_4;\n } else if ( materialIndex == 5 ) {\n return sizeAttenuation_5;\n } else if ( materialIndex == 6 ) {\n return sizeAttenuation_6;\n } else if ( materialIndex == 7 ) {\n return sizeAttenuation_7;\n } else {\n return sizeAttenuation_0;\n }\n}\n\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\n#ifdef USE_POINTS_UV\n\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n\n#endif\n\nint retrieveMaterialIndex() {\n vec2 uv = vec2(positionIndex/1024.0, 0.5);\n\n // get the value of a texture at a specific index\n return int(texture2D(materialIndexDataTexture, uv).r);\n}\n\nvoid main() {\n int materialIndex = retrieveMaterialIndex();\n vMaterialIndex = materialIndex;\n\n float size = getSize(materialIndex);\n bool sizeAttenuation = getSizeAttenuation(materialIndex);\n\n\t#ifdef USE_POINTS_UV\n\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\n\t#endif\n\n\t#include <color_vertex>\n\t#include <morphcolor_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\n gl_PointSize = size;\n\n\tif(sizeAttenuation) {\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n }\n\n\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <fog_vertex>\n\n}\n";
|
|
2
|
-
export declare const frag = "\nuniform vec3 diffuse;\nuniform vec3 color_0;\nuniform vec3 color_1;\nuniform vec3 color_2;\nuniform vec3 color_3;\nuniform vec3 color_4;\nuniform vec3 color_5;\nuniform vec3 color_6;\nuniform vec3 color_7;\n\n\nuniform float opacity;\nflat varying int vMaterialIndex;\nflat varying int vPositionIndex;\n\n#include <common>\n#include <color_pars_fragment>\n\n#if defined( USE_POINTS_UV )\n\n\tvarying vec2 vUv;\n\n#else\n\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\n\t\tuniform mat3 uvTransform;\n\n\t#endif\n\n#endif\n\n#ifdef USE_MAP\n\n\tuniform sampler2D map_0;\n\tuniform sampler2D map_1;\n\tuniform sampler2D map_2;\n\tuniform sampler2D map_3;\n uniform sampler2D map_4;\n uniform sampler2D map_5;\n uniform sampler2D map_6;\n uniform sampler2D map_7;\n\n#endif\n\n#ifdef USE_ALPHAMAP\n\n\tuniform sampler2D alphaMap_0;\n uniform sampler2D alphaMap_1;\n uniform sampler2D alphaMap_2;\n uniform sampler2D alphaMap_3;\n uniform sampler2D alphaMap_4;\n uniform sampler2D alphaMap_5;\n uniform sampler2D alphaMap_6;\n uniform sampler2D alphaMap_7;\n\n#endif\n\n\n#include <alphatest_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nvoid main() {\n\n\t#include <clipping_planes_fragment>\n\n\tvec3 outgoingLight = vec3( 0.0 );\n\n vec3 c = vec3(1.0, 0.0, 0.0);\n if ( vMaterialIndex == 1 ) {\n c = color_1;\n } else if ( vMaterialIndex == 2 ) {\n c = color_2;\n } else if ( vMaterialIndex == 3 ) {\n c = color_3;\n } else if ( vMaterialIndex == 4 ) {\n c = color_4;\n } else if ( vMaterialIndex == 5 ) {\n c = color_5;\n } else if ( vMaterialIndex == 6 ) {\n c = color_6;\n } else if ( vMaterialIndex == 7 ) {\n c = color_7;\n } else {\n c = color_0;\n }\n\n\tvec4 diffuseColor = vec4( c, opacity );\n\n \n\n\n\t#include <logdepthbuf_fragment>\n\n #if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\n #if defined( USE_POINTS_UV )\n\n vec2 uv = vUv;\n\n #else\n\n vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\n #endif\n\n #endif\n\n #ifdef USE_MAP\n\n if ( vMaterialIndex == 1 ) {\n diffuseColor *= texture2D( map_1, uv );\n } else if ( vMaterialIndex == 2 ) {\n diffuseColor *= texture2D( map_2, uv );\n } else if ( vMaterialIndex == 3 ) {\n diffuseColor *= texture2D( map_3, uv );\n } else if ( vMaterialIndex == 4 ) {\n diffuseColor *= texture2D( map_4, uv );\n } else if ( vMaterialIndex == 5 ) {\n diffuseColor *= texture2D( map_5, uv );\n } else if ( vMaterialIndex == 6 ) {\n diffuseColor *= texture2D( map_6, uv );\n } else if ( vMaterialIndex == 7 ) {\n diffuseColor *= texture2D( map_7, uv );\n } else {\n diffuseColor *= texture2D( map_0, uv );\n }\n\n #endif\n\n #ifdef USE_ALPHAMAP\n\n if ( vMaterialIndex == 1 ) {\n diffuseColor *= texture2D( alphaMap_1, uv );\n } else if ( vMaterialIndex == 2 ) {\n diffuseColor *= texture2D( alphaMap_2, uv );\n } else if ( vMaterialIndex == 3 ) {\n diffuseColor *= texture2D( alphaMap_3, uv );\n } else if ( vMaterialIndex == 4 ) {\n diffuseColor *= texture2D( alphaMap_4, uv );\n } else if ( vMaterialIndex == 5 ) {\n diffuseColor *= texture2D( alphaMap_5, uv );\n } else if ( vMaterialIndex == 6 ) {\n diffuseColor *= texture2D( alphaMap_6, uv );\n } else if ( vMaterialIndex == 7 ) {\n diffuseColor *= texture2D( alphaMap_7, uv );\n } else {\n diffuseColor *= texture2D( alphaMap_0, uv );\n }\n\n #endif\n\n\t#include <color_fragment>\n\t#include <alphatest_fragment>\n\n\toutgoingLight = diffuseColor.rgb;\n\n\t#include <
|
|
2
|
+
export declare const frag = "\nuniform vec3 diffuse;\nuniform vec3 color_0;\nuniform vec3 color_1;\nuniform vec3 color_2;\nuniform vec3 color_3;\nuniform vec3 color_4;\nuniform vec3 color_5;\nuniform vec3 color_6;\nuniform vec3 color_7;\n\n\nuniform float opacity;\nflat varying int vMaterialIndex;\nflat varying int vPositionIndex;\n\n#include <common>\n#include <color_pars_fragment>\n\n#if defined( USE_POINTS_UV )\n\n\tvarying vec2 vUv;\n\n#else\n\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\n\t\tuniform mat3 uvTransform;\n\n\t#endif\n\n#endif\n\n#ifdef USE_MAP\n\n\tuniform sampler2D map_0;\n\tuniform sampler2D map_1;\n\tuniform sampler2D map_2;\n\tuniform sampler2D map_3;\n uniform sampler2D map_4;\n uniform sampler2D map_5;\n uniform sampler2D map_6;\n uniform sampler2D map_7;\n\n#endif\n\n#ifdef USE_ALPHAMAP\n\n\tuniform sampler2D alphaMap_0;\n uniform sampler2D alphaMap_1;\n uniform sampler2D alphaMap_2;\n uniform sampler2D alphaMap_3;\n uniform sampler2D alphaMap_4;\n uniform sampler2D alphaMap_5;\n uniform sampler2D alphaMap_6;\n uniform sampler2D alphaMap_7;\n\n#endif\n\n\n#include <alphatest_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nvoid main() {\n\n\t#include <clipping_planes_fragment>\n\n\tvec3 outgoingLight = vec3( 0.0 );\n\n vec3 c = vec3(1.0, 0.0, 0.0);\n if ( vMaterialIndex == 1 ) {\n c = color_1;\n } else if ( vMaterialIndex == 2 ) {\n c = color_2;\n } else if ( vMaterialIndex == 3 ) {\n c = color_3;\n } else if ( vMaterialIndex == 4 ) {\n c = color_4;\n } else if ( vMaterialIndex == 5 ) {\n c = color_5;\n } else if ( vMaterialIndex == 6 ) {\n c = color_6;\n } else if ( vMaterialIndex == 7 ) {\n c = color_7;\n } else {\n c = color_0;\n }\n\n\tvec4 diffuseColor = vec4( c, opacity );\n\n \n\n\n\t#include <logdepthbuf_fragment>\n\n #if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\n #if defined( USE_POINTS_UV )\n\n vec2 uv = vUv;\n\n #else\n\n vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\n #endif\n\n #endif\n\n #ifdef USE_MAP\n\n if ( vMaterialIndex == 1 ) {\n diffuseColor *= texture2D( map_1, uv );\n } else if ( vMaterialIndex == 2 ) {\n diffuseColor *= texture2D( map_2, uv );\n } else if ( vMaterialIndex == 3 ) {\n diffuseColor *= texture2D( map_3, uv );\n } else if ( vMaterialIndex == 4 ) {\n diffuseColor *= texture2D( map_4, uv );\n } else if ( vMaterialIndex == 5 ) {\n diffuseColor *= texture2D( map_5, uv );\n } else if ( vMaterialIndex == 6 ) {\n diffuseColor *= texture2D( map_6, uv );\n } else if ( vMaterialIndex == 7 ) {\n diffuseColor *= texture2D( map_7, uv );\n } else {\n diffuseColor *= texture2D( map_0, uv );\n }\n\n #endif\n\n #ifdef USE_ALPHAMAP\n\n if ( vMaterialIndex == 1 ) {\n diffuseColor *= texture2D( alphaMap_1, uv );\n } else if ( vMaterialIndex == 2 ) {\n diffuseColor *= texture2D( alphaMap_2, uv );\n } else if ( vMaterialIndex == 3 ) {\n diffuseColor *= texture2D( alphaMap_3, uv );\n } else if ( vMaterialIndex == 4 ) {\n diffuseColor *= texture2D( alphaMap_4, uv );\n } else if ( vMaterialIndex == 5 ) {\n diffuseColor *= texture2D( alphaMap_5, uv );\n } else if ( vMaterialIndex == 6 ) {\n diffuseColor *= texture2D( alphaMap_6, uv );\n } else if ( vMaterialIndex == 7 ) {\n diffuseColor *= texture2D( alphaMap_7, uv );\n } else {\n diffuseColor *= texture2D( alphaMap_0, uv );\n }\n\n #endif\n\n\t#include <color_fragment>\n\t#include <alphatest_fragment>\n\n\toutgoingLight = diffuseColor.rgb;\n\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\n}\n";
|
|
3
3
|
//# sourceMappingURL=multi_points.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi_points.d.ts","sourceRoot":"","sources":["../../src/shaders/multi_points.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,w+FAyHhB,CAAC;AAEF,eAAO,MAAM,IAAI
|
|
1
|
+
{"version":3,"file":"multi_points.d.ts","sourceRoot":"","sources":["../../src/shaders/multi_points.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,w+FAyHhB,CAAC;AAEF,eAAO,MAAM,IAAI,gkIAuKhB,CAAC"}
|
|
@@ -283,9 +283,9 @@ void main() {
|
|
|
283
283
|
|
|
284
284
|
outgoingLight = diffuseColor.rgb;
|
|
285
285
|
|
|
286
|
-
#include <
|
|
286
|
+
#include <opaque_fragment>
|
|
287
287
|
#include <tonemapping_fragment>
|
|
288
|
-
#include <
|
|
288
|
+
#include <colorspace_fragment>
|
|
289
289
|
#include <fog_fragment>
|
|
290
290
|
#include <premultiplied_alpha_fragment>
|
|
291
291
|
|
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.1.0",
|
|
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.1.0",
|
|
43
|
+
"@shapediver/viewer.data-engine.shared-types": "3.1.0",
|
|
44
|
+
"@shapediver/viewer.data-engine.tag3d-engine": "3.1.0",
|
|
45
|
+
"@shapediver/viewer.rendering-engine.animation-engine": "3.1.0",
|
|
46
|
+
"@shapediver/viewer.rendering-engine.animation-frame-engine": "3.1.0",
|
|
47
|
+
"@shapediver/viewer.rendering-engine.camera-engine": "3.1.0",
|
|
48
|
+
"@shapediver/viewer.rendering-engine.canvas-engine": "3.1.0",
|
|
49
|
+
"@shapediver/viewer.rendering-engine.intersection-engine": "3.1.0",
|
|
50
|
+
"@shapediver/viewer.rendering-engine.light-engine": "3.1.0",
|
|
51
|
+
"@shapediver/viewer.rendering-engine.rendering-engine": "3.1.0",
|
|
52
|
+
"@shapediver/viewer.shared.global-access-objects": "3.1.0",
|
|
53
|
+
"@shapediver/viewer.shared.math": "3.1.0",
|
|
54
|
+
"@shapediver/viewer.shared.node-tree": "3.1.0",
|
|
55
|
+
"@shapediver/viewer.shared.services": "3.1.0",
|
|
56
|
+
"@shapediver/viewer.shared.types": "3.1.0",
|
|
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": "dd31ab0806a3c45b52a52ce9df975199c170a3e8"
|
|
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(
|
|
@@ -281,9 +281,9 @@ void main() {
|
|
|
281
281
|
|
|
282
282
|
outgoingLight = diffuseColor.rgb;
|
|
283
283
|
|
|
284
|
-
#include <
|
|
284
|
+
#include <opaque_fragment>
|
|
285
285
|
#include <tonemapping_fragment>
|
|
286
|
-
#include <
|
|
286
|
+
#include <colorspace_fragment>
|
|
287
287
|
#include <fog_fragment>
|
|
288
288
|
#include <premultiplied_alpha_fragment>
|
|
289
289
|
|
|
@@ -157,9 +157,9 @@ void main() {
|
|
|
157
157
|
|
|
158
158
|
outgoingLight = diffuseColor.rgb;
|
|
159
159
|
|
|
160
|
-
#include <
|
|
160
|
+
#include <opaque_fragment>
|
|
161
161
|
#include <tonemapping_fragment>
|
|
162
|
-
#include <
|
|
162
|
+
#include <colorspace_fragment>
|
|
163
163
|
#include <fog_fragment>
|
|
164
164
|
#include <premultiplied_alpha_fragment>
|
|
165
165
|
|