@shapediver/viewer.rendering-engine.rendering-engine-threejs 3.9.0 → 3.9.1
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/README.md +1 -1
- package/dist/RenderingEngine.d.ts +23 -23
- package/dist/RenderingEngine.d.ts.map +1 -1
- package/dist/RenderingEngine.js +245 -128
- package/dist/RenderingEngine.js.map +1 -1
- package/dist/index.d.ts +11 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -11
- package/dist/index.js.map +1 -1
- package/dist/injectors/TextureUnifierInjector.d.ts.map +1 -1
- package/dist/injectors/TextureUnifierInjector.js +22 -13
- package/dist/injectors/TextureUnifierInjector.js.map +1 -1
- package/dist/interfaces/ILoader.d.ts.map +1 -1
- package/dist/interfaces/IPostProcessingEffectDefinitions.d.ts.map +1 -1
- package/dist/interfaces/IPostProcessingEffectDefinitions.js.map +1 -1
- package/dist/interfaces/IRenderingEngine.d.ts +6 -6
- package/dist/interfaces/IRenderingEngine.d.ts.map +1 -1
- package/dist/loaders/EnvironmentMapLoader.d.ts +3 -3
- package/dist/loaders/EnvironmentMapLoader.d.ts.map +1 -1
- package/dist/loaders/EnvironmentMapLoader.js +150 -52
- package/dist/loaders/EnvironmentMapLoader.js.map +1 -1
- package/dist/loaders/GeometryLoader.d.ts +6 -6
- package/dist/loaders/GeometryLoader.d.ts.map +1 -1
- package/dist/loaders/GeometryLoader.js +140 -93
- package/dist/loaders/GeometryLoader.js.map +1 -1
- package/dist/loaders/HTMLElementAnchorLoader.d.ts +4 -4
- package/dist/loaders/HTMLElementAnchorLoader.d.ts.map +1 -1
- package/dist/loaders/HTMLElementAnchorLoader.js +26 -14
- package/dist/loaders/HTMLElementAnchorLoader.js.map +1 -1
- package/dist/loaders/LightLoader.d.ts +5 -5
- package/dist/loaders/LightLoader.d.ts.map +1 -1
- package/dist/loaders/LightLoader.js +43 -15
- package/dist/loaders/LightLoader.js.map +1 -1
- package/dist/loaders/MaterialLoader.d.ts +17 -17
- package/dist/loaders/MaterialLoader.d.ts.map +1 -1
- package/dist/loaders/MaterialLoader.js +563 -198
- package/dist/loaders/MaterialLoader.js.map +1 -1
- package/dist/managers/CameraManager.d.ts +6 -6
- package/dist/managers/CameraManager.d.ts.map +1 -1
- package/dist/managers/CameraManager.js +47 -27
- package/dist/managers/CameraManager.js.map +1 -1
- package/dist/managers/EnvironmentGeometryManager.d.ts +7 -7
- package/dist/managers/EnvironmentGeometryManager.d.ts.map +1 -1
- package/dist/managers/EnvironmentGeometryManager.js +20 -8
- package/dist/managers/EnvironmentGeometryManager.js.map +1 -1
- package/dist/managers/PostProcessingManager.d.ts +9 -9
- package/dist/managers/PostProcessingManager.d.ts.map +1 -1
- package/dist/managers/PostProcessingManager.js +358 -173
- package/dist/managers/PostProcessingManager.js.map +1 -1
- package/dist/managers/RenderingManager.d.ts +4 -4
- package/dist/managers/RenderingManager.d.ts.map +1 -1
- package/dist/managers/RenderingManager.js +164 -79
- package/dist/managers/RenderingManager.js.map +1 -1
- package/dist/managers/SceneTracingManager.d.ts +3 -3
- package/dist/managers/SceneTracingManager.d.ts.map +1 -1
- package/dist/managers/SceneTracingManager.js +12 -9
- package/dist/managers/SceneTracingManager.js.map +1 -1
- package/dist/managers/SceneTreeManager.d.ts +7 -7
- package/dist/managers/SceneTreeManager.d.ts.map +1 -1
- package/dist/managers/SceneTreeManager.js +100 -52
- package/dist/managers/SceneTreeManager.js.map +1 -1
- package/dist/managers/environmentGeometry/ContactShadow.d.ts +4 -4
- package/dist/managers/environmentGeometry/ContactShadow.d.ts.map +1 -1
- package/dist/managers/environmentGeometry/ContactShadow.js +14 -9
- package/dist/managers/environmentGeometry/ContactShadow.js.map +1 -1
- package/dist/managers/environmentGeometry/Grid.d.ts +5 -5
- package/dist/managers/environmentGeometry/Grid.d.ts.map +1 -1
- package/dist/managers/environmentGeometry/Grid.js +28 -13
- package/dist/managers/environmentGeometry/Grid.js.map +1 -1
- package/dist/managers/environmentGeometry/GroundPlane.d.ts +5 -5
- package/dist/managers/environmentGeometry/GroundPlane.d.ts.map +1 -1
- package/dist/managers/environmentGeometry/GroundPlane.js +17 -10
- package/dist/managers/environmentGeometry/GroundPlane.js.map +1 -1
- package/dist/managers/environmentGeometry/GroundPlaneShadow.d.ts +5 -5
- package/dist/managers/environmentGeometry/GroundPlaneShadow.d.ts.map +1 -1
- package/dist/managers/environmentGeometry/GroundPlaneShadow.js +11 -8
- package/dist/managers/environmentGeometry/GroundPlaneShadow.js.map +1 -1
- package/dist/managers/environmentGeometry/IEnvironmentGeometry.d.ts +2 -2
- package/dist/managers/environmentGeometry/IEnvironmentGeometry.d.ts.map +1 -1
- package/dist/managers/postprocessing/GodRaysManager.d.ts +3 -3
- package/dist/managers/postprocessing/GodRaysManager.d.ts.map +1 -1
- package/dist/managers/postprocessing/GodRaysManager.js +5 -5
- package/dist/managers/postprocessing/GodRaysManager.js.map +1 -1
- package/dist/managers/postprocessing/OutlineManager.d.ts +3 -3
- package/dist/managers/postprocessing/OutlineManager.d.ts.map +1 -1
- package/dist/managers/postprocessing/OutlineManager.js +1 -1
- package/dist/managers/postprocessing/OutlineManager.js.map +1 -1
- package/dist/managers/postprocessing/SSAARenderPass.d.ts +12 -12
- package/dist/managers/postprocessing/SSAARenderPass.d.ts.map +1 -1
- package/dist/managers/postprocessing/SSAARenderPass.js +83 -35
- package/dist/managers/postprocessing/SSAARenderPass.js.map +1 -1
- package/dist/managers/postprocessing/SelectiveBloomManager.d.ts +3 -3
- package/dist/managers/postprocessing/SelectiveBloomManager.d.ts.map +1 -1
- package/dist/managers/postprocessing/SelectiveBloomManager.js +1 -1
- package/dist/managers/postprocessing/SelectiveBloomManager.js.map +1 -1
- package/dist/managers/postprocessing/ao/ao/AOEffect.d.ts +5 -5
- package/dist/managers/postprocessing/ao/ao/AOEffect.d.ts.map +1 -1
- package/dist/managers/postprocessing/ao/ao/AOEffect.js +43 -34
- package/dist/managers/postprocessing/ao/ao/AOEffect.js.map +1 -1
- package/dist/managers/postprocessing/ao/ao/AOPass.d.ts +2 -2
- package/dist/managers/postprocessing/ao/ao/AOPass.d.ts.map +1 -1
- package/dist/managers/postprocessing/ao/ao/AOPass.js +26 -14
- package/dist/managers/postprocessing/ao/ao/AOPass.js.map +1 -1
- package/dist/managers/postprocessing/ao/hbao/HBAOEffect.d.ts +3 -3
- package/dist/managers/postprocessing/ao/hbao/HBAOEffect.d.ts.map +1 -1
- package/dist/managers/postprocessing/ao/hbao/HBAOEffect.js +2 -2
- package/dist/managers/postprocessing/ao/hbao/HBAOEffect.js.map +1 -1
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.d.ts +2 -2
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.d.ts.map +1 -1
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.js +51 -36
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.js.map +1 -1
- package/dist/managers/postprocessing/ao/ssao/SSAOEffect.d.ts +3 -3
- package/dist/managers/postprocessing/ao/ssao/SSAOEffect.d.ts.map +1 -1
- package/dist/managers/postprocessing/ao/ssao/SSAOEffect.js +15 -10
- package/dist/managers/postprocessing/ao/ssao/SSAOEffect.js.map +1 -1
- package/dist/managers/postprocessing/ao/utils/shader/basic.d.ts.map +1 -1
- package/dist/managers/postprocessing/ao/utils/shader/basic.js.map +1 -1
- package/dist/managers/postprocessing/ao/utils/shader/sampleBlueNoise.d.ts.map +1 -1
- package/dist/managers/postprocessing/ao/utils/shader/sampleBlueNoise.js.map +1 -1
- package/dist/managers/postprocessing/effects/tone-mapping/ToneMappingEffect.d.ts +2 -2
- package/dist/managers/postprocessing/effects/tone-mapping/ToneMappingEffect.d.ts.map +1 -1
- package/dist/managers/postprocessing/effects/tone-mapping/ToneMappingEffect.js +43 -35
- package/dist/managers/postprocessing/effects/tone-mapping/ToneMappingEffect.js.map +1 -1
- package/dist/managers/postprocessing/utils/CopyMaterial.d.ts.map +1 -1
- package/dist/managers/postprocessing/utils/CopyMaterial.js +2 -2
- package/dist/managers/postprocessing/utils/CopyMaterial.js.map +1 -1
- package/dist/managers/postprocessing/utils/CopyShader.d.ts.map +1 -1
- package/dist/managers/postprocessing/utils/CopyShader.js +4 -4
- package/dist/managers/postprocessing/utils/CopyShader.js.map +1 -1
- package/dist/managers/postprocessing/utils/FullScreenQuad.d.ts +1 -1
- package/dist/managers/postprocessing/utils/FullScreenQuad.d.ts.map +1 -1
- package/dist/managers/postprocessing/utils/FullScreenQuad.js +2 -2
- package/dist/managers/postprocessing/utils/FullScreenQuad.js.map +1 -1
- package/dist/managers/postprocessing/utils/NormalPass.d.ts +2 -2
- package/dist/managers/postprocessing/utils/NormalPass.d.ts.map +1 -1
- package/dist/managers/postprocessing/utils/NormalPass.js +3 -3
- package/dist/managers/postprocessing/utils/NormalPass.js.map +1 -1
- package/dist/managers/postprocessing/utils/RenderPass.d.ts +2 -2
- package/dist/managers/postprocessing/utils/RenderPass.d.ts.map +1 -1
- package/dist/managers/postprocessing/utils/RenderPass.js +14 -5
- package/dist/managers/postprocessing/utils/RenderPass.js.map +1 -1
- package/dist/materials/GemMaterial.d.ts +2 -2
- package/dist/materials/GemMaterial.d.ts.map +1 -1
- package/dist/materials/GemMaterial.js +20 -20
- package/dist/materials/GemMaterial.js.map +1 -1
- package/dist/materials/MeshUnlitMaterialParameters.d.ts +1 -1
- package/dist/materials/MeshUnlitMaterialParameters.d.ts.map +1 -1
- package/dist/materials/MultiPointsMaterial.d.ts +1 -1
- package/dist/materials/MultiPointsMaterial.d.ts.map +1 -1
- package/dist/materials/MultiPointsMaterial.js +46 -45
- package/dist/materials/MultiPointsMaterial.js.map +1 -1
- package/dist/materials/SpecularGlossinessMaterial.d.ts +2 -2
- package/dist/materials/SpecularGlossinessMaterial.d.ts.map +1 -1
- package/dist/materials/SpecularGlossinessMaterial.js +47 -47
- package/dist/materials/SpecularGlossinessMaterial.js.map +1 -1
- package/dist/objects/SDBone.d.ts +3 -3
- package/dist/objects/SDBone.d.ts.map +1 -1
- package/dist/objects/SDBone.js.map +1 -1
- package/dist/objects/SDColor.d.ts +2 -2
- package/dist/objects/SDColor.d.ts.map +1 -1
- package/dist/objects/SDColor.js +15 -11
- package/dist/objects/SDColor.js.map +1 -1
- package/dist/objects/SDData.d.ts +1 -1
- package/dist/objects/SDData.d.ts.map +1 -1
- package/dist/objects/SDData.js.map +1 -1
- package/dist/objects/SDObject.d.ts +3 -3
- package/dist/objects/SDObject.d.ts.map +1 -1
- package/dist/objects/SDObject.js.map +1 -1
- package/dist/shaders/PCSS.d.ts.map +1 -1
- package/dist/shaders/PCSS.js.map +1 -1
- package/dist/shaders/gem.d.ts.map +1 -1
- package/dist/shaders/gem.js.map +1 -1
- package/dist/three/CSS2DRenderer.d.ts +1 -1
- package/dist/three/CSS2DRenderer.d.ts.map +1 -1
- package/dist/three/CSS2DRenderer.js +33 -17
- package/dist/three/CSS2DRenderer.js.map +1 -1
- package/dist/three/geometries/TextGeometry.d.ts +1 -1
- package/dist/three/geometries/TextGeometry.d.ts.map +1 -1
- package/dist/three/geometries/TextGeometry.js +3 -2
- package/dist/three/geometries/TextGeometry.js.map +1 -1
- package/dist/three/loaders/RGBELoader.d.ts +1 -1
- package/dist/three/loaders/RGBELoader.d.ts.map +1 -1
- package/dist/three/loaders/RGBELoader.js +59 -46
- package/dist/three/loaders/RGBELoader.js.map +1 -1
- package/dist/types/IThreejsData.d.ts +2 -2
- package/dist/types/IThreejsData.d.ts.map +1 -1
- package/dist/types/ThreejsData.d.ts +3 -3
- package/dist/types/ThreejsData.d.ts.map +1 -1
- package/dist/types/ThreejsData.js.map +1 -1
- package/package.json +63 -63
|
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.HBAOEffect = void 0;
|
|
4
4
|
const AOEffect_1 = require("../ao/AOEffect");
|
|
5
5
|
const AOPass_1 = require("../ao/AOPass");
|
|
6
|
-
const hbao_1 = require("./shader/hbao");
|
|
7
6
|
const ao_utils_1 = require("../ao/shader/ao_utils");
|
|
8
|
-
const
|
|
7
|
+
const hbao_1 = require("./shader/hbao");
|
|
8
|
+
const finalFragmentShader = hbao_1.hbao.replace("#include <ao_utils>", ao_utils_1.ao_utils);
|
|
9
9
|
class HBAOPass extends AOPass_1.AOPass {
|
|
10
10
|
// #region Constructors (1)
|
|
11
11
|
constructor(camera, scene) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HBAOEffect.js","sourceRoot":"","sources":["../../../../../src/managers/postprocessing/ao/hbao/HBAOEffect.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"HBAOEffect.js","sourceRoot":"","sources":["../../../../../src/managers/postprocessing/ao/hbao/HBAOEffect.ts"],"names":[],"mappings":";;;AAEA,6CAAwC;AAExC,yCAAoC;AACpC,oDAA+C;AAC/C,wCAAqD;AAErD,MAAM,mBAAmB,GAAG,WAAc,CAAC,OAAO,CACjD,qBAAqB,EACrB,mBAAQ,CACR,CAAC;AAEF,MAAM,QAAS,SAAQ,eAAM;IAC5B,2BAA2B;IAE3B,YAAY,MAAc,EAAE,KAAY;QACvC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC;IAC3C,CAAC;CAGD;AAED,MAAM,UAAW,SAAQ,mBAAQ;IAKhC,4BAA4B;IAE5B,2BAA2B;IAE3B,YACC,QAAwB,EACxB,MAAc,EACd,KAAY,EACZ,UAAoC,mBAAQ,CAAC,cAAc;QAE3D,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,gDACtD,mBAAQ,CAAC,cAAc,GACvB,UAAU,CAAC,cAAc,GACzB,OAAO,EACT,CAAC;QAlBJ,yBAAyB;QAElB,aAAQ,GAAG,EAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAC,CAAC;IAiB5D,CAAC;CAGD;AAEO,gCAAU"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Pass } from "postprocessing";
|
|
2
|
+
import { Camera, Texture, Vector2, WebGLRenderer, WebGLRenderTarget } from "three";
|
|
3
3
|
export declare class PoissionDenoisePass extends Pass {
|
|
4
4
|
static DefaultOptions: {
|
|
5
5
|
iterations: number;
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"PoissionDenoisePass.d.ts","sourceRoot":"","sources":["../../../../../src/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EACN,MAAM,EAON,OAAO,EAEP,OAAO,EACP,aAAa,EACb,iBAAiB,EACjB,MAAM,OAAO,CAAC;AAsBf,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,SAAM;IACZ,aAAa,EAAE,iBAAiB,CAAC;IACjC,aAAa,EAAE,iBAAiB,CAAC;IACjC,KAAK,SAAM;IACX,OAAO,SAAM;gBAOnB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,OAAO,EACrB,YAAY,EAAE,OAAO,EACrB,OAAO,GAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAA6B;WA8E1C,oBAAoB;IAkCxC,IAAW,OAAO,YAEjB;IAMM,sBAAsB,CAC5B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,CAAC,EAAE,MAAM,EACT,SAAS,EAAE,OAAO;IA2BZ,2BAA2B,CAAC,WAAW,EAAE,OAAO,EAAE;IAqBlD,MAAM,CAAC,QAAQ,EAAE,aAAa;IA6C9B,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CA0B5C"}
|
|
@@ -10,13 +10,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.PoissionDenoisePass = void 0;
|
|
13
|
-
const basic_1 = require("../utils/shader/basic");
|
|
14
|
-
const three_1 = require("three");
|
|
15
13
|
const viewer_shared_services_1 = require("@shapediver/viewer.shared.services");
|
|
16
14
|
const postprocessing_1 = require("postprocessing");
|
|
17
|
-
const
|
|
15
|
+
const three_1 = require("three");
|
|
16
|
+
const basic_1 = require("../utils/shader/basic");
|
|
18
17
|
const sampleBlueNoise_1 = require("../utils/shader/sampleBlueNoise");
|
|
19
|
-
const
|
|
18
|
+
const poissionDenoise_1 = require("./shader/poissionDenoise");
|
|
19
|
+
const finalFragmentShader = poissionDenoise_1.poissionDenoise.replace("#include <sampleBlueNoise>", sampleBlueNoise_1.sampleBlueNoise);
|
|
20
20
|
const defaultPoissonBlurOptions = {
|
|
21
21
|
iterations: 1,
|
|
22
22
|
radius: 12,
|
|
@@ -26,13 +26,13 @@ const defaultPoissonBlurOptions = {
|
|
|
26
26
|
normalPhi: 3.25,
|
|
27
27
|
samples: 16,
|
|
28
28
|
distance: 1,
|
|
29
|
-
normalTexture: null
|
|
29
|
+
normalTexture: null,
|
|
30
30
|
};
|
|
31
31
|
class PoissionDenoisePass extends postprocessing_1.Pass {
|
|
32
32
|
// #endregion Properties (11)
|
|
33
33
|
// #region Constructors (1)
|
|
34
34
|
constructor(camera, inputTexture, depthTexture, options = defaultPoissonBlurOptions) {
|
|
35
|
-
super(
|
|
35
|
+
super("PoissionBlurPass");
|
|
36
36
|
this.index = 0;
|
|
37
37
|
this.iterations = defaultPoissonBlurOptions.iterations;
|
|
38
38
|
this.radius = 12;
|
|
@@ -40,7 +40,8 @@ class PoissionDenoisePass extends postprocessing_1.Pass {
|
|
|
40
40
|
this.samples = 16;
|
|
41
41
|
if (PoissionDenoisePass.blueNoiseTexture === undefined) {
|
|
42
42
|
PoissionDenoisePass.loadBlueNoiseTexture().then(() => {
|
|
43
|
-
this.fullscreenMaterial.uniforms.blueNoiseTexture.value =
|
|
43
|
+
this.fullscreenMaterial.uniforms.blueNoiseTexture.value =
|
|
44
|
+
PoissionDenoisePass.blueNoiseTexture;
|
|
44
45
|
});
|
|
45
46
|
}
|
|
46
47
|
options = Object.assign(Object.assign({}, defaultPoissonBlurOptions), options);
|
|
@@ -60,46 +61,48 @@ class PoissionDenoisePass extends postprocessing_1.Pass {
|
|
|
60
61
|
resolution: { value: new three_1.Vector2() },
|
|
61
62
|
blueNoiseTexture: { value: null },
|
|
62
63
|
index: { value: 0 },
|
|
63
|
-
blueNoiseRepeat: { value: new three_1.Vector2() }
|
|
64
|
-
}
|
|
64
|
+
blueNoiseRepeat: { value: new three_1.Vector2() },
|
|
65
|
+
},
|
|
65
66
|
});
|
|
66
67
|
const renderTargetOptions = {
|
|
67
68
|
type: three_1.HalfFloatType,
|
|
68
|
-
depthBuffer: false
|
|
69
|
+
depthBuffer: false,
|
|
69
70
|
};
|
|
70
71
|
this.renderTargetA = new three_1.WebGLRenderTarget(1, 1, renderTargetOptions);
|
|
71
72
|
this.renderTargetB = new three_1.WebGLRenderTarget(1, 1, renderTargetOptions);
|
|
72
73
|
const { uniforms } = this.fullscreenMaterial;
|
|
73
|
-
uniforms[
|
|
74
|
-
uniforms[
|
|
75
|
-
uniforms[
|
|
76
|
-
|
|
77
|
-
uniforms[
|
|
78
|
-
uniforms[
|
|
79
|
-
uniforms[
|
|
74
|
+
uniforms["inputTexture"].value = this.inputTexture;
|
|
75
|
+
uniforms["depthTexture"].value = depthTexture;
|
|
76
|
+
uniforms["projectionMatrixInverse"].value =
|
|
77
|
+
camera.projectionMatrixInverse;
|
|
78
|
+
uniforms["cameraMatrixWorld"].value = camera.matrixWorld;
|
|
79
|
+
uniforms["depthPhi"].value = options.depthPhi;
|
|
80
|
+
uniforms["normalPhi"].value = options.normalPhi;
|
|
81
|
+
uniforms["distance"].value = options.distance;
|
|
80
82
|
if (options.normalTexture) {
|
|
81
|
-
uniforms[
|
|
83
|
+
uniforms["normalTexture"] = { value: options.normalTexture };
|
|
82
84
|
}
|
|
83
85
|
else {
|
|
84
|
-
this.fullscreenMaterial.defines.NORMAL_IN_RGB =
|
|
86
|
+
this.fullscreenMaterial.defines.NORMAL_IN_RGB =
|
|
87
|
+
"";
|
|
85
88
|
}
|
|
86
89
|
// these properties need the shader to be recompiled
|
|
87
|
-
for (const prop of [
|
|
90
|
+
for (const prop of ["radius", "rings", "samples"]) {
|
|
88
91
|
Object.defineProperty(this, prop, {
|
|
89
92
|
get: () => options[prop],
|
|
90
|
-
set: value => {
|
|
93
|
+
set: (value) => {
|
|
91
94
|
options[prop] = value;
|
|
92
95
|
this.setSize(this.renderTargetA.width, this.renderTargetA.height);
|
|
93
|
-
}
|
|
96
|
+
},
|
|
94
97
|
});
|
|
95
98
|
}
|
|
96
99
|
}
|
|
97
100
|
static loadBlueNoiseTexture() {
|
|
98
101
|
return __awaiter(this, void 0, void 0, function* () {
|
|
99
|
-
const result = yield viewer_shared_services_1.HttpClient.instance.loadTexture(
|
|
102
|
+
const result = yield viewer_shared_services_1.HttpClient.instance.loadTexture("https://viewer.shapediver.com/v3/graphics/LDR_RGBA_0.png");
|
|
100
103
|
if (result) {
|
|
101
104
|
const url = URL.createObjectURL(result.data.blob);
|
|
102
|
-
new three_1.TextureLoader().load(url, texture => {
|
|
105
|
+
new three_1.TextureLoader().load(url, (texture) => {
|
|
103
106
|
URL.revokeObjectURL(url);
|
|
104
107
|
PoissionDenoisePass.blueNoiseTexture = texture;
|
|
105
108
|
PoissionDenoisePass.blueNoiseTexture.minFilter = three_1.NearestFilter;
|
|
@@ -111,7 +114,7 @@ class PoissionDenoisePass extends postprocessing_1.Pass {
|
|
|
111
114
|
});
|
|
112
115
|
}
|
|
113
116
|
else {
|
|
114
|
-
viewer_shared_services_1.Logger.instance.warn(
|
|
117
|
+
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...");
|
|
115
118
|
// if there was an issue loading the texture
|
|
116
119
|
// set a timeout with 1 second to try again
|
|
117
120
|
setTimeout(() => {
|
|
@@ -151,33 +154,44 @@ class PoissionDenoisePass extends postprocessing_1.Pass {
|
|
|
151
154
|
}
|
|
152
155
|
generatePoissonDiskConstant(poissonDisk) {
|
|
153
156
|
const samples = poissonDisk.length;
|
|
154
|
-
let glslCode =
|
|
157
|
+
let glslCode = "const vec2 poissonDisk[samples] = vec2[samples](\n";
|
|
155
158
|
for (let i = 0; i < samples; i++) {
|
|
156
159
|
const sample = poissonDisk[i];
|
|
157
160
|
glslCode += ` vec2(${sample.x}, ${sample.y})`;
|
|
158
161
|
if (i < samples - 1) {
|
|
159
|
-
glslCode +=
|
|
162
|
+
glslCode += ",";
|
|
160
163
|
}
|
|
161
|
-
glslCode +=
|
|
164
|
+
glslCode += "\n";
|
|
162
165
|
}
|
|
163
|
-
glslCode +=
|
|
166
|
+
glslCode += ");";
|
|
164
167
|
return glslCode;
|
|
165
168
|
}
|
|
166
169
|
render(renderer) {
|
|
167
170
|
this.fullscreenMaterial.uniforms.index.value = 0;
|
|
168
|
-
const noiseTexture = this.fullscreenMaterial
|
|
169
|
-
|
|
171
|
+
const noiseTexture = this.fullscreenMaterial
|
|
172
|
+
.uniforms.blueNoiseTexture.value;
|
|
173
|
+
if (noiseTexture !== undefined &&
|
|
174
|
+
noiseTexture !== null &&
|
|
175
|
+
noiseTexture instanceof three_1.Texture) {
|
|
170
176
|
const { width, height } = noiseTexture.source.data;
|
|
171
177
|
this.fullscreenMaterial.uniforms.blueNoiseRepeat.value.set(this.renderTargetA.width / width, this.renderTargetA.height / height);
|
|
172
178
|
}
|
|
173
179
|
for (let i = 0; i < 2 * this.iterations; i++) {
|
|
174
180
|
const horizontal = i % 2 === 0;
|
|
175
|
-
const inputRenderTarget = horizontal
|
|
176
|
-
|
|
177
|
-
|
|
181
|
+
const inputRenderTarget = horizontal
|
|
182
|
+
? this.renderTargetB
|
|
183
|
+
: this.renderTargetA;
|
|
184
|
+
this.fullscreenMaterial.uniforms["inputTexture"].value = i === 0 ? this.inputTexture : inputRenderTarget.texture;
|
|
185
|
+
const renderTarget = horizontal
|
|
186
|
+
? this.renderTargetA
|
|
187
|
+
: this.renderTargetB;
|
|
178
188
|
renderer.setRenderTarget(renderTarget);
|
|
179
189
|
renderer.render(this.scene, this.camera);
|
|
180
|
-
this.fullscreenMaterial.uniforms.index.value =
|
|
190
|
+
this.fullscreenMaterial.uniforms.index.value =
|
|
191
|
+
(this.fullscreenMaterial.uniforms.index
|
|
192
|
+
.value +
|
|
193
|
+
1) %
|
|
194
|
+
4;
|
|
181
195
|
}
|
|
182
196
|
}
|
|
183
197
|
setSize(width, height) {
|
|
@@ -187,7 +201,8 @@ class PoissionDenoisePass extends postprocessing_1.Pass {
|
|
|
187
201
|
const poissonDisk = this.generateDenoiseSamples(this.samples, this.rings, this.radius, new three_1.Vector2(1 / width, 1 / height));
|
|
188
202
|
const sampleDefine = `const int samples = ${this.samples};\n`;
|
|
189
203
|
const poissonDiskConstant = this.generatePoissonDiskConstant(poissonDisk);
|
|
190
|
-
this.fullscreenMaterial.fragmentShader =
|
|
204
|
+
this.fullscreenMaterial.fragmentShader =
|
|
205
|
+
sampleDefine + poissonDiskConstant + "\n" + finalFragmentShader;
|
|
191
206
|
this.fullscreenMaterial.needsUpdate = true;
|
|
192
207
|
}
|
|
193
208
|
}
|
|
@@ -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,6 +1,6 @@
|
|
|
1
|
-
import { EffectComposer } from
|
|
2
|
-
import { Camera, Scene, Vector3 } from
|
|
3
|
-
import { AOEffect } from
|
|
1
|
+
import { EffectComposer } from "postprocessing";
|
|
2
|
+
import { Camera, Scene, Vector3 } from "three";
|
|
3
|
+
import { AOEffect } from "../ao/AOEffect";
|
|
4
4
|
declare class SSAOEffect extends AOEffect {
|
|
5
5
|
spp: number;
|
|
6
6
|
constructor(composer: EffectComposer, camera: Camera, scene: Scene, options?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SSAOEffect.d.ts","sourceRoot":"","sources":["../../../../../src/managers/postprocessing/ao/ssao/SSAOEffect.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"SSAOEffect.d.ts","sourceRoot":"","sources":["../../../../../src/managers/postprocessing/ao/ssao/SSAOEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAC,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAoBxC,cAAM,UAAW,SAAQ,QAAQ;IAGzB,GAAG,SAAM;gBAOf,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,OAAO,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC;IAwB5B,iBAAiB,CAAC,CAAC,EAAE,MAAM;IAe3B,mBAAmB,CAAC,OAAO,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC;CA6C5D;AAED,OAAO,EAAC,UAAU,EAAC,CAAC"}
|
|
@@ -4,9 +4,9 @@ exports.SSAOEffect = void 0;
|
|
|
4
4
|
const three_1 = require("three");
|
|
5
5
|
const AOEffect_1 = require("../ao/AOEffect");
|
|
6
6
|
const AOPass_1 = require("../ao/AOPass");
|
|
7
|
-
const ssao_1 = require("./shader/ssao");
|
|
8
7
|
const ao_utils_1 = require("../ao/shader/ao_utils");
|
|
9
|
-
const
|
|
8
|
+
const ssao_1 = require("./shader/ssao");
|
|
9
|
+
const finalFragmentShader = ssao_1.ssao.replace("#include <ao_utils>", ao_utils_1.ao_utils);
|
|
10
10
|
class SSAOPass extends AOPass_1.AOPass {
|
|
11
11
|
// #region Constructors (1)
|
|
12
12
|
constructor(camera, scene) {
|
|
@@ -24,7 +24,7 @@ class SSAOEffect extends AOEffect_1.AOEffect {
|
|
|
24
24
|
spp: 16,
|
|
25
25
|
distance: 1,
|
|
26
26
|
distancePower: 0.25,
|
|
27
|
-
power: 2
|
|
27
|
+
power: 2,
|
|
28
28
|
});
|
|
29
29
|
options = Object.assign(Object.assign({}, SSAOEffect.DefaultOptions), options);
|
|
30
30
|
}
|
|
@@ -44,7 +44,7 @@ class SSAOEffect extends AOEffect_1.AOEffect {
|
|
|
44
44
|
}
|
|
45
45
|
makeOptionsReactive(options) {
|
|
46
46
|
super.makeOptionsReactive(options);
|
|
47
|
-
for (const key of [
|
|
47
|
+
for (const key of ["spp"]) {
|
|
48
48
|
Object.defineProperty(this, key, {
|
|
49
49
|
get() {
|
|
50
50
|
return options[key];
|
|
@@ -54,24 +54,29 @@ class SSAOEffect extends AOEffect_1.AOEffect {
|
|
|
54
54
|
return;
|
|
55
55
|
options[key] = value;
|
|
56
56
|
switch (key) {
|
|
57
|
-
case
|
|
58
|
-
this.aoPass.fullscreenMaterial.defines.spp =
|
|
57
|
+
case "spp": {
|
|
58
|
+
this.aoPass.fullscreenMaterial.defines.spp =
|
|
59
|
+
value.toFixed(0);
|
|
59
60
|
const samples = this.getPointsOnSphere(value);
|
|
60
61
|
const samplesR = [];
|
|
61
62
|
for (let i = 0; i < value; i++) {
|
|
62
63
|
samplesR.push((i + 1) / value);
|
|
63
64
|
}
|
|
64
|
-
this.aoPass.fullscreenMaterial.uniforms.samples = {
|
|
65
|
-
|
|
65
|
+
this.aoPass.fullscreenMaterial.uniforms.samples = {
|
|
66
|
+
value: samples,
|
|
67
|
+
};
|
|
68
|
+
this.aoPass.fullscreenMaterial.uniforms.samplesR = {
|
|
69
|
+
value: samplesR,
|
|
70
|
+
};
|
|
66
71
|
this.aoPass.fullscreenMaterial.needsUpdate = true;
|
|
67
72
|
break;
|
|
68
73
|
}
|
|
69
74
|
}
|
|
70
75
|
},
|
|
71
|
-
configurable: true
|
|
76
|
+
configurable: true,
|
|
72
77
|
});
|
|
73
78
|
}
|
|
74
|
-
this.spp = options[
|
|
79
|
+
this.spp = options["spp"];
|
|
75
80
|
}
|
|
76
81
|
}
|
|
77
82
|
exports.SSAOEffect = SSAOEffect;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SSAOEffect.js","sourceRoot":"","sources":["../../../../../src/managers/postprocessing/ao/ssao/SSAOEffect.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"SSAOEffect.js","sourceRoot":"","sources":["../../../../../src/managers/postprocessing/ao/ssao/SSAOEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../../../../../../src/managers/postprocessing/ao/utils/shader/basic.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,+MAUjB,
|
|
1
|
+
{"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../../../../../../src/managers/postprocessing/ao/utils/shader/basic.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,+MAUjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic.js","sourceRoot":"","sources":["../../../../../../src/managers/postprocessing/ao/utils/shader/basic.ts"],"names":[],"mappings":";;;AAAa,QAAA,KAAK,GAAG;;;;;;;;;;CAUpB,
|
|
1
|
+
{"version":3,"file":"basic.js","sourceRoot":"","sources":["../../../../../../src/managers/postprocessing/ao/utils/shader/basic.ts"],"names":[],"mappings":";;;AAAa,QAAA,KAAK,GAAG;;;;;;;;;;CAUpB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sampleBlueNoise.d.ts","sourceRoot":"","sources":["../../../../../../src/managers/postprocessing/ao/utils/shader/sampleBlueNoise.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,+3CAqC3B,
|
|
1
|
+
{"version":3,"file":"sampleBlueNoise.d.ts","sourceRoot":"","sources":["../../../../../../src/managers/postprocessing/ao/utils/shader/sampleBlueNoise.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,+3CAqC3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sampleBlueNoise.js","sourceRoot":"","sources":["../../../../../../src/managers/postprocessing/ao/utils/shader/sampleBlueNoise.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqC9B,
|
|
1
|
+
{"version":3,"file":"sampleBlueNoise.js","sourceRoot":"","sources":["../../../../../../src/managers/postprocessing/ao/utils/shader/sampleBlueNoise.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqC9B,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AdaptiveLuminancePass, BlendFunction, Effect, LuminancePass, ToneMappingMode } from
|
|
2
|
-
import { WebGLRenderer, WebGLRenderTarget } from
|
|
1
|
+
import { AdaptiveLuminancePass, BlendFunction, Effect, LuminancePass, ToneMappingMode } from "postprocessing";
|
|
2
|
+
import { WebGLRenderer, WebGLRenderTarget } from "three";
|
|
3
3
|
/**
|
|
4
4
|
* A tone mapping effect.
|
|
5
5
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToneMappingEffect.d.ts","sourceRoot":"","sources":["../../../../../src/managers/postprocessing/effects/tone-mapping/ToneMappingEffect.ts"],"names":[],"mappings":"AACA,OAAO,EACN,qBAAqB,EACrB,aAAa,EACb,MAAM,EAEN,aAAa,EACb,eAAe,
|
|
1
|
+
{"version":3,"file":"ToneMappingEffect.d.ts","sourceRoot":"","sources":["../../../../../src/managers/postprocessing/effects/tone-mapping/ToneMappingEffect.ts"],"names":[],"mappings":"AACA,OAAO,EACN,qBAAqB,EACrB,aAAa,EACb,MAAM,EAEN,aAAa,EACb,eAAe,EACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAIN,aAAa,EACb,iBAAiB,EACjB,MAAM,OAAO,CAAC;AAGf;;;;;;;;GAQG;AAEH,qBAAa,iBAAkB,SAAQ,MAAM;IAC5C,qBAAqB,EAAE,qBAAqB,CAAC;IACtC,aAAa,EAAE,aAAa,CAAC;IAC7B,qBAAqB,EAAE,iBAAiB,CAAC;IAEhD;;;;;;;;;;;;;;;;OAgBG;gBACS,EACX,aAAiC,EACjC,QAAgB,EAChB,IAEsB,EACtB,UAAgB,EAChB,YAAkB,EAClB,UAAyB,EACzB,UAAgB,EAChB,YAAmB,EACnB,gBAAsB,EACtB,cAAoB,GACpB,GAAE;QACF,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,IAAI,CAAC,EAAE,eAAe,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;KACnB;IA4DN;;;;;OAKG;IAEH,IAAW,cAAc,QAExB;IAED,IAAW,cAAc,CAAC,KAAK,KAAA,EAE9B;IAED;;;;;OAKG;IAEH,IAAW,QAAQ,YAElB;IAED,IAAW,QAAQ,CAAC,KAAK,SAAA,EAIxB;IAED;;;;OAIG;IAEH,IAAW,yBAAyB,6BAEnC;IAED;;;;;;OAMG;IAEH,IAAW,gBAAgB,QAE1B;IAED,IAAW,gBAAgB,CAAC,KAAK,KAAA,EAEhC;IAED;;;OAGG;IAEH,IAAW,WAAW,WAGrB;IAED,IAAW,WAAW,CAAC,KAAK,QAAA,EAE3B;IAED;;;;;;OAMG;IAEH,IAAW,UAAU,QAEpB;IAED,IAAW,UAAU,CAAC,KAAK,KAAA,EAE1B;IAED;;;;OAIG;IAEH,IAAW,IAAI,WAEd;IAED,IAAW,IAAI,CAAC,KAAK,QAAA,EA4DpB;IAED;;;;OAIG;IAEH,IAAW,UAAU,WAEpB;IAED,IAAW,UAAU,CAAC,KAAK,QAAA,EAO1B;IAED;;;;;;OAMG;IAEH,IAAW,UAAU,QAEpB;IAED,IAAW,UAAU,CAAC,KAAK,KAAA,EAE1B;IAED;;;;;OAKG;IAEI,4BAA4B;IAInC;;;;;OAKG;IAEI,OAAO;IAId;;;;;OAKG;IAEI,aAAa;IAIpB;;;;;;OAMG;IAEI,UAAU,CAChB,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,OAAO,EACd,eAAe,EAAE,MAAM;IAKxB;;;;;OAKG;IAEI,OAAO,CAAC,KAAK,EAAE,eAAe;IAIrC;;;;;OAKG;IAEI,aAAa,CAAC,KAAK,EAAE,MAAM;IAIlC;;;;;;OAMG;IAEI,MAAM,CACZ,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,iBAAiB,EAC9B,SAAS,EAAE,MAAM;CAOlB"}
|
|
@@ -32,17 +32,19 @@ class ToneMappingEffect extends postprocessing_1.Effect {
|
|
|
32
32
|
* @param {number} [options.averageLuminance=1.0] - The average luminance. Used for the non-adaptive Reinhard operator.
|
|
33
33
|
* @param {number} [options.adaptationRate=1.0] - The luminance adaptation rate.
|
|
34
34
|
*/
|
|
35
|
-
constructor({ blendFunction = postprocessing_1.BlendFunction.SRC, adaptive = false, mode = adaptive
|
|
36
|
-
|
|
35
|
+
constructor({ blendFunction = postprocessing_1.BlendFunction.SRC, adaptive = false, mode = adaptive
|
|
36
|
+
? postprocessing_1.ToneMappingMode.REINHARD2_ADAPTIVE
|
|
37
|
+
: postprocessing_1.ToneMappingMode.AGX, resolution = 256, maxLuminance = 4.0, whitePoint = maxLuminance, middleGrey = 0.6, minLuminance = 0.01, averageLuminance = 1.0, adaptationRate = 1.0, } = {}) {
|
|
38
|
+
super("ToneMappingEffect", tone_mapping_1.tone_mapping, {
|
|
37
39
|
attributes: postprocessing_1.EffectAttribute.DEPTH,
|
|
38
40
|
blendFunction,
|
|
39
41
|
uniforms: new Map([
|
|
40
|
-
[
|
|
41
|
-
[
|
|
42
|
-
[
|
|
43
|
-
[
|
|
44
|
-
[
|
|
45
|
-
])
|
|
42
|
+
["luminanceBuffer", new three_1.Uniform(null)],
|
|
43
|
+
["maxLuminance", new three_1.Uniform(maxLuminance)],
|
|
44
|
+
["whitePoint", new three_1.Uniform(whitePoint)],
|
|
45
|
+
["middleGrey", new three_1.Uniform(middleGrey)],
|
|
46
|
+
["averageLuminance", new three_1.Uniform(averageLuminance)],
|
|
47
|
+
]),
|
|
46
48
|
});
|
|
47
49
|
/**
|
|
48
50
|
* The render target for the current luminance.
|
|
@@ -52,10 +54,10 @@ class ToneMappingEffect extends postprocessing_1.Effect {
|
|
|
52
54
|
*/
|
|
53
55
|
this.renderTargetLuminance = new three_1.WebGLRenderTarget(1, 1, {
|
|
54
56
|
minFilter: three_1.LinearMipmapLinearFilter,
|
|
55
|
-
depthBuffer: false
|
|
57
|
+
depthBuffer: false,
|
|
56
58
|
});
|
|
57
59
|
this.renderTargetLuminance.texture.generateMipmaps = true;
|
|
58
|
-
this.renderTargetLuminance.texture.name =
|
|
60
|
+
this.renderTargetLuminance.texture.name = "Luminance";
|
|
59
61
|
/**
|
|
60
62
|
* A luminance pass.
|
|
61
63
|
*
|
|
@@ -63,7 +65,7 @@ class ToneMappingEffect extends postprocessing_1.Effect {
|
|
|
63
65
|
* @private
|
|
64
66
|
*/
|
|
65
67
|
this.luminancePass = new postprocessing_1.LuminancePass({
|
|
66
|
-
renderTarget: this.renderTargetLuminance
|
|
68
|
+
renderTarget: this.renderTargetLuminance,
|
|
67
69
|
});
|
|
68
70
|
/**
|
|
69
71
|
* An adaptive luminance pass.
|
|
@@ -73,9 +75,10 @@ class ToneMappingEffect extends postprocessing_1.Effect {
|
|
|
73
75
|
*/
|
|
74
76
|
this.adaptiveLuminancePass = new postprocessing_1.AdaptiveLuminancePass(this.luminancePass.texture, {
|
|
75
77
|
minLuminance,
|
|
76
|
-
adaptationRate
|
|
78
|
+
adaptationRate,
|
|
77
79
|
});
|
|
78
|
-
this.uniforms.get(
|
|
80
|
+
this.uniforms.get("luminanceBuffer").value =
|
|
81
|
+
this.adaptiveLuminancePass.texture;
|
|
79
82
|
this.resolution = resolution;
|
|
80
83
|
this.mode = mode;
|
|
81
84
|
}
|
|
@@ -98,10 +101,12 @@ class ToneMappingEffect extends postprocessing_1.Effect {
|
|
|
98
101
|
* @deprecated Use mode instead.
|
|
99
102
|
*/
|
|
100
103
|
get adaptive() {
|
|
101
|
-
return
|
|
104
|
+
return this.mode === postprocessing_1.ToneMappingMode.REINHARD2_ADAPTIVE;
|
|
102
105
|
}
|
|
103
106
|
set adaptive(value) {
|
|
104
|
-
this.mode = value
|
|
107
|
+
this.mode = value
|
|
108
|
+
? postprocessing_1.ToneMappingMode.REINHARD2_ADAPTIVE
|
|
109
|
+
: postprocessing_1.ToneMappingMode.REINHARD2;
|
|
105
110
|
}
|
|
106
111
|
/**
|
|
107
112
|
* The adaptive luminance material.
|
|
@@ -119,21 +124,21 @@ class ToneMappingEffect extends postprocessing_1.Effect {
|
|
|
119
124
|
* @type {number}
|
|
120
125
|
*/
|
|
121
126
|
get averageLuminance() {
|
|
122
|
-
return this.uniforms.get(
|
|
127
|
+
return this.uniforms.get("averageLuminance").value;
|
|
123
128
|
}
|
|
124
129
|
set averageLuminance(value) {
|
|
125
|
-
this.uniforms.get(
|
|
130
|
+
this.uniforms.get("averageLuminance").value = value;
|
|
126
131
|
}
|
|
127
132
|
/**
|
|
128
133
|
* @type {number}
|
|
129
134
|
* @deprecated
|
|
130
135
|
*/
|
|
131
136
|
get distinction() {
|
|
132
|
-
console.warn(this.name,
|
|
137
|
+
console.warn(this.name, "distinction was removed.");
|
|
133
138
|
return 1.0;
|
|
134
139
|
}
|
|
135
140
|
set distinction(value) {
|
|
136
|
-
console.warn(this.name,
|
|
141
|
+
console.warn(this.name, "distinction was removed.");
|
|
137
142
|
}
|
|
138
143
|
/**
|
|
139
144
|
* The middle grey factor. Default is `0.6`.
|
|
@@ -143,10 +148,10 @@ class ToneMappingEffect extends postprocessing_1.Effect {
|
|
|
143
148
|
* @type {number}
|
|
144
149
|
*/
|
|
145
150
|
get middleGrey() {
|
|
146
|
-
return this.uniforms.get(
|
|
151
|
+
return this.uniforms.get("middleGrey").value;
|
|
147
152
|
}
|
|
148
153
|
set middleGrey(value) {
|
|
149
|
-
this.uniforms.get(
|
|
154
|
+
this.uniforms.get("middleGrey").value = value;
|
|
150
155
|
}
|
|
151
156
|
/**
|
|
152
157
|
* The tone mapping mode.
|
|
@@ -154,41 +159,44 @@ class ToneMappingEffect extends postprocessing_1.Effect {
|
|
|
154
159
|
* @type {ToneMappingMode}
|
|
155
160
|
*/
|
|
156
161
|
get mode() {
|
|
157
|
-
return Number(this.defines.get(
|
|
162
|
+
return Number(this.defines.get("TONE_MAPPING_MODE"));
|
|
158
163
|
}
|
|
159
164
|
set mode(value) {
|
|
160
165
|
if (this.mode === value) {
|
|
161
166
|
return;
|
|
162
167
|
}
|
|
163
|
-
const revision = +three_1.REVISION.replace(/\D+/g,
|
|
164
|
-
const cineonToneMapping =
|
|
168
|
+
const revision = +three_1.REVISION.replace(/\D+/g, "");
|
|
169
|
+
const cineonToneMapping = revision >= 168
|
|
170
|
+
? "CineonToneMapping(texel)"
|
|
171
|
+
: "OptimizedCineonToneMapping(texel)";
|
|
165
172
|
this.defines.clear();
|
|
166
|
-
this.defines.set(
|
|
173
|
+
this.defines.set("TONE_MAPPING_MODE", value.toFixed(0));
|
|
167
174
|
// Use one of the built-in tone mapping operators.
|
|
168
175
|
switch (value) {
|
|
169
176
|
case postprocessing_1.ToneMappingMode.LINEAR:
|
|
170
|
-
this.defines.set(
|
|
177
|
+
this.defines.set("toneMapping(texel)", "LinearToneMapping(texel)");
|
|
171
178
|
break;
|
|
172
179
|
case postprocessing_1.ToneMappingMode.REINHARD:
|
|
173
|
-
this.defines.set(
|
|
180
|
+
this.defines.set("toneMapping(texel)", "ReinhardToneMapping(texel)");
|
|
174
181
|
break;
|
|
175
182
|
case postprocessing_1.ToneMappingMode.OPTIMIZED_CINEON:
|
|
176
|
-
this.defines.set(
|
|
183
|
+
this.defines.set("toneMapping(texel)", cineonToneMapping);
|
|
177
184
|
break;
|
|
178
185
|
case postprocessing_1.ToneMappingMode.ACES_FILMIC:
|
|
179
|
-
this.defines.set(
|
|
186
|
+
this.defines.set("toneMapping(texel)", "ACESFilmicToneMapping(texel)");
|
|
180
187
|
break;
|
|
181
188
|
case postprocessing_1.ToneMappingMode.AGX:
|
|
182
|
-
this.defines.set(
|
|
189
|
+
this.defines.set("toneMapping(texel)", "AgXToneMapping(texel)");
|
|
183
190
|
break;
|
|
184
191
|
case postprocessing_1.ToneMappingMode.NEUTRAL:
|
|
185
|
-
this.defines.set(
|
|
192
|
+
this.defines.set("toneMapping(texel)", "NeutralToneMapping(texel)");
|
|
186
193
|
break;
|
|
187
194
|
default:
|
|
188
|
-
this.defines.set(
|
|
195
|
+
this.defines.set("toneMapping(texel)", "texel");
|
|
189
196
|
break;
|
|
190
197
|
}
|
|
191
|
-
this.adaptiveLuminancePass.enabled =
|
|
198
|
+
this.adaptiveLuminancePass.enabled =
|
|
199
|
+
value === postprocessing_1.ToneMappingMode.REINHARD2_ADAPTIVE;
|
|
192
200
|
this.setChanged();
|
|
193
201
|
}
|
|
194
202
|
/**
|
|
@@ -214,10 +222,10 @@ class ToneMappingEffect extends postprocessing_1.Effect {
|
|
|
214
222
|
* @type {number}
|
|
215
223
|
*/
|
|
216
224
|
get whitePoint() {
|
|
217
|
-
return this.uniforms.get(
|
|
225
|
+
return this.uniforms.get("whitePoint").value;
|
|
218
226
|
}
|
|
219
227
|
set whitePoint(value) {
|
|
220
|
-
this.uniforms.get(
|
|
228
|
+
this.uniforms.get("whitePoint").value = value;
|
|
221
229
|
}
|
|
222
230
|
/**
|
|
223
231
|
* Returns the adaptive luminance material.
|