@shapediver/viewer.rendering-engine.rendering-engine-threejs 3.16.8 → 3.16.10
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/RenderingEngine.d.ts +294 -294
- package/dist/RenderingEngine.js +987 -977
- package/dist/RenderingEngine.js.map +1 -1
- package/dist/index.d.ts +16 -16
- package/dist/index.js +57 -57
- package/dist/injectors/TextureUnifierInjector.d.ts +13 -13
- package/dist/injectors/TextureUnifierInjector.js +181 -171
- package/dist/injectors/TextureUnifierInjector.js.map +1 -1
- package/dist/interfaces/ILoader.d.ts +3 -3
- package/dist/interfaces/ILoader.js +2 -2
- package/dist/interfaces/IRenderingEngine.d.ts +45 -45
- package/dist/interfaces/IRenderingEngine.js +2 -2
- package/dist/loaders/EnvironmentMapLoader.d.ts +119 -119
- package/dist/loaders/EnvironmentMapLoader.js +512 -502
- package/dist/loaders/EnvironmentMapLoader.js.map +1 -1
- package/dist/loaders/GeometryLoader.d.ts +39 -39
- package/dist/loaders/GeometryLoader.d.ts.map +1 -1
- package/dist/loaders/GeometryLoader.js +603 -593
- package/dist/loaders/GeometryLoader.js.map +1 -1
- package/dist/loaders/HTMLElementAnchorLoader.d.ts +15 -15
- package/dist/loaders/HTMLElementAnchorLoader.js +98 -98
- package/dist/loaders/HTMLElementAnchorLoader.js.map +1 -1
- package/dist/loaders/LightLoader.d.ts +19 -19
- package/dist/loaders/LightLoader.js +197 -187
- package/dist/loaders/LightLoader.js.map +1 -1
- package/dist/loaders/MaterialLoader.d.ts +115 -115
- package/dist/loaders/MaterialLoader.d.ts.map +1 -1
- package/dist/loaders/MaterialLoader.js +1612 -1602
- package/dist/loaders/MaterialLoader.js.map +1 -1
- package/dist/managers/ARManager.d.ts +17 -17
- package/dist/managers/ARManager.js +128 -128
- package/dist/managers/ARManager.js.map +1 -1
- package/dist/managers/CameraManager.d.ts +19 -19
- package/dist/managers/CameraManager.js +244 -234
- package/dist/managers/CameraManager.js.map +1 -1
- package/dist/managers/EnvironmentGeometryManager.d.ts +32 -32
- package/dist/managers/EnvironmentGeometryManager.js +114 -114
- package/dist/managers/EnvironmentGeometryManager.js.map +1 -1
- package/dist/managers/FlagManager.d.ts +19 -19
- package/dist/managers/FlagManager.js +143 -143
- package/dist/managers/FlagManager.js.map +1 -1
- package/dist/managers/PostProcessingManager.d.ts +1019 -1019
- package/dist/managers/PostProcessingManager.js +1306 -1296
- package/dist/managers/PostProcessingManager.js.map +1 -1
- package/dist/managers/RenderingManager.d.ts +84 -84
- package/dist/managers/RenderingManager.d.ts.map +1 -1
- package/dist/managers/RenderingManager.js +679 -669
- package/dist/managers/RenderingManager.js.map +1 -1
- package/dist/managers/SceneTracingManager.d.ts +28 -28
- package/dist/managers/SceneTracingManager.js +160 -150
- package/dist/managers/SceneTracingManager.js.map +1 -1
- package/dist/managers/SceneTreeManager.d.ts +81 -81
- package/dist/managers/SceneTreeManager.d.ts.map +1 -1
- package/dist/managers/SceneTreeManager.js +500 -490
- package/dist/managers/SceneTreeManager.js.map +1 -1
- package/dist/managers/SettingsManager.d.ts +28 -28
- package/dist/managers/SettingsManager.js +284 -284
- package/dist/managers/SettingsManager.js.map +1 -1
- package/dist/managers/environmentGeometry/ContactShadow.d.ts +42 -42
- package/dist/managers/environmentGeometry/ContactShadow.js +295 -285
- package/dist/managers/environmentGeometry/ContactShadow.js.map +1 -1
- package/dist/managers/environmentGeometry/Grid.d.ts +20 -20
- package/dist/managers/environmentGeometry/Grid.js +110 -100
- package/dist/managers/environmentGeometry/Grid.js.map +1 -1
- package/dist/managers/environmentGeometry/GroundPlane.d.ts +21 -21
- package/dist/managers/environmentGeometry/GroundPlane.js +105 -95
- package/dist/managers/environmentGeometry/GroundPlane.js.map +1 -1
- package/dist/managers/environmentGeometry/GroundPlaneShadow.d.ts +21 -21
- package/dist/managers/environmentGeometry/GroundPlaneShadow.js +96 -86
- package/dist/managers/environmentGeometry/GroundPlaneShadow.js.map +1 -1
- package/dist/managers/environmentGeometry/IEnvironmentGeometry.d.ts +8 -8
- package/dist/managers/environmentGeometry/IEnvironmentGeometry.js +2 -2
- package/dist/managers/postprocessing/GodRaysManager.d.ts +12 -12
- package/dist/managers/postprocessing/GodRaysManager.js +73 -63
- package/dist/managers/postprocessing/GodRaysManager.js.map +1 -1
- package/dist/managers/postprocessing/OutlineManager.d.ts +15 -15
- package/dist/managers/postprocessing/OutlineManager.js +86 -76
- package/dist/managers/postprocessing/OutlineManager.js.map +1 -1
- package/dist/managers/postprocessing/SSAARenderPass.d.ts +53 -53
- package/dist/managers/postprocessing/SSAARenderPass.js +281 -281
- package/dist/managers/postprocessing/SSAARenderPass.js.map +1 -1
- package/dist/managers/postprocessing/SelectiveBloomManager.d.ts +14 -14
- package/dist/managers/postprocessing/SelectiveBloomManager.js +76 -66
- package/dist/managers/postprocessing/SelectiveBloomManager.js.map +1 -1
- package/dist/managers/postprocessing/ao/ao/AOEffect.d.ts +46 -46
- package/dist/managers/postprocessing/ao/ao/AOEffect.js +142 -142
- package/dist/managers/postprocessing/ao/ao/AOEffect.js.map +1 -1
- package/dist/managers/postprocessing/ao/ao/AOPass.d.ts +12 -12
- package/dist/managers/postprocessing/ao/ao/AOPass.js +108 -108
- package/dist/managers/postprocessing/ao/ao/AOPass.js.map +1 -1
- package/dist/managers/postprocessing/ao/ao/shader/ao_compose.d.ts +1 -1
- package/dist/managers/postprocessing/ao/ao/shader/ao_compose.js +4 -4
- package/dist/managers/postprocessing/ao/ao/shader/ao_utils.d.ts +1 -1
- package/dist/managers/postprocessing/ao/ao/shader/ao_utils.js +4 -4
- package/dist/managers/postprocessing/ao/hbao/HBAOEffect.d.ts +14 -14
- package/dist/managers/postprocessing/ao/hbao/HBAOEffect.js +24 -24
- package/dist/managers/postprocessing/ao/hbao/shader/hbao.d.ts +1 -1
- package/dist/managers/postprocessing/ao/hbao/shader/hbao.js +4 -4
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.d.ts +33 -33
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.js +211 -211
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.js.map +1 -1
- package/dist/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.d.ts +1 -1
- package/dist/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.js +4 -4
- package/dist/managers/postprocessing/ao/ssao/SSAOEffect.d.ts +14 -14
- package/dist/managers/postprocessing/ao/ssao/SSAOEffect.js +82 -82
- package/dist/managers/postprocessing/ao/ssao/SSAOEffect.js.map +1 -1
- package/dist/managers/postprocessing/ao/ssao/shader/ssao.d.ts +1 -1
- package/dist/managers/postprocessing/ao/ssao/shader/ssao.js +4 -4
- package/dist/managers/postprocessing/ao/utils/shader/basic.d.ts +1 -1
- package/dist/managers/postprocessing/ao/utils/shader/basic.js +4 -4
- package/dist/managers/postprocessing/ao/utils/shader/sampleBlueNoise.d.ts +1 -1
- package/dist/managers/postprocessing/ao/utils/shader/sampleBlueNoise.js +4 -4
- package/dist/managers/postprocessing/effects/tone-mapping/ToneMappingEffect.d.ts +165 -165
- package/dist/managers/postprocessing/effects/tone-mapping/ToneMappingEffect.js +299 -299
- package/dist/managers/postprocessing/effects/tone-mapping/ToneMappingEffect.js.map +1 -1
- package/dist/managers/postprocessing/effects/tone-mapping/tone-mapping.d.ts +1 -1
- package/dist/managers/postprocessing/effects/tone-mapping/tone-mapping.js +4 -4
- package/dist/managers/postprocessing/utils/CopyMaterial.d.ts +37 -37
- package/dist/managers/postprocessing/utils/CopyMaterial.js +69 -69
- package/dist/managers/postprocessing/utils/CopyShader.d.ts +13 -13
- package/dist/managers/postprocessing/utils/CopyShader.js +12 -12
- package/dist/managers/postprocessing/utils/FullScreenQuad.d.ts +9 -9
- package/dist/managers/postprocessing/utils/FullScreenQuad.js +28 -28
- package/dist/managers/postprocessing/utils/NormalPass.d.ts +87 -87
- package/dist/managers/postprocessing/utils/NormalPass.js +156 -156
- package/dist/managers/postprocessing/utils/NormalPass.js.map +1 -1
- package/dist/managers/postprocessing/utils/RenderPass.d.ts +114 -114
- package/dist/managers/postprocessing/utils/RenderPass.js +259 -259
- package/dist/managers/postprocessing/utils/RenderPass.js.map +1 -1
- package/dist/managers/sceneTree/SDTFUtils.d.ts +6 -6
- package/dist/managers/sceneTree/SDTFUtils.d.ts.map +1 -1
- package/dist/managers/sceneTree/SDTFUtils.js +50 -50
- package/dist/managers/sceneTree/SDTFUtils.js.map +1 -1
- package/dist/managers/sceneTree/SceenTreeManagerUtils.d.ts +7 -7
- package/dist/managers/sceneTree/SceenTreeManagerUtils.d.ts.map +1 -1
- package/dist/managers/sceneTree/SceenTreeManagerUtils.js +175 -165
- package/dist/managers/sceneTree/SceenTreeManagerUtils.js.map +1 -1
- package/dist/managers/sceneTree/ThreeJsDataUtils.d.ts +6 -6
- package/dist/managers/sceneTree/ThreeJsDataUtils.d.ts.map +1 -1
- package/dist/managers/sceneTree/ThreeJsDataUtils.js +80 -70
- package/dist/managers/sceneTree/ThreeJsDataUtils.js.map +1 -1
- package/dist/materials/GemMaterial.d.ts +37 -37
- package/dist/materials/GemMaterial.js +262 -252
- package/dist/materials/GemMaterial.js.map +1 -1
- package/dist/materials/MeshUnlitMaterialParameters.d.ts +3 -3
- package/dist/materials/MeshUnlitMaterialParameters.js +2 -2
- package/dist/materials/MultiPointsMaterial.d.ts +93 -93
- package/dist/materials/MultiPointsMaterial.js +577 -567
- package/dist/materials/MultiPointsMaterial.js.map +1 -1
- package/dist/materials/SpecularGlossinessMaterial.d.ts +13 -13
- package/dist/materials/SpecularGlossinessMaterial.js +171 -161
- package/dist/materials/SpecularGlossinessMaterial.js.map +1 -1
- package/dist/objects/SDColor.d.ts +16 -16
- package/dist/objects/SDColor.js +52 -52
- package/dist/objects/SDColor.js.map +1 -1
- package/dist/objects/SDObject.d.ts +27 -27
- package/dist/objects/SDObject.js +112 -102
- package/dist/objects/SDObject.js.map +1 -1
- package/dist/shaders/PCSS.d.ts +2 -2
- package/dist/shaders/PCSS.js +5 -5
- package/dist/shaders/gem.d.ts +2 -2
- package/dist/shaders/gem.js +5 -5
- package/dist/shaders/multi_points.d.ts +2 -2
- package/dist/shaders/multi_points.js +5 -5
- package/dist/styling/viewport-css.d.ts +1 -1
- package/dist/styling/viewport-css.js +4 -4
- package/dist/three/CSS2DRenderer.d.ts +31 -31
- package/dist/three/CSS2DRenderer.d.ts.map +1 -1
- package/dist/three/CSS2DRenderer.js +152 -152
- package/dist/three/CSS2DRenderer.js.map +1 -1
- package/dist/three/geometries/TextGeometry.d.ts +21 -21
- package/dist/three/geometries/TextGeometry.js +45 -45
- package/dist/three/geometries/TextGeometry.js.map +1 -1
- package/dist/three/loaders/RGBELoader.d.ts +23 -23
- package/dist/three/loaders/RGBELoader.js +311 -311
- package/dist/three/loaders/RGBELoader.js.map +1 -1
- package/dist/types/IThreejsData.d.ts +6 -6
- package/dist/types/IThreejsData.js +2 -2
- package/dist/types/ThreejsData.d.ts +10 -10
- package/dist/types/ThreejsData.js +41 -41
- package/package.json +18 -18
- package/dist/managers/InstanceGroupManager.d.ts +0 -58
- package/dist/managers/InstanceGroupManager.d.ts.map +0 -1
- package/dist/managers/InstanceGroupManager.js +0 -372
- package/dist/managers/InstanceGroupManager.js.map +0 -1
|
@@ -1,83 +1,83 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SSAOEffect = void 0;
|
|
4
|
-
const three_1 = require("three");
|
|
5
|
-
const AOEffect_1 = require("../ao/AOEffect");
|
|
6
|
-
const AOPass_1 = require("../ao/AOPass");
|
|
7
|
-
const ao_utils_1 = require("../ao/shader/ao_utils");
|
|
8
|
-
const ssao_1 = require("./shader/ssao");
|
|
9
|
-
const finalFragmentShader = ssao_1.ssao.replace("#include <ao_utils>", ao_utils_1.ao_utils);
|
|
10
|
-
class SSAOPass extends AOPass_1.AOPass {
|
|
11
|
-
// #region Constructors (1)
|
|
12
|
-
constructor(camera, scene) {
|
|
13
|
-
super(camera, scene, finalFragmentShader);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
class SSAOEffect extends AOEffect_1.AOEffect {
|
|
17
|
-
// #endregion Properties (1)
|
|
18
|
-
// #region Constructors (1)
|
|
19
|
-
constructor(composer, camera, scene, options) {
|
|
20
|
-
super(composer, camera, scene, new SSAOPass(camera, scene), options);
|
|
21
|
-
// #region Properties (1)
|
|
22
|
-
this.spp = 16;
|
|
23
|
-
SSAOEffect.DefaultOptions = Object.assign(Object.assign({}, AOEffect_1.AOEffect.DefaultOptions), {
|
|
24
|
-
spp: 16,
|
|
25
|
-
distance: 1,
|
|
26
|
-
distancePower: 0.25,
|
|
27
|
-
power: 2,
|
|
28
|
-
});
|
|
29
|
-
options = Object.assign(Object.assign({}, SSAOEffect.DefaultOptions), options);
|
|
30
|
-
}
|
|
31
|
-
// #endregion Constructors (1)
|
|
32
|
-
// #region Public Methods (2)
|
|
33
|
-
getPointsOnSphere(n) {
|
|
34
|
-
const points = [];
|
|
35
|
-
const inc = Math.PI * (3 - Math.sqrt(5));
|
|
36
|
-
const off = 2 / n;
|
|
37
|
-
for (let k = 0; k < n; k++) {
|
|
38
|
-
const y = k * off - 1 + off / 2;
|
|
39
|
-
const r = Math.sqrt(1 - y * y);
|
|
40
|
-
const phi = k * inc;
|
|
41
|
-
points.push(new three_1.Vector3(Math.cos(phi) * r, y, Math.sin(phi) * r));
|
|
42
|
-
}
|
|
43
|
-
return points;
|
|
44
|
-
}
|
|
45
|
-
makeOptionsReactive(options) {
|
|
46
|
-
super.makeOptionsReactive(options);
|
|
47
|
-
for (const key of ["spp"]) {
|
|
48
|
-
Object.defineProperty(this, key, {
|
|
49
|
-
get() {
|
|
50
|
-
return options[key];
|
|
51
|
-
},
|
|
52
|
-
set(value) {
|
|
53
|
-
if (value === null || value === undefined)
|
|
54
|
-
return;
|
|
55
|
-
options[key] = value;
|
|
56
|
-
switch (key) {
|
|
57
|
-
case "spp": {
|
|
58
|
-
this.aoPass.fullscreenMaterial.defines.spp =
|
|
59
|
-
value.toFixed(0);
|
|
60
|
-
const samples = this.getPointsOnSphere(value);
|
|
61
|
-
const samplesR = [];
|
|
62
|
-
for (let i = 0; i < value; i++) {
|
|
63
|
-
samplesR.push((i + 1) / value);
|
|
64
|
-
}
|
|
65
|
-
this.aoPass.fullscreenMaterial.uniforms.samples = {
|
|
66
|
-
value: samples,
|
|
67
|
-
};
|
|
68
|
-
this.aoPass.fullscreenMaterial.uniforms.samplesR = {
|
|
69
|
-
value: samplesR,
|
|
70
|
-
};
|
|
71
|
-
this.aoPass.fullscreenMaterial.needsUpdate = true;
|
|
72
|
-
break;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
},
|
|
76
|
-
configurable: true,
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
this.spp = options["spp"];
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
exports.SSAOEffect = SSAOEffect;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SSAOEffect = void 0;
|
|
4
|
+
const three_1 = require("three");
|
|
5
|
+
const AOEffect_1 = require("../ao/AOEffect");
|
|
6
|
+
const AOPass_1 = require("../ao/AOPass");
|
|
7
|
+
const ao_utils_1 = require("../ao/shader/ao_utils");
|
|
8
|
+
const ssao_1 = require("./shader/ssao");
|
|
9
|
+
const finalFragmentShader = ssao_1.ssao.replace("#include <ao_utils>", ao_utils_1.ao_utils);
|
|
10
|
+
class SSAOPass extends AOPass_1.AOPass {
|
|
11
|
+
// #region Constructors (1)
|
|
12
|
+
constructor(camera, scene) {
|
|
13
|
+
super(camera, scene, finalFragmentShader);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
class SSAOEffect extends AOEffect_1.AOEffect {
|
|
17
|
+
// #endregion Properties (1)
|
|
18
|
+
// #region Constructors (1)
|
|
19
|
+
constructor(composer, camera, scene, options) {
|
|
20
|
+
super(composer, camera, scene, new SSAOPass(camera, scene), options);
|
|
21
|
+
// #region Properties (1)
|
|
22
|
+
this.spp = 16;
|
|
23
|
+
SSAOEffect.DefaultOptions = Object.assign(Object.assign({}, AOEffect_1.AOEffect.DefaultOptions), {
|
|
24
|
+
spp: 16,
|
|
25
|
+
distance: 1,
|
|
26
|
+
distancePower: 0.25,
|
|
27
|
+
power: 2,
|
|
28
|
+
});
|
|
29
|
+
options = Object.assign(Object.assign({}, SSAOEffect.DefaultOptions), options);
|
|
30
|
+
}
|
|
31
|
+
// #endregion Constructors (1)
|
|
32
|
+
// #region Public Methods (2)
|
|
33
|
+
getPointsOnSphere(n) {
|
|
34
|
+
const points = [];
|
|
35
|
+
const inc = Math.PI * (3 - Math.sqrt(5));
|
|
36
|
+
const off = 2 / n;
|
|
37
|
+
for (let k = 0; k < n; k++) {
|
|
38
|
+
const y = k * off - 1 + off / 2;
|
|
39
|
+
const r = Math.sqrt(1 - y * y);
|
|
40
|
+
const phi = k * inc;
|
|
41
|
+
points.push(new three_1.Vector3(Math.cos(phi) * r, y, Math.sin(phi) * r));
|
|
42
|
+
}
|
|
43
|
+
return points;
|
|
44
|
+
}
|
|
45
|
+
makeOptionsReactive(options) {
|
|
46
|
+
super.makeOptionsReactive(options);
|
|
47
|
+
for (const key of ["spp"]) {
|
|
48
|
+
Object.defineProperty(this, key, {
|
|
49
|
+
get() {
|
|
50
|
+
return options[key];
|
|
51
|
+
},
|
|
52
|
+
set(value) {
|
|
53
|
+
if (value === null || value === undefined)
|
|
54
|
+
return;
|
|
55
|
+
options[key] = value;
|
|
56
|
+
switch (key) {
|
|
57
|
+
case "spp": {
|
|
58
|
+
this.aoPass.fullscreenMaterial.defines.spp =
|
|
59
|
+
value.toFixed(0);
|
|
60
|
+
const samples = this.getPointsOnSphere(value);
|
|
61
|
+
const samplesR = [];
|
|
62
|
+
for (let i = 0; i < value; i++) {
|
|
63
|
+
samplesR.push((i + 1) / value);
|
|
64
|
+
}
|
|
65
|
+
this.aoPass.fullscreenMaterial.uniforms.samples = {
|
|
66
|
+
value: samples,
|
|
67
|
+
};
|
|
68
|
+
this.aoPass.fullscreenMaterial.uniforms.samplesR = {
|
|
69
|
+
value: samplesR,
|
|
70
|
+
};
|
|
71
|
+
this.aoPass.fullscreenMaterial.needsUpdate = true;
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
configurable: true,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
this.spp = options["spp"];
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.SSAOEffect = SSAOEffect;
|
|
83
83
|
//# sourceMappingURL=SSAOEffect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SSAOEffect.js","sourceRoot":"","sources":["../../../../../src/managers/postprocessing/ao/ssao/SSAOEffect.ts"],"names":[],"mappings":";;;AACA,iCAA6C;AAC7C,6CAAwC;AACxC,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,OAAkC;QAElC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;QAdtE,yBAAyB;QAElB,QAAG,GAAG,EAAE,CAAC;QAcf,UAAU,CAAC,cAAc,mCACrB,mBAAQ,CAAC,cAAc,GACvB;YACF,GAAG,EAAE,EAAE;YACP,QAAQ,EAAE,CAAC;YACX,aAAa,EAAE,IAAI;YACnB,KAAK,EAAE,CAAC;SACR,CACD,CAAC;QAEF,OAAO,mCACH,UAAU,CAAC,cAAc,GACzB,OAAO,CACV,CAAC;IACH,CAAC;IAED,8BAA8B;IAE9B,6BAA6B;IAEtB,iBAAiB,CAAC,CAAS;QACjC,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"SSAOEffect.js","sourceRoot":"","sources":["../../../../../src/managers/postprocessing/ao/ssao/SSAOEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const ssao = "\nvarying vec2 vUv;\n\nuniform highp sampler2D depthTexture;\nuniform mat4 projectionViewMatrix;\nuniform mat4 cameraMatrixWorld;\n\nuniform sampler2D blueNoiseTexture;\nuniform vec2 blueNoiseRepeat;\nuniform vec2 texSize;\nuniform float aoDistance;\nuniform float distancePower;\nuniform float cameraNear;\nuniform float cameraFar;\nuniform int frame;\n\nuniform vec3[spp] samples;\nuniform float[spp] samplesR;\n\n#include <common>\n#include <packing>\n#include <sampleBlueNoise>\n#include <ao_utils>\n\nhighp float linearize_depth(highp float d, highp float zNear, highp float zFar) {\n highp float z_n = 2.0 * d - 1.0;\n return 2.0 * zNear * zFar / (zFar + zNear - z_n * (zFar - zNear));\n}\n\nvoid main() {\n float depth = textureLod(depthTexture, vUv, 0.).x;\n vec3 normal = computeNormal(vUv);\n\n // filter out background\n if (depth == 1.0) {\n gl_FragColor = vec4(normal, 1.0);\n return;\n }\n\n vec3 worldPos = computeWorldPosition(depth, vUv);\n vec3 screenSpaceNormal = getUnpackedNormal(vUv);\n\n #ifdef animatedNoise\n int seed = frame;\n #else\n int seed = 0;\n #endif\n\n vec4 noise = sampleBlueNoise(blueNoiseTexture, seed, blueNoiseRepeat, texSize);\n\n vec3 randomVec = normalize(noise.rgb * 2.0 - 1.0);\n vec3 tangent = normalize(randomVec - normal * dot(randomVec, normal));\n vec3 bitangent = cross(normal, tangent);\n mat3 tbn = mat3(tangent, bitangent, normal);\n\n float occluded = 0.0;\n float totalWeight = 0.0;\n\n vec3 samplePos;\n\n float sppF = float(spp);\n\n for (float i = 0.0; i < sppF; i++) {\n vec3 sampleDirection = tbn * samples[int(i)];\n\n // make sure sample direction is in the same hemisphere as the normal\n if (dot(sampleDirection, normal) < 0.0) sampleDirection *= -1.0;\n\n float moveAmt = samplesR[int(mod(i + noise.a * sppF, sppF))];\n samplePos = worldPos + aoDistance * moveAmt * sampleDirection;\n\n vec4 offset = projectionViewMatrix * vec4(samplePos, 1.0);\n offset.xyz /= offset.w;\n offset.xyz = offset.xyz * 0.5 + 0.5;\n\n float sampleDepth = textureLod(depthTexture, offset.xy, 0.0).x;\n\n if(sampleDepth == 1.0) {\n occluded += 0.0;\n totalWeight += 1.0;\n continue;\n }\n\n vec3 sampleNormal = getUnpackedNormal(offset.xy);\n\n float distSample = linearize_depth(sampleDepth, cameraNear, cameraFar);\n float distWorld = linearize_depth(offset.z, cameraNear, cameraFar);\n\n float depthBias = 0.001;\n float rangeCheck = smoothstep(0.0, 1.0, aoDistance / (abs(distSample - distWorld) + depthBias));\n rangeCheck = pow(rangeCheck, distancePower);\n rangeCheck = clamp(rangeCheck, 0.0, 1.0);\n float weight = dot(sampleDirection, normal);\n weight = clamp(weight, 0.0, 1.0);\n\n \n // check if the normals are in the same direction\n float dotProduct = dot(screenSpaceNormal, normalize(sampleNormal));\n if (dotProduct < 0.9999) {\n occluded += rangeCheck * weight * (distSample < distWorld ? 1.0 : 0.0);\n totalWeight += weight;\n } else {\n if(areDepthsOnSamePlane(depth, sampleDepth, vUv, offset.xy, normal, 0.1)) {\n occluded += 0.0;\n totalWeight += 1.0;\n } else {\n occluded += rangeCheck * weight * (distSample < distWorld ? 1.0 : 0.0);\n totalWeight += weight;\n }\n }\n }\n\n float occ = clamp(1.0 - occluded / totalWeight, 0.0, 1.0);\n gl_FragColor = vec4(normal, occ);\n}\n";
|
|
1
|
+
export declare const ssao = "\nvarying vec2 vUv;\n\nuniform highp sampler2D depthTexture;\nuniform mat4 projectionViewMatrix;\nuniform mat4 cameraMatrixWorld;\n\nuniform sampler2D blueNoiseTexture;\nuniform vec2 blueNoiseRepeat;\nuniform vec2 texSize;\nuniform float aoDistance;\nuniform float distancePower;\nuniform float cameraNear;\nuniform float cameraFar;\nuniform int frame;\n\nuniform vec3[spp] samples;\nuniform float[spp] samplesR;\n\n#include <common>\n#include <packing>\n#include <sampleBlueNoise>\n#include <ao_utils>\n\nhighp float linearize_depth(highp float d, highp float zNear, highp float zFar) {\n highp float z_n = 2.0 * d - 1.0;\n return 2.0 * zNear * zFar / (zFar + zNear - z_n * (zFar - zNear));\n}\n\nvoid main() {\n float depth = textureLod(depthTexture, vUv, 0.).x;\n vec3 normal = computeNormal(vUv);\n\n // filter out background\n if (depth == 1.0) {\n gl_FragColor = vec4(normal, 1.0);\n return;\n }\n\n vec3 worldPos = computeWorldPosition(depth, vUv);\n vec3 screenSpaceNormal = getUnpackedNormal(vUv);\n\n #ifdef animatedNoise\n int seed = frame;\n #else\n int seed = 0;\n #endif\n\n vec4 noise = sampleBlueNoise(blueNoiseTexture, seed, blueNoiseRepeat, texSize);\n\n vec3 randomVec = normalize(noise.rgb * 2.0 - 1.0);\n vec3 tangent = normalize(randomVec - normal * dot(randomVec, normal));\n vec3 bitangent = cross(normal, tangent);\n mat3 tbn = mat3(tangent, bitangent, normal);\n\n float occluded = 0.0;\n float totalWeight = 0.0;\n\n vec3 samplePos;\n\n float sppF = float(spp);\n\n for (float i = 0.0; i < sppF; i++) {\n vec3 sampleDirection = tbn * samples[int(i)];\n\n // make sure sample direction is in the same hemisphere as the normal\n if (dot(sampleDirection, normal) < 0.0) sampleDirection *= -1.0;\n\n float moveAmt = samplesR[int(mod(i + noise.a * sppF, sppF))];\n samplePos = worldPos + aoDistance * moveAmt * sampleDirection;\n\n vec4 offset = projectionViewMatrix * vec4(samplePos, 1.0);\n offset.xyz /= offset.w;\n offset.xyz = offset.xyz * 0.5 + 0.5;\n\n float sampleDepth = textureLod(depthTexture, offset.xy, 0.0).x;\n\n if(sampleDepth == 1.0) {\n occluded += 0.0;\n totalWeight += 1.0;\n continue;\n }\n\n vec3 sampleNormal = getUnpackedNormal(offset.xy);\n\n float distSample = linearize_depth(sampleDepth, cameraNear, cameraFar);\n float distWorld = linearize_depth(offset.z, cameraNear, cameraFar);\n\n float depthBias = 0.001;\n float rangeCheck = smoothstep(0.0, 1.0, aoDistance / (abs(distSample - distWorld) + depthBias));\n rangeCheck = pow(rangeCheck, distancePower);\n rangeCheck = clamp(rangeCheck, 0.0, 1.0);\n float weight = dot(sampleDirection, normal);\n weight = clamp(weight, 0.0, 1.0);\n\n \n // check if the normals are in the same direction\n float dotProduct = dot(screenSpaceNormal, normalize(sampleNormal));\n if (dotProduct < 0.9999) {\n occluded += rangeCheck * weight * (distSample < distWorld ? 1.0 : 0.0);\n totalWeight += weight;\n } else {\n if(areDepthsOnSamePlane(depth, sampleDepth, vUv, offset.xy, normal, 0.1)) {\n occluded += 0.0;\n totalWeight += 1.0;\n } else {\n occluded += rangeCheck * weight * (distSample < distWorld ? 1.0 : 0.0);\n totalWeight += weight;\n }\n }\n }\n\n float occ = clamp(1.0 - occluded / totalWeight, 0.0, 1.0);\n gl_FragColor = vec4(normal, occ);\n}\n";
|
|
2
2
|
//# sourceMappingURL=ssao.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ssao = void 0;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ssao = void 0;
|
|
4
4
|
exports.ssao = `
|
|
5
5
|
varying vec2 vUv;
|
|
6
6
|
|
|
@@ -116,5 +116,5 @@ void main() {
|
|
|
116
116
|
float occ = clamp(1.0 - occluded / totalWeight, 0.0, 1.0);
|
|
117
117
|
gl_FragColor = vec4(normal, occ);
|
|
118
118
|
}
|
|
119
|
-
`;
|
|
119
|
+
`;
|
|
120
120
|
//# sourceMappingURL=ssao.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const basic = "\nvarying vec2 vUv;\n\nout mat4 viewMatrixInverse;\n\nvoid main() {\n viewMatrixInverse = inverse(viewMatrix);\n vUv = position.xy * 0.5 + 0.5;\n gl_Position = vec4(position.xy, 1.0, 1.0);\n}\n";
|
|
1
|
+
export declare const basic = "\nvarying vec2 vUv;\n\nout mat4 viewMatrixInverse;\n\nvoid main() {\n viewMatrixInverse = inverse(viewMatrix);\n vUv = position.xy * 0.5 + 0.5;\n gl_Position = vec4(position.xy, 1.0, 1.0);\n}\n";
|
|
2
2
|
//# sourceMappingURL=basic.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.basic = void 0;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.basic = void 0;
|
|
4
4
|
exports.basic = `
|
|
5
5
|
varying vec2 vUv;
|
|
6
6
|
|
|
@@ -11,5 +11,5 @@ void main() {
|
|
|
11
11
|
vUv = position.xy * 0.5 + 0.5;
|
|
12
12
|
gl_Position = vec4(position.xy, 1.0, 1.0);
|
|
13
13
|
}
|
|
14
|
-
`;
|
|
14
|
+
`;
|
|
15
15
|
//# sourceMappingURL=basic.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const sampleBlueNoise = "\nconst float g = 1.6180339887498948482;\nconst float a1 = 1.0 / g;\n\n// reference: https://extremelearning.com.au/unreasonable-effectiveness-of-quasirandom-sequences/\nfloat r1(float n) {\n // 7th harmonious number\n return fract(1.1127756842787055 + a1 * n);\n}\n\nconst vec4 hn = vec4(0.618033988749895, 0.3247179572447458, 0.2207440846057596, 0.1673039782614187);\n\nvec4 sampleBlueNoise(sampler2D texture, int seed, vec2 repeat, vec2 texSize) {\n vec2 size = vUv * texSize;\n vec2 blueNoiseSize = texSize / repeat;\n float blueNoiseIndex = floor(floor(size.y / blueNoiseSize.y) * repeat.x) + floor(size.x / blueNoiseSize.x);\n\n // get the offset of this pixel's blue noise tile\n // int blueNoiseTileOffset = int(r1(blueNoiseIndex + 1.0) * 65536.);\n\n vec2 blueNoiseUv = vUv * repeat;\n\n // fetch blue noise for this pixel\n vec4 blueNoise = textureLod(texture, blueNoiseUv, 0.);\n\n // animate blue noise\n if (seed != 0) {\n blueNoise = fract(blueNoise + hn * float(seed));\n\n blueNoise.r = (blueNoise.r > 0.5 ? 1.0 - blueNoise.r : blueNoise.r) * 2.0;\n blueNoise.g = (blueNoise.g > 0.5 ? 1.0 - blueNoise.g : blueNoise.g) * 2.0;\n blueNoise.b = (blueNoise.b > 0.5 ? 1.0 - blueNoise.b : blueNoise.b) * 2.0;\n blueNoise.a = (blueNoise.a > 0.5 ? 1.0 - blueNoise.a : blueNoise.a) * 2.0;\n }\n\n return blueNoise;\n}\n";
|
|
1
|
+
export declare const sampleBlueNoise = "\nconst float g = 1.6180339887498948482;\nconst float a1 = 1.0 / g;\n\n// reference: https://extremelearning.com.au/unreasonable-effectiveness-of-quasirandom-sequences/\nfloat r1(float n) {\n // 7th harmonious number\n return fract(1.1127756842787055 + a1 * n);\n}\n\nconst vec4 hn = vec4(0.618033988749895, 0.3247179572447458, 0.2207440846057596, 0.1673039782614187);\n\nvec4 sampleBlueNoise(sampler2D texture, int seed, vec2 repeat, vec2 texSize) {\n vec2 size = vUv * texSize;\n vec2 blueNoiseSize = texSize / repeat;\n float blueNoiseIndex = floor(floor(size.y / blueNoiseSize.y) * repeat.x) + floor(size.x / blueNoiseSize.x);\n\n // get the offset of this pixel's blue noise tile\n // int blueNoiseTileOffset = int(r1(blueNoiseIndex + 1.0) * 65536.);\n\n vec2 blueNoiseUv = vUv * repeat;\n\n // fetch blue noise for this pixel\n vec4 blueNoise = textureLod(texture, blueNoiseUv, 0.);\n\n // animate blue noise\n if (seed != 0) {\n blueNoise = fract(blueNoise + hn * float(seed));\n\n blueNoise.r = (blueNoise.r > 0.5 ? 1.0 - blueNoise.r : blueNoise.r) * 2.0;\n blueNoise.g = (blueNoise.g > 0.5 ? 1.0 - blueNoise.g : blueNoise.g) * 2.0;\n blueNoise.b = (blueNoise.b > 0.5 ? 1.0 - blueNoise.b : blueNoise.b) * 2.0;\n blueNoise.a = (blueNoise.a > 0.5 ? 1.0 - blueNoise.a : blueNoise.a) * 2.0;\n }\n\n return blueNoise;\n}\n";
|
|
2
2
|
//# sourceMappingURL=sampleBlueNoise.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.sampleBlueNoise = void 0;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sampleBlueNoise = void 0;
|
|
4
4
|
exports.sampleBlueNoise = `
|
|
5
5
|
const float g = 1.6180339887498948482;
|
|
6
6
|
const float a1 = 1.0 / g;
|
|
@@ -38,5 +38,5 @@ vec4 sampleBlueNoise(sampler2D texture, int seed, vec2 repeat, vec2 texSize) {
|
|
|
38
38
|
|
|
39
39
|
return blueNoise;
|
|
40
40
|
}
|
|
41
|
-
`;
|
|
41
|
+
`;
|
|
42
42
|
//# sourceMappingURL=sampleBlueNoise.js.map
|
|
@@ -1,166 +1,166 @@
|
|
|
1
|
-
import { AdaptiveLuminancePass, BlendFunction, Effect, LuminancePass, ToneMappingMode } from "postprocessing";
|
|
2
|
-
import { WebGLRenderer, WebGLRenderTarget } from "three";
|
|
3
|
-
/**
|
|
4
|
-
* A tone mapping effect.
|
|
5
|
-
*
|
|
6
|
-
* Note: `ToneMappingMode.REINHARD2_ADAPTIVE` requires support for `EXT_shader_texture_lod`.
|
|
7
|
-
*
|
|
8
|
-
* Reference:
|
|
9
|
-
* GDC2007 - Wolfgang Engel, Post-Processing Pipeline
|
|
10
|
-
* http://perso.univ-lyon1.fr/jean-claude.iehl/Public/educ/GAMA/2007/gdc07/Post-Processing_Pipeline.pdf
|
|
11
|
-
*/
|
|
12
|
-
export declare class ToneMappingEffect extends Effect {
|
|
13
|
-
adaptiveLuminancePass: AdaptiveLuminancePass;
|
|
14
|
-
luminancePass: LuminancePass;
|
|
15
|
-
renderTargetLuminance: WebGLRenderTarget;
|
|
16
|
-
/**
|
|
17
|
-
* Constructs a new tone mapping effect.
|
|
18
|
-
*
|
|
19
|
-
* The additional parameters only affect the Reinhard2 operator.
|
|
20
|
-
*
|
|
21
|
-
* @param {Object} [options] - The options.
|
|
22
|
-
* @param {BlendFunction} [options.blendFunction=BlendFunction.SRC] - The blend function of this effect.
|
|
23
|
-
* @param {boolean} [options.adaptive=false] - Deprecated. Use mode instead.
|
|
24
|
-
* @param {ToneMappingMode} [options.mode=ToneMappingMode.AGX] - The tone mapping mode.
|
|
25
|
-
* @param {number} [options.resolution=256] - The resolution of the luminance texture. Must be a power of two.
|
|
26
|
-
* @param {number} [options.maxLuminance=4.0] - Deprecated. Same as whitePoint.
|
|
27
|
-
* @param {number} [options.whitePoint=4.0] - The white point.
|
|
28
|
-
* @param {number} [options.middleGrey=0.6] - The middle grey factor.
|
|
29
|
-
* @param {number} [options.minLuminance=0.01] - The minimum luminance. Prevents very high exposure in dark scenes.
|
|
30
|
-
* @param {number} [options.averageLuminance=1.0] - The average luminance. Used for the non-adaptive Reinhard operator.
|
|
31
|
-
* @param {number} [options.adaptationRate=1.0] - The luminance adaptation rate.
|
|
32
|
-
*/
|
|
33
|
-
constructor({ blendFunction, adaptive, mode, resolution, maxLuminance, whitePoint, middleGrey, minLuminance, averageLuminance, adaptationRate, }?: {
|
|
34
|
-
blendFunction?: BlendFunction;
|
|
35
|
-
adaptive?: boolean;
|
|
36
|
-
mode?: ToneMappingMode;
|
|
37
|
-
resolution?: number;
|
|
38
|
-
maxLuminance?: number;
|
|
39
|
-
whitePoint?: number;
|
|
40
|
-
middleGrey?: number;
|
|
41
|
-
minLuminance?: number;
|
|
42
|
-
averageLuminance?: number;
|
|
43
|
-
adaptationRate?: number;
|
|
44
|
-
});
|
|
45
|
-
/**
|
|
46
|
-
* The luminance adaptation rate.
|
|
47
|
-
*
|
|
48
|
-
* @type {number}
|
|
49
|
-
* @deprecated Use adaptiveLuminanceMaterial.adaptationRate instead.
|
|
50
|
-
*/
|
|
51
|
-
get adaptationRate(): any;
|
|
52
|
-
set adaptationRate(value: any);
|
|
53
|
-
/**
|
|
54
|
-
* Indicates whether this pass uses adaptive luminance.
|
|
55
|
-
*
|
|
56
|
-
* @type {boolean}
|
|
57
|
-
* @deprecated Use mode instead.
|
|
58
|
-
*/
|
|
59
|
-
get adaptive(): boolean;
|
|
60
|
-
set adaptive(value: boolean);
|
|
61
|
-
/**
|
|
62
|
-
* The adaptive luminance material.
|
|
63
|
-
*
|
|
64
|
-
* @type {AdaptiveLuminanceMaterial}
|
|
65
|
-
*/
|
|
66
|
-
get adaptiveLuminanceMaterial(): import("three").Material;
|
|
67
|
-
/**
|
|
68
|
-
* The average luminance.
|
|
69
|
-
*
|
|
70
|
-
* Only applies to Reinhard2 (Modified).
|
|
71
|
-
*
|
|
72
|
-
* @type {number}
|
|
73
|
-
*/
|
|
74
|
-
get averageLuminance(): any;
|
|
75
|
-
set averageLuminance(value: any);
|
|
76
|
-
/**
|
|
77
|
-
* @type {number}
|
|
78
|
-
* @deprecated
|
|
79
|
-
*/
|
|
80
|
-
get distinction(): number;
|
|
81
|
-
set distinction(value: number);
|
|
82
|
-
/**
|
|
83
|
-
* The middle grey factor. Default is `0.6`.
|
|
84
|
-
*
|
|
85
|
-
* Only applies to Reinhard2 (Modified & Adaptive).
|
|
86
|
-
*
|
|
87
|
-
* @type {number}
|
|
88
|
-
*/
|
|
89
|
-
get middleGrey(): any;
|
|
90
|
-
set middleGrey(value: any);
|
|
91
|
-
/**
|
|
92
|
-
* The tone mapping mode.
|
|
93
|
-
*
|
|
94
|
-
* @type {ToneMappingMode}
|
|
95
|
-
*/
|
|
96
|
-
get mode(): number;
|
|
97
|
-
set mode(value: number);
|
|
98
|
-
/**
|
|
99
|
-
* The resolution of the luminance texture. Must be a power of two.
|
|
100
|
-
*
|
|
101
|
-
* @type {number}
|
|
102
|
-
*/
|
|
103
|
-
get resolution(): number;
|
|
104
|
-
set resolution(value: number);
|
|
105
|
-
/**
|
|
106
|
-
* The white point. Default is `4.0`.
|
|
107
|
-
*
|
|
108
|
-
* Only applies to Reinhard2 (Modified & Adaptive).
|
|
109
|
-
*
|
|
110
|
-
* @type {number}
|
|
111
|
-
*/
|
|
112
|
-
get whitePoint(): any;
|
|
113
|
-
set whitePoint(value: any);
|
|
114
|
-
/**
|
|
115
|
-
* Returns the adaptive luminance material.
|
|
116
|
-
*
|
|
117
|
-
* @deprecated Use adaptiveLuminanceMaterial instead.
|
|
118
|
-
* @return {AdaptiveLuminanceMaterial} The material.
|
|
119
|
-
*/
|
|
120
|
-
getAdaptiveLuminanceMaterial(): import("three").Material;
|
|
121
|
-
/**
|
|
122
|
-
* Returns the current tone mapping mode.
|
|
123
|
-
*
|
|
124
|
-
* @deprecated Use mode instead.
|
|
125
|
-
* @return {ToneMappingMode} The tone mapping mode.
|
|
126
|
-
*/
|
|
127
|
-
getMode(): number;
|
|
128
|
-
/**
|
|
129
|
-
* Returns the resolution of the luminance texture.
|
|
130
|
-
*
|
|
131
|
-
* @deprecated Use resolution instead.
|
|
132
|
-
* @return {number} The resolution.
|
|
133
|
-
*/
|
|
134
|
-
getResolution(): number;
|
|
135
|
-
/**
|
|
136
|
-
* Performs initialization tasks.
|
|
137
|
-
*
|
|
138
|
-
* @param {WebGLRenderer} renderer - The renderer.
|
|
139
|
-
* @param {boolean} alpha - Whether the renderer uses the alpha channel or not.
|
|
140
|
-
* @param {number} frameBufferType - The type of the main frame buffers.
|
|
141
|
-
*/
|
|
142
|
-
initialize(renderer: WebGLRenderer, alpha: boolean, frameBufferType: number): void;
|
|
143
|
-
/**
|
|
144
|
-
* Sets the tone mapping mode.
|
|
145
|
-
*
|
|
146
|
-
* @deprecated Use mode instead.
|
|
147
|
-
* @param {ToneMappingMode} value - The tone mapping mode.
|
|
148
|
-
*/
|
|
149
|
-
setMode(value: ToneMappingMode): void;
|
|
150
|
-
/**
|
|
151
|
-
* Sets the resolution of the luminance texture. Must be a power of two.
|
|
152
|
-
*
|
|
153
|
-
* @deprecated Use resolution instead.
|
|
154
|
-
* @param {number} value - The resolution.
|
|
155
|
-
*/
|
|
156
|
-
setResolution(value: number): void;
|
|
157
|
-
/**
|
|
158
|
-
* Updates this effect.
|
|
159
|
-
*
|
|
160
|
-
* @param {WebGLRenderer} renderer - The renderer.
|
|
161
|
-
* @param {WebGLRenderTarget} inputBuffer - A frame buffer that contains the result of the previous pass.
|
|
162
|
-
* @param {number} [deltaTime] - The time between the last frame and the current one in seconds.
|
|
163
|
-
*/
|
|
164
|
-
update(renderer: WebGLRenderer, inputBuffer: WebGLRenderTarget, deltaTime: number): void;
|
|
165
|
-
}
|
|
1
|
+
import { AdaptiveLuminancePass, BlendFunction, Effect, LuminancePass, ToneMappingMode } from "postprocessing";
|
|
2
|
+
import { WebGLRenderer, WebGLRenderTarget } from "three";
|
|
3
|
+
/**
|
|
4
|
+
* A tone mapping effect.
|
|
5
|
+
*
|
|
6
|
+
* Note: `ToneMappingMode.REINHARD2_ADAPTIVE` requires support for `EXT_shader_texture_lod`.
|
|
7
|
+
*
|
|
8
|
+
* Reference:
|
|
9
|
+
* GDC2007 - Wolfgang Engel, Post-Processing Pipeline
|
|
10
|
+
* http://perso.univ-lyon1.fr/jean-claude.iehl/Public/educ/GAMA/2007/gdc07/Post-Processing_Pipeline.pdf
|
|
11
|
+
*/
|
|
12
|
+
export declare class ToneMappingEffect extends Effect {
|
|
13
|
+
adaptiveLuminancePass: AdaptiveLuminancePass;
|
|
14
|
+
luminancePass: LuminancePass;
|
|
15
|
+
renderTargetLuminance: WebGLRenderTarget;
|
|
16
|
+
/**
|
|
17
|
+
* Constructs a new tone mapping effect.
|
|
18
|
+
*
|
|
19
|
+
* The additional parameters only affect the Reinhard2 operator.
|
|
20
|
+
*
|
|
21
|
+
* @param {Object} [options] - The options.
|
|
22
|
+
* @param {BlendFunction} [options.blendFunction=BlendFunction.SRC] - The blend function of this effect.
|
|
23
|
+
* @param {boolean} [options.adaptive=false] - Deprecated. Use mode instead.
|
|
24
|
+
* @param {ToneMappingMode} [options.mode=ToneMappingMode.AGX] - The tone mapping mode.
|
|
25
|
+
* @param {number} [options.resolution=256] - The resolution of the luminance texture. Must be a power of two.
|
|
26
|
+
* @param {number} [options.maxLuminance=4.0] - Deprecated. Same as whitePoint.
|
|
27
|
+
* @param {number} [options.whitePoint=4.0] - The white point.
|
|
28
|
+
* @param {number} [options.middleGrey=0.6] - The middle grey factor.
|
|
29
|
+
* @param {number} [options.minLuminance=0.01] - The minimum luminance. Prevents very high exposure in dark scenes.
|
|
30
|
+
* @param {number} [options.averageLuminance=1.0] - The average luminance. Used for the non-adaptive Reinhard operator.
|
|
31
|
+
* @param {number} [options.adaptationRate=1.0] - The luminance adaptation rate.
|
|
32
|
+
*/
|
|
33
|
+
constructor({ blendFunction, adaptive, mode, resolution, maxLuminance, whitePoint, middleGrey, minLuminance, averageLuminance, adaptationRate, }?: {
|
|
34
|
+
blendFunction?: BlendFunction;
|
|
35
|
+
adaptive?: boolean;
|
|
36
|
+
mode?: ToneMappingMode;
|
|
37
|
+
resolution?: number;
|
|
38
|
+
maxLuminance?: number;
|
|
39
|
+
whitePoint?: number;
|
|
40
|
+
middleGrey?: number;
|
|
41
|
+
minLuminance?: number;
|
|
42
|
+
averageLuminance?: number;
|
|
43
|
+
adaptationRate?: number;
|
|
44
|
+
});
|
|
45
|
+
/**
|
|
46
|
+
* The luminance adaptation rate.
|
|
47
|
+
*
|
|
48
|
+
* @type {number}
|
|
49
|
+
* @deprecated Use adaptiveLuminanceMaterial.adaptationRate instead.
|
|
50
|
+
*/
|
|
51
|
+
get adaptationRate(): any;
|
|
52
|
+
set adaptationRate(value: any);
|
|
53
|
+
/**
|
|
54
|
+
* Indicates whether this pass uses adaptive luminance.
|
|
55
|
+
*
|
|
56
|
+
* @type {boolean}
|
|
57
|
+
* @deprecated Use mode instead.
|
|
58
|
+
*/
|
|
59
|
+
get adaptive(): boolean;
|
|
60
|
+
set adaptive(value: boolean);
|
|
61
|
+
/**
|
|
62
|
+
* The adaptive luminance material.
|
|
63
|
+
*
|
|
64
|
+
* @type {AdaptiveLuminanceMaterial}
|
|
65
|
+
*/
|
|
66
|
+
get adaptiveLuminanceMaterial(): import("three").Material;
|
|
67
|
+
/**
|
|
68
|
+
* The average luminance.
|
|
69
|
+
*
|
|
70
|
+
* Only applies to Reinhard2 (Modified).
|
|
71
|
+
*
|
|
72
|
+
* @type {number}
|
|
73
|
+
*/
|
|
74
|
+
get averageLuminance(): any;
|
|
75
|
+
set averageLuminance(value: any);
|
|
76
|
+
/**
|
|
77
|
+
* @type {number}
|
|
78
|
+
* @deprecated
|
|
79
|
+
*/
|
|
80
|
+
get distinction(): number;
|
|
81
|
+
set distinction(value: number);
|
|
82
|
+
/**
|
|
83
|
+
* The middle grey factor. Default is `0.6`.
|
|
84
|
+
*
|
|
85
|
+
* Only applies to Reinhard2 (Modified & Adaptive).
|
|
86
|
+
*
|
|
87
|
+
* @type {number}
|
|
88
|
+
*/
|
|
89
|
+
get middleGrey(): any;
|
|
90
|
+
set middleGrey(value: any);
|
|
91
|
+
/**
|
|
92
|
+
* The tone mapping mode.
|
|
93
|
+
*
|
|
94
|
+
* @type {ToneMappingMode}
|
|
95
|
+
*/
|
|
96
|
+
get mode(): number;
|
|
97
|
+
set mode(value: number);
|
|
98
|
+
/**
|
|
99
|
+
* The resolution of the luminance texture. Must be a power of two.
|
|
100
|
+
*
|
|
101
|
+
* @type {number}
|
|
102
|
+
*/
|
|
103
|
+
get resolution(): number;
|
|
104
|
+
set resolution(value: number);
|
|
105
|
+
/**
|
|
106
|
+
* The white point. Default is `4.0`.
|
|
107
|
+
*
|
|
108
|
+
* Only applies to Reinhard2 (Modified & Adaptive).
|
|
109
|
+
*
|
|
110
|
+
* @type {number}
|
|
111
|
+
*/
|
|
112
|
+
get whitePoint(): any;
|
|
113
|
+
set whitePoint(value: any);
|
|
114
|
+
/**
|
|
115
|
+
* Returns the adaptive luminance material.
|
|
116
|
+
*
|
|
117
|
+
* @deprecated Use adaptiveLuminanceMaterial instead.
|
|
118
|
+
* @return {AdaptiveLuminanceMaterial} The material.
|
|
119
|
+
*/
|
|
120
|
+
getAdaptiveLuminanceMaterial(): import("three").Material;
|
|
121
|
+
/**
|
|
122
|
+
* Returns the current tone mapping mode.
|
|
123
|
+
*
|
|
124
|
+
* @deprecated Use mode instead.
|
|
125
|
+
* @return {ToneMappingMode} The tone mapping mode.
|
|
126
|
+
*/
|
|
127
|
+
getMode(): number;
|
|
128
|
+
/**
|
|
129
|
+
* Returns the resolution of the luminance texture.
|
|
130
|
+
*
|
|
131
|
+
* @deprecated Use resolution instead.
|
|
132
|
+
* @return {number} The resolution.
|
|
133
|
+
*/
|
|
134
|
+
getResolution(): number;
|
|
135
|
+
/**
|
|
136
|
+
* Performs initialization tasks.
|
|
137
|
+
*
|
|
138
|
+
* @param {WebGLRenderer} renderer - The renderer.
|
|
139
|
+
* @param {boolean} alpha - Whether the renderer uses the alpha channel or not.
|
|
140
|
+
* @param {number} frameBufferType - The type of the main frame buffers.
|
|
141
|
+
*/
|
|
142
|
+
initialize(renderer: WebGLRenderer, alpha: boolean, frameBufferType: number): void;
|
|
143
|
+
/**
|
|
144
|
+
* Sets the tone mapping mode.
|
|
145
|
+
*
|
|
146
|
+
* @deprecated Use mode instead.
|
|
147
|
+
* @param {ToneMappingMode} value - The tone mapping mode.
|
|
148
|
+
*/
|
|
149
|
+
setMode(value: ToneMappingMode): void;
|
|
150
|
+
/**
|
|
151
|
+
* Sets the resolution of the luminance texture. Must be a power of two.
|
|
152
|
+
*
|
|
153
|
+
* @deprecated Use resolution instead.
|
|
154
|
+
* @param {number} value - The resolution.
|
|
155
|
+
*/
|
|
156
|
+
setResolution(value: number): void;
|
|
157
|
+
/**
|
|
158
|
+
* Updates this effect.
|
|
159
|
+
*
|
|
160
|
+
* @param {WebGLRenderer} renderer - The renderer.
|
|
161
|
+
* @param {WebGLRenderTarget} inputBuffer - A frame buffer that contains the result of the previous pass.
|
|
162
|
+
* @param {number} [deltaTime] - The time between the last frame and the current one in seconds.
|
|
163
|
+
*/
|
|
164
|
+
update(renderer: WebGLRenderer, inputBuffer: WebGLRenderTarget, deltaTime: number): void;
|
|
165
|
+
}
|
|
166
166
|
//# sourceMappingURL=ToneMappingEffect.d.ts.map
|