@shapediver/viewer.rendering-engine.rendering-engine-threejs 3.16.8 → 3.16.9

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.
Files changed (185) hide show
  1. package/dist/RenderingEngine.d.ts +294 -294
  2. package/dist/RenderingEngine.js +987 -977
  3. package/dist/RenderingEngine.js.map +1 -1
  4. package/dist/index.d.ts +16 -16
  5. package/dist/index.js +57 -57
  6. package/dist/injectors/TextureUnifierInjector.d.ts +13 -13
  7. package/dist/injectors/TextureUnifierInjector.js +181 -171
  8. package/dist/injectors/TextureUnifierInjector.js.map +1 -1
  9. package/dist/interfaces/ILoader.d.ts +3 -3
  10. package/dist/interfaces/ILoader.js +2 -2
  11. package/dist/interfaces/IRenderingEngine.d.ts +45 -45
  12. package/dist/interfaces/IRenderingEngine.js +2 -2
  13. package/dist/loaders/EnvironmentMapLoader.d.ts +119 -119
  14. package/dist/loaders/EnvironmentMapLoader.js +512 -502
  15. package/dist/loaders/EnvironmentMapLoader.js.map +1 -1
  16. package/dist/loaders/GeometryLoader.d.ts +39 -39
  17. package/dist/loaders/GeometryLoader.d.ts.map +1 -1
  18. package/dist/loaders/GeometryLoader.js +603 -593
  19. package/dist/loaders/GeometryLoader.js.map +1 -1
  20. package/dist/loaders/HTMLElementAnchorLoader.d.ts +15 -15
  21. package/dist/loaders/HTMLElementAnchorLoader.js +98 -98
  22. package/dist/loaders/HTMLElementAnchorLoader.js.map +1 -1
  23. package/dist/loaders/LightLoader.d.ts +19 -19
  24. package/dist/loaders/LightLoader.js +197 -187
  25. package/dist/loaders/LightLoader.js.map +1 -1
  26. package/dist/loaders/MaterialLoader.d.ts +115 -115
  27. package/dist/loaders/MaterialLoader.d.ts.map +1 -1
  28. package/dist/loaders/MaterialLoader.js +1612 -1602
  29. package/dist/loaders/MaterialLoader.js.map +1 -1
  30. package/dist/managers/ARManager.d.ts +17 -17
  31. package/dist/managers/ARManager.js +128 -128
  32. package/dist/managers/ARManager.js.map +1 -1
  33. package/dist/managers/CameraManager.d.ts +19 -19
  34. package/dist/managers/CameraManager.js +244 -234
  35. package/dist/managers/CameraManager.js.map +1 -1
  36. package/dist/managers/EnvironmentGeometryManager.d.ts +32 -32
  37. package/dist/managers/EnvironmentGeometryManager.js +114 -114
  38. package/dist/managers/EnvironmentGeometryManager.js.map +1 -1
  39. package/dist/managers/FlagManager.d.ts +19 -19
  40. package/dist/managers/FlagManager.js +143 -143
  41. package/dist/managers/FlagManager.js.map +1 -1
  42. package/dist/managers/PostProcessingManager.d.ts +1019 -1019
  43. package/dist/managers/PostProcessingManager.js +1306 -1296
  44. package/dist/managers/PostProcessingManager.js.map +1 -1
  45. package/dist/managers/RenderingManager.d.ts +84 -84
  46. package/dist/managers/RenderingManager.d.ts.map +1 -1
  47. package/dist/managers/RenderingManager.js +679 -669
  48. package/dist/managers/RenderingManager.js.map +1 -1
  49. package/dist/managers/SceneTracingManager.d.ts +28 -28
  50. package/dist/managers/SceneTracingManager.js +160 -150
  51. package/dist/managers/SceneTracingManager.js.map +1 -1
  52. package/dist/managers/SceneTreeManager.d.ts +81 -81
  53. package/dist/managers/SceneTreeManager.d.ts.map +1 -1
  54. package/dist/managers/SceneTreeManager.js +500 -490
  55. package/dist/managers/SceneTreeManager.js.map +1 -1
  56. package/dist/managers/SettingsManager.d.ts +28 -28
  57. package/dist/managers/SettingsManager.js +284 -284
  58. package/dist/managers/SettingsManager.js.map +1 -1
  59. package/dist/managers/environmentGeometry/ContactShadow.d.ts +42 -42
  60. package/dist/managers/environmentGeometry/ContactShadow.js +295 -285
  61. package/dist/managers/environmentGeometry/ContactShadow.js.map +1 -1
  62. package/dist/managers/environmentGeometry/Grid.d.ts +20 -20
  63. package/dist/managers/environmentGeometry/Grid.js +110 -100
  64. package/dist/managers/environmentGeometry/Grid.js.map +1 -1
  65. package/dist/managers/environmentGeometry/GroundPlane.d.ts +21 -21
  66. package/dist/managers/environmentGeometry/GroundPlane.js +105 -95
  67. package/dist/managers/environmentGeometry/GroundPlane.js.map +1 -1
  68. package/dist/managers/environmentGeometry/GroundPlaneShadow.d.ts +21 -21
  69. package/dist/managers/environmentGeometry/GroundPlaneShadow.js +96 -86
  70. package/dist/managers/environmentGeometry/GroundPlaneShadow.js.map +1 -1
  71. package/dist/managers/environmentGeometry/IEnvironmentGeometry.d.ts +8 -8
  72. package/dist/managers/environmentGeometry/IEnvironmentGeometry.js +2 -2
  73. package/dist/managers/postprocessing/GodRaysManager.d.ts +12 -12
  74. package/dist/managers/postprocessing/GodRaysManager.js +73 -63
  75. package/dist/managers/postprocessing/GodRaysManager.js.map +1 -1
  76. package/dist/managers/postprocessing/OutlineManager.d.ts +15 -15
  77. package/dist/managers/postprocessing/OutlineManager.js +86 -76
  78. package/dist/managers/postprocessing/OutlineManager.js.map +1 -1
  79. package/dist/managers/postprocessing/SSAARenderPass.d.ts +53 -53
  80. package/dist/managers/postprocessing/SSAARenderPass.js +281 -281
  81. package/dist/managers/postprocessing/SSAARenderPass.js.map +1 -1
  82. package/dist/managers/postprocessing/SelectiveBloomManager.d.ts +14 -14
  83. package/dist/managers/postprocessing/SelectiveBloomManager.js +76 -66
  84. package/dist/managers/postprocessing/SelectiveBloomManager.js.map +1 -1
  85. package/dist/managers/postprocessing/ao/ao/AOEffect.d.ts +46 -46
  86. package/dist/managers/postprocessing/ao/ao/AOEffect.js +142 -142
  87. package/dist/managers/postprocessing/ao/ao/AOEffect.js.map +1 -1
  88. package/dist/managers/postprocessing/ao/ao/AOPass.d.ts +12 -12
  89. package/dist/managers/postprocessing/ao/ao/AOPass.js +108 -108
  90. package/dist/managers/postprocessing/ao/ao/AOPass.js.map +1 -1
  91. package/dist/managers/postprocessing/ao/ao/shader/ao_compose.d.ts +1 -1
  92. package/dist/managers/postprocessing/ao/ao/shader/ao_compose.js +4 -4
  93. package/dist/managers/postprocessing/ao/ao/shader/ao_utils.d.ts +1 -1
  94. package/dist/managers/postprocessing/ao/ao/shader/ao_utils.js +4 -4
  95. package/dist/managers/postprocessing/ao/hbao/HBAOEffect.d.ts +14 -14
  96. package/dist/managers/postprocessing/ao/hbao/HBAOEffect.js +24 -24
  97. package/dist/managers/postprocessing/ao/hbao/shader/hbao.d.ts +1 -1
  98. package/dist/managers/postprocessing/ao/hbao/shader/hbao.js +4 -4
  99. package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.d.ts +33 -33
  100. package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.js +211 -211
  101. package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.js.map +1 -1
  102. package/dist/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.d.ts +1 -1
  103. package/dist/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.js +4 -4
  104. package/dist/managers/postprocessing/ao/ssao/SSAOEffect.d.ts +14 -14
  105. package/dist/managers/postprocessing/ao/ssao/SSAOEffect.js +82 -82
  106. package/dist/managers/postprocessing/ao/ssao/SSAOEffect.js.map +1 -1
  107. package/dist/managers/postprocessing/ao/ssao/shader/ssao.d.ts +1 -1
  108. package/dist/managers/postprocessing/ao/ssao/shader/ssao.js +4 -4
  109. package/dist/managers/postprocessing/ao/utils/shader/basic.d.ts +1 -1
  110. package/dist/managers/postprocessing/ao/utils/shader/basic.js +4 -4
  111. package/dist/managers/postprocessing/ao/utils/shader/sampleBlueNoise.d.ts +1 -1
  112. package/dist/managers/postprocessing/ao/utils/shader/sampleBlueNoise.js +4 -4
  113. package/dist/managers/postprocessing/effects/tone-mapping/ToneMappingEffect.d.ts +165 -165
  114. package/dist/managers/postprocessing/effects/tone-mapping/ToneMappingEffect.js +299 -299
  115. package/dist/managers/postprocessing/effects/tone-mapping/ToneMappingEffect.js.map +1 -1
  116. package/dist/managers/postprocessing/effects/tone-mapping/tone-mapping.d.ts +1 -1
  117. package/dist/managers/postprocessing/effects/tone-mapping/tone-mapping.js +4 -4
  118. package/dist/managers/postprocessing/utils/CopyMaterial.d.ts +37 -37
  119. package/dist/managers/postprocessing/utils/CopyMaterial.js +69 -69
  120. package/dist/managers/postprocessing/utils/CopyShader.d.ts +13 -13
  121. package/dist/managers/postprocessing/utils/CopyShader.js +12 -12
  122. package/dist/managers/postprocessing/utils/FullScreenQuad.d.ts +9 -9
  123. package/dist/managers/postprocessing/utils/FullScreenQuad.js +28 -28
  124. package/dist/managers/postprocessing/utils/NormalPass.d.ts +87 -87
  125. package/dist/managers/postprocessing/utils/NormalPass.js +156 -156
  126. package/dist/managers/postprocessing/utils/NormalPass.js.map +1 -1
  127. package/dist/managers/postprocessing/utils/RenderPass.d.ts +114 -114
  128. package/dist/managers/postprocessing/utils/RenderPass.js +259 -259
  129. package/dist/managers/postprocessing/utils/RenderPass.js.map +1 -1
  130. package/dist/managers/sceneTree/SDTFUtils.d.ts +6 -6
  131. package/dist/managers/sceneTree/SDTFUtils.d.ts.map +1 -1
  132. package/dist/managers/sceneTree/SDTFUtils.js +50 -50
  133. package/dist/managers/sceneTree/SDTFUtils.js.map +1 -1
  134. package/dist/managers/sceneTree/SceenTreeManagerUtils.d.ts +7 -7
  135. package/dist/managers/sceneTree/SceenTreeManagerUtils.d.ts.map +1 -1
  136. package/dist/managers/sceneTree/SceenTreeManagerUtils.js +175 -165
  137. package/dist/managers/sceneTree/SceenTreeManagerUtils.js.map +1 -1
  138. package/dist/managers/sceneTree/ThreeJsDataUtils.d.ts +6 -6
  139. package/dist/managers/sceneTree/ThreeJsDataUtils.d.ts.map +1 -1
  140. package/dist/managers/sceneTree/ThreeJsDataUtils.js +80 -70
  141. package/dist/managers/sceneTree/ThreeJsDataUtils.js.map +1 -1
  142. package/dist/materials/GemMaterial.d.ts +37 -37
  143. package/dist/materials/GemMaterial.js +262 -252
  144. package/dist/materials/GemMaterial.js.map +1 -1
  145. package/dist/materials/MeshUnlitMaterialParameters.d.ts +3 -3
  146. package/dist/materials/MeshUnlitMaterialParameters.js +2 -2
  147. package/dist/materials/MultiPointsMaterial.d.ts +93 -93
  148. package/dist/materials/MultiPointsMaterial.js +577 -567
  149. package/dist/materials/MultiPointsMaterial.js.map +1 -1
  150. package/dist/materials/SpecularGlossinessMaterial.d.ts +13 -13
  151. package/dist/materials/SpecularGlossinessMaterial.js +171 -161
  152. package/dist/materials/SpecularGlossinessMaterial.js.map +1 -1
  153. package/dist/objects/SDColor.d.ts +16 -16
  154. package/dist/objects/SDColor.js +52 -52
  155. package/dist/objects/SDColor.js.map +1 -1
  156. package/dist/objects/SDObject.d.ts +27 -27
  157. package/dist/objects/SDObject.js +112 -102
  158. package/dist/objects/SDObject.js.map +1 -1
  159. package/dist/shaders/PCSS.d.ts +2 -2
  160. package/dist/shaders/PCSS.js +5 -5
  161. package/dist/shaders/gem.d.ts +2 -2
  162. package/dist/shaders/gem.js +5 -5
  163. package/dist/shaders/multi_points.d.ts +2 -2
  164. package/dist/shaders/multi_points.js +5 -5
  165. package/dist/styling/viewport-css.d.ts +1 -1
  166. package/dist/styling/viewport-css.js +4 -4
  167. package/dist/three/CSS2DRenderer.d.ts +31 -31
  168. package/dist/three/CSS2DRenderer.d.ts.map +1 -1
  169. package/dist/three/CSS2DRenderer.js +152 -152
  170. package/dist/three/CSS2DRenderer.js.map +1 -1
  171. package/dist/three/geometries/TextGeometry.d.ts +21 -21
  172. package/dist/three/geometries/TextGeometry.js +45 -45
  173. package/dist/three/geometries/TextGeometry.js.map +1 -1
  174. package/dist/three/loaders/RGBELoader.d.ts +23 -23
  175. package/dist/three/loaders/RGBELoader.js +311 -311
  176. package/dist/three/loaders/RGBELoader.js.map +1 -1
  177. package/dist/types/IThreejsData.d.ts +6 -6
  178. package/dist/types/IThreejsData.js +2 -2
  179. package/dist/types/ThreejsData.d.ts +10 -10
  180. package/dist/types/ThreejsData.js +41 -41
  181. package/package.json +18 -18
  182. package/dist/managers/InstanceGroupManager.d.ts +0 -58
  183. package/dist/managers/InstanceGroupManager.d.ts.map +0 -1
  184. package/dist/managers/InstanceGroupManager.js +0 -372
  185. package/dist/managers/InstanceGroupManager.js.map +0 -1
@@ -1,300 +1,300 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ToneMappingEffect = void 0;
4
- /* eslint-disable @typescript-eslint/no-explicit-any */
5
- const postprocessing_1 = require("postprocessing");
6
- const three_1 = require("three");
7
- const tone_mapping_1 = require("./tone-mapping");
8
- /**
9
- * A tone mapping effect.
10
- *
11
- * Note: `ToneMappingMode.REINHARD2_ADAPTIVE` requires support for `EXT_shader_texture_lod`.
12
- *
13
- * Reference:
14
- * GDC2007 - Wolfgang Engel, Post-Processing Pipeline
15
- * http://perso.univ-lyon1.fr/jean-claude.iehl/Public/educ/GAMA/2007/gdc07/Post-Processing_Pipeline.pdf
16
- */
17
- class ToneMappingEffect extends postprocessing_1.Effect {
18
- /**
19
- * Constructs a new tone mapping effect.
20
- *
21
- * The additional parameters only affect the Reinhard2 operator.
22
- *
23
- * @param {Object} [options] - The options.
24
- * @param {BlendFunction} [options.blendFunction=BlendFunction.SRC] - The blend function of this effect.
25
- * @param {boolean} [options.adaptive=false] - Deprecated. Use mode instead.
26
- * @param {ToneMappingMode} [options.mode=ToneMappingMode.AGX] - The tone mapping mode.
27
- * @param {number} [options.resolution=256] - The resolution of the luminance texture. Must be a power of two.
28
- * @param {number} [options.maxLuminance=4.0] - Deprecated. Same as whitePoint.
29
- * @param {number} [options.whitePoint=4.0] - The white point.
30
- * @param {number} [options.middleGrey=0.6] - The middle grey factor.
31
- * @param {number} [options.minLuminance=0.01] - The minimum luminance. Prevents very high exposure in dark scenes.
32
- * @param {number} [options.averageLuminance=1.0] - The average luminance. Used for the non-adaptive Reinhard operator.
33
- * @param {number} [options.adaptationRate=1.0] - The luminance adaptation rate.
34
- */
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, {
39
- attributes: postprocessing_1.EffectAttribute.DEPTH,
40
- blendFunction,
41
- uniforms: new Map([
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
- ]),
48
- });
49
- /**
50
- * The render target for the current luminance.
51
- *
52
- * @type {WebGLRenderTarget}
53
- * @private
54
- */
55
- this.renderTargetLuminance = new three_1.WebGLRenderTarget(1, 1, {
56
- minFilter: three_1.LinearMipmapLinearFilter,
57
- depthBuffer: false,
58
- });
59
- this.renderTargetLuminance.texture.generateMipmaps = true;
60
- this.renderTargetLuminance.texture.name = "Luminance";
61
- /**
62
- * A luminance pass.
63
- *
64
- * @type {ShaderPass}
65
- * @private
66
- */
67
- this.luminancePass = new postprocessing_1.LuminancePass({
68
- renderTarget: this.renderTargetLuminance,
69
- });
70
- /**
71
- * An adaptive luminance pass.
72
- *
73
- * @type {AdaptiveLuminancePass}
74
- * @private
75
- */
76
- this.adaptiveLuminancePass = new postprocessing_1.AdaptiveLuminancePass(this.luminancePass.texture, {
77
- minLuminance,
78
- adaptationRate,
79
- });
80
- this.uniforms.get("luminanceBuffer").value =
81
- this.adaptiveLuminancePass.texture;
82
- this.resolution = resolution;
83
- this.mode = mode;
84
- }
85
- /**
86
- * The luminance adaptation rate.
87
- *
88
- * @type {number}
89
- * @deprecated Use adaptiveLuminanceMaterial.adaptationRate instead.
90
- */
91
- get adaptationRate() {
92
- return this.adaptiveLuminanceMaterial.adaptationRate;
93
- }
94
- set adaptationRate(value) {
95
- this.adaptiveLuminanceMaterial.adaptationRate = value;
96
- }
97
- /**
98
- * Indicates whether this pass uses adaptive luminance.
99
- *
100
- * @type {boolean}
101
- * @deprecated Use mode instead.
102
- */
103
- get adaptive() {
104
- return this.mode === postprocessing_1.ToneMappingMode.REINHARD2_ADAPTIVE;
105
- }
106
- set adaptive(value) {
107
- this.mode = value
108
- ? postprocessing_1.ToneMappingMode.REINHARD2_ADAPTIVE
109
- : postprocessing_1.ToneMappingMode.REINHARD2;
110
- }
111
- /**
112
- * The adaptive luminance material.
113
- *
114
- * @type {AdaptiveLuminanceMaterial}
115
- */
116
- get adaptiveLuminanceMaterial() {
117
- return this.adaptiveLuminancePass.fullscreenMaterial;
118
- }
119
- /**
120
- * The average luminance.
121
- *
122
- * Only applies to Reinhard2 (Modified).
123
- *
124
- * @type {number}
125
- */
126
- get averageLuminance() {
127
- return this.uniforms.get("averageLuminance").value;
128
- }
129
- set averageLuminance(value) {
130
- this.uniforms.get("averageLuminance").value = value;
131
- }
132
- /**
133
- * @type {number}
134
- * @deprecated
135
- */
136
- get distinction() {
137
- console.warn(this.name, "distinction was removed.");
138
- return 1.0;
139
- }
140
- set distinction(value) {
141
- console.warn(this.name, "distinction was removed.");
142
- }
143
- /**
144
- * The middle grey factor. Default is `0.6`.
145
- *
146
- * Only applies to Reinhard2 (Modified & Adaptive).
147
- *
148
- * @type {number}
149
- */
150
- get middleGrey() {
151
- return this.uniforms.get("middleGrey").value;
152
- }
153
- set middleGrey(value) {
154
- this.uniforms.get("middleGrey").value = value;
155
- }
156
- /**
157
- * The tone mapping mode.
158
- *
159
- * @type {ToneMappingMode}
160
- */
161
- get mode() {
162
- return Number(this.defines.get("TONE_MAPPING_MODE"));
163
- }
164
- set mode(value) {
165
- if (this.mode === value) {
166
- return;
167
- }
168
- const revision = +three_1.REVISION.replace(/\D+/g, "");
169
- const cineonToneMapping = revision >= 168
170
- ? "CineonToneMapping(texel)"
171
- : "OptimizedCineonToneMapping(texel)";
172
- this.defines.clear();
173
- this.defines.set("TONE_MAPPING_MODE", value.toFixed(0));
174
- // Use one of the built-in tone mapping operators.
175
- switch (value) {
176
- case postprocessing_1.ToneMappingMode.LINEAR:
177
- this.defines.set("toneMapping(texel)", "LinearToneMapping(texel)");
178
- break;
179
- case postprocessing_1.ToneMappingMode.REINHARD:
180
- this.defines.set("toneMapping(texel)", "ReinhardToneMapping(texel)");
181
- break;
182
- case postprocessing_1.ToneMappingMode.OPTIMIZED_CINEON:
183
- this.defines.set("toneMapping(texel)", cineonToneMapping);
184
- break;
185
- case postprocessing_1.ToneMappingMode.ACES_FILMIC:
186
- this.defines.set("toneMapping(texel)", "ACESFilmicToneMapping(texel)");
187
- break;
188
- case postprocessing_1.ToneMappingMode.AGX:
189
- this.defines.set("toneMapping(texel)", "AgXToneMapping(texel)");
190
- break;
191
- case postprocessing_1.ToneMappingMode.NEUTRAL:
192
- this.defines.set("toneMapping(texel)", "NeutralToneMapping(texel)");
193
- break;
194
- default:
195
- this.defines.set("toneMapping(texel)", "texel");
196
- break;
197
- }
198
- this.adaptiveLuminancePass.enabled =
199
- value === postprocessing_1.ToneMappingMode.REINHARD2_ADAPTIVE;
200
- this.setChanged();
201
- }
202
- /**
203
- * The resolution of the luminance texture. Must be a power of two.
204
- *
205
- * @type {number}
206
- */
207
- get resolution() {
208
- return this.luminancePass.resolution.width;
209
- }
210
- set resolution(value) {
211
- // Round the given value to the next power of two.
212
- const exponent = Math.max(0, Math.ceil(Math.log2(value)));
213
- const size = Math.pow(2, exponent);
214
- this.luminancePass.resolution.setPreferredSize(size, size);
215
- this.adaptiveLuminanceMaterial.mipLevel1x1 = exponent;
216
- }
217
- /**
218
- * The white point. Default is `4.0`.
219
- *
220
- * Only applies to Reinhard2 (Modified & Adaptive).
221
- *
222
- * @type {number}
223
- */
224
- get whitePoint() {
225
- return this.uniforms.get("whitePoint").value;
226
- }
227
- set whitePoint(value) {
228
- this.uniforms.get("whitePoint").value = value;
229
- }
230
- /**
231
- * Returns the adaptive luminance material.
232
- *
233
- * @deprecated Use adaptiveLuminanceMaterial instead.
234
- * @return {AdaptiveLuminanceMaterial} The material.
235
- */
236
- getAdaptiveLuminanceMaterial() {
237
- return this.adaptiveLuminanceMaterial;
238
- }
239
- /**
240
- * Returns the current tone mapping mode.
241
- *
242
- * @deprecated Use mode instead.
243
- * @return {ToneMappingMode} The tone mapping mode.
244
- */
245
- getMode() {
246
- return this.mode;
247
- }
248
- /**
249
- * Returns the resolution of the luminance texture.
250
- *
251
- * @deprecated Use resolution instead.
252
- * @return {number} The resolution.
253
- */
254
- getResolution() {
255
- return this.resolution;
256
- }
257
- /**
258
- * Performs initialization tasks.
259
- *
260
- * @param {WebGLRenderer} renderer - The renderer.
261
- * @param {boolean} alpha - Whether the renderer uses the alpha channel or not.
262
- * @param {number} frameBufferType - The type of the main frame buffers.
263
- */
264
- initialize(renderer, alpha, frameBufferType) {
265
- this.adaptiveLuminancePass.initialize(renderer, alpha, frameBufferType);
266
- }
267
- /**
268
- * Sets the tone mapping mode.
269
- *
270
- * @deprecated Use mode instead.
271
- * @param {ToneMappingMode} value - The tone mapping mode.
272
- */
273
- setMode(value) {
274
- this.mode = value;
275
- }
276
- /**
277
- * Sets the resolution of the luminance texture. Must be a power of two.
278
- *
279
- * @deprecated Use resolution instead.
280
- * @param {number} value - The resolution.
281
- */
282
- setResolution(value) {
283
- this.resolution = value;
284
- }
285
- /**
286
- * Updates this effect.
287
- *
288
- * @param {WebGLRenderer} renderer - The renderer.
289
- * @param {WebGLRenderTarget} inputBuffer - A frame buffer that contains the result of the previous pass.
290
- * @param {number} [deltaTime] - The time between the last frame and the current one in seconds.
291
- */
292
- update(renderer, inputBuffer, deltaTime) {
293
- if (this.adaptiveLuminancePass.enabled) {
294
- this.luminancePass.render(renderer, inputBuffer);
295
- this.adaptiveLuminancePass.render(renderer, null, null, deltaTime);
296
- }
297
- }
298
- }
299
- exports.ToneMappingEffect = ToneMappingEffect;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ToneMappingEffect = void 0;
4
+ /* eslint-disable @typescript-eslint/no-explicit-any */
5
+ const postprocessing_1 = require("postprocessing");
6
+ const three_1 = require("three");
7
+ const tone_mapping_1 = require("./tone-mapping");
8
+ /**
9
+ * A tone mapping effect.
10
+ *
11
+ * Note: `ToneMappingMode.REINHARD2_ADAPTIVE` requires support for `EXT_shader_texture_lod`.
12
+ *
13
+ * Reference:
14
+ * GDC2007 - Wolfgang Engel, Post-Processing Pipeline
15
+ * http://perso.univ-lyon1.fr/jean-claude.iehl/Public/educ/GAMA/2007/gdc07/Post-Processing_Pipeline.pdf
16
+ */
17
+ class ToneMappingEffect extends postprocessing_1.Effect {
18
+ /**
19
+ * Constructs a new tone mapping effect.
20
+ *
21
+ * The additional parameters only affect the Reinhard2 operator.
22
+ *
23
+ * @param {Object} [options] - The options.
24
+ * @param {BlendFunction} [options.blendFunction=BlendFunction.SRC] - The blend function of this effect.
25
+ * @param {boolean} [options.adaptive=false] - Deprecated. Use mode instead.
26
+ * @param {ToneMappingMode} [options.mode=ToneMappingMode.AGX] - The tone mapping mode.
27
+ * @param {number} [options.resolution=256] - The resolution of the luminance texture. Must be a power of two.
28
+ * @param {number} [options.maxLuminance=4.0] - Deprecated. Same as whitePoint.
29
+ * @param {number} [options.whitePoint=4.0] - The white point.
30
+ * @param {number} [options.middleGrey=0.6] - The middle grey factor.
31
+ * @param {number} [options.minLuminance=0.01] - The minimum luminance. Prevents very high exposure in dark scenes.
32
+ * @param {number} [options.averageLuminance=1.0] - The average luminance. Used for the non-adaptive Reinhard operator.
33
+ * @param {number} [options.adaptationRate=1.0] - The luminance adaptation rate.
34
+ */
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, {
39
+ attributes: postprocessing_1.EffectAttribute.DEPTH,
40
+ blendFunction,
41
+ uniforms: new Map([
42
+ ["luminanceBuffer", new three_1.Uniform(null)],
43
+ ["maxLuminance", new three_1.Uniform(maxLuminance)], // Unused
44
+ ["whitePoint", new three_1.Uniform(whitePoint)],
45
+ ["middleGrey", new three_1.Uniform(middleGrey)],
46
+ ["averageLuminance", new three_1.Uniform(averageLuminance)],
47
+ ]),
48
+ });
49
+ /**
50
+ * The render target for the current luminance.
51
+ *
52
+ * @type {WebGLRenderTarget}
53
+ * @private
54
+ */
55
+ this.renderTargetLuminance = new three_1.WebGLRenderTarget(1, 1, {
56
+ minFilter: three_1.LinearMipmapLinearFilter,
57
+ depthBuffer: false,
58
+ });
59
+ this.renderTargetLuminance.texture.generateMipmaps = true;
60
+ this.renderTargetLuminance.texture.name = "Luminance";
61
+ /**
62
+ * A luminance pass.
63
+ *
64
+ * @type {ShaderPass}
65
+ * @private
66
+ */
67
+ this.luminancePass = new postprocessing_1.LuminancePass({
68
+ renderTarget: this.renderTargetLuminance,
69
+ });
70
+ /**
71
+ * An adaptive luminance pass.
72
+ *
73
+ * @type {AdaptiveLuminancePass}
74
+ * @private
75
+ */
76
+ this.adaptiveLuminancePass = new postprocessing_1.AdaptiveLuminancePass(this.luminancePass.texture, {
77
+ minLuminance,
78
+ adaptationRate,
79
+ });
80
+ this.uniforms.get("luminanceBuffer").value =
81
+ this.adaptiveLuminancePass.texture;
82
+ this.resolution = resolution;
83
+ this.mode = mode;
84
+ }
85
+ /**
86
+ * The luminance adaptation rate.
87
+ *
88
+ * @type {number}
89
+ * @deprecated Use adaptiveLuminanceMaterial.adaptationRate instead.
90
+ */
91
+ get adaptationRate() {
92
+ return this.adaptiveLuminanceMaterial.adaptationRate;
93
+ }
94
+ set adaptationRate(value) {
95
+ this.adaptiveLuminanceMaterial.adaptationRate = value;
96
+ }
97
+ /**
98
+ * Indicates whether this pass uses adaptive luminance.
99
+ *
100
+ * @type {boolean}
101
+ * @deprecated Use mode instead.
102
+ */
103
+ get adaptive() {
104
+ return this.mode === postprocessing_1.ToneMappingMode.REINHARD2_ADAPTIVE;
105
+ }
106
+ set adaptive(value) {
107
+ this.mode = value
108
+ ? postprocessing_1.ToneMappingMode.REINHARD2_ADAPTIVE
109
+ : postprocessing_1.ToneMappingMode.REINHARD2;
110
+ }
111
+ /**
112
+ * The adaptive luminance material.
113
+ *
114
+ * @type {AdaptiveLuminanceMaterial}
115
+ */
116
+ get adaptiveLuminanceMaterial() {
117
+ return this.adaptiveLuminancePass.fullscreenMaterial;
118
+ }
119
+ /**
120
+ * The average luminance.
121
+ *
122
+ * Only applies to Reinhard2 (Modified).
123
+ *
124
+ * @type {number}
125
+ */
126
+ get averageLuminance() {
127
+ return this.uniforms.get("averageLuminance").value;
128
+ }
129
+ set averageLuminance(value) {
130
+ this.uniforms.get("averageLuminance").value = value;
131
+ }
132
+ /**
133
+ * @type {number}
134
+ * @deprecated
135
+ */
136
+ get distinction() {
137
+ console.warn(this.name, "distinction was removed.");
138
+ return 1.0;
139
+ }
140
+ set distinction(value) {
141
+ console.warn(this.name, "distinction was removed.");
142
+ }
143
+ /**
144
+ * The middle grey factor. Default is `0.6`.
145
+ *
146
+ * Only applies to Reinhard2 (Modified & Adaptive).
147
+ *
148
+ * @type {number}
149
+ */
150
+ get middleGrey() {
151
+ return this.uniforms.get("middleGrey").value;
152
+ }
153
+ set middleGrey(value) {
154
+ this.uniforms.get("middleGrey").value = value;
155
+ }
156
+ /**
157
+ * The tone mapping mode.
158
+ *
159
+ * @type {ToneMappingMode}
160
+ */
161
+ get mode() {
162
+ return Number(this.defines.get("TONE_MAPPING_MODE"));
163
+ }
164
+ set mode(value) {
165
+ if (this.mode === value) {
166
+ return;
167
+ }
168
+ const revision = +three_1.REVISION.replace(/\D+/g, "");
169
+ const cineonToneMapping = revision >= 168
170
+ ? "CineonToneMapping(texel)"
171
+ : "OptimizedCineonToneMapping(texel)";
172
+ this.defines.clear();
173
+ this.defines.set("TONE_MAPPING_MODE", value.toFixed(0));
174
+ // Use one of the built-in tone mapping operators.
175
+ switch (value) {
176
+ case postprocessing_1.ToneMappingMode.LINEAR:
177
+ this.defines.set("toneMapping(texel)", "LinearToneMapping(texel)");
178
+ break;
179
+ case postprocessing_1.ToneMappingMode.REINHARD:
180
+ this.defines.set("toneMapping(texel)", "ReinhardToneMapping(texel)");
181
+ break;
182
+ case postprocessing_1.ToneMappingMode.OPTIMIZED_CINEON:
183
+ this.defines.set("toneMapping(texel)", cineonToneMapping);
184
+ break;
185
+ case postprocessing_1.ToneMappingMode.ACES_FILMIC:
186
+ this.defines.set("toneMapping(texel)", "ACESFilmicToneMapping(texel)");
187
+ break;
188
+ case postprocessing_1.ToneMappingMode.AGX:
189
+ this.defines.set("toneMapping(texel)", "AgXToneMapping(texel)");
190
+ break;
191
+ case postprocessing_1.ToneMappingMode.NEUTRAL:
192
+ this.defines.set("toneMapping(texel)", "NeutralToneMapping(texel)");
193
+ break;
194
+ default:
195
+ this.defines.set("toneMapping(texel)", "texel");
196
+ break;
197
+ }
198
+ this.adaptiveLuminancePass.enabled =
199
+ value === postprocessing_1.ToneMappingMode.REINHARD2_ADAPTIVE;
200
+ this.setChanged();
201
+ }
202
+ /**
203
+ * The resolution of the luminance texture. Must be a power of two.
204
+ *
205
+ * @type {number}
206
+ */
207
+ get resolution() {
208
+ return this.luminancePass.resolution.width;
209
+ }
210
+ set resolution(value) {
211
+ // Round the given value to the next power of two.
212
+ const exponent = Math.max(0, Math.ceil(Math.log2(value)));
213
+ const size = Math.pow(2, exponent);
214
+ this.luminancePass.resolution.setPreferredSize(size, size);
215
+ this.adaptiveLuminanceMaterial.mipLevel1x1 = exponent;
216
+ }
217
+ /**
218
+ * The white point. Default is `4.0`.
219
+ *
220
+ * Only applies to Reinhard2 (Modified & Adaptive).
221
+ *
222
+ * @type {number}
223
+ */
224
+ get whitePoint() {
225
+ return this.uniforms.get("whitePoint").value;
226
+ }
227
+ set whitePoint(value) {
228
+ this.uniforms.get("whitePoint").value = value;
229
+ }
230
+ /**
231
+ * Returns the adaptive luminance material.
232
+ *
233
+ * @deprecated Use adaptiveLuminanceMaterial instead.
234
+ * @return {AdaptiveLuminanceMaterial} The material.
235
+ */
236
+ getAdaptiveLuminanceMaterial() {
237
+ return this.adaptiveLuminanceMaterial;
238
+ }
239
+ /**
240
+ * Returns the current tone mapping mode.
241
+ *
242
+ * @deprecated Use mode instead.
243
+ * @return {ToneMappingMode} The tone mapping mode.
244
+ */
245
+ getMode() {
246
+ return this.mode;
247
+ }
248
+ /**
249
+ * Returns the resolution of the luminance texture.
250
+ *
251
+ * @deprecated Use resolution instead.
252
+ * @return {number} The resolution.
253
+ */
254
+ getResolution() {
255
+ return this.resolution;
256
+ }
257
+ /**
258
+ * Performs initialization tasks.
259
+ *
260
+ * @param {WebGLRenderer} renderer - The renderer.
261
+ * @param {boolean} alpha - Whether the renderer uses the alpha channel or not.
262
+ * @param {number} frameBufferType - The type of the main frame buffers.
263
+ */
264
+ initialize(renderer, alpha, frameBufferType) {
265
+ this.adaptiveLuminancePass.initialize(renderer, alpha, frameBufferType);
266
+ }
267
+ /**
268
+ * Sets the tone mapping mode.
269
+ *
270
+ * @deprecated Use mode instead.
271
+ * @param {ToneMappingMode} value - The tone mapping mode.
272
+ */
273
+ setMode(value) {
274
+ this.mode = value;
275
+ }
276
+ /**
277
+ * Sets the resolution of the luminance texture. Must be a power of two.
278
+ *
279
+ * @deprecated Use resolution instead.
280
+ * @param {number} value - The resolution.
281
+ */
282
+ setResolution(value) {
283
+ this.resolution = value;
284
+ }
285
+ /**
286
+ * Updates this effect.
287
+ *
288
+ * @param {WebGLRenderer} renderer - The renderer.
289
+ * @param {WebGLRenderTarget} inputBuffer - A frame buffer that contains the result of the previous pass.
290
+ * @param {number} [deltaTime] - The time between the last frame and the current one in seconds.
291
+ */
292
+ update(renderer, inputBuffer, deltaTime) {
293
+ if (this.adaptiveLuminancePass.enabled) {
294
+ this.luminancePass.render(renderer, inputBuffer);
295
+ this.adaptiveLuminancePass.render(renderer, null, null, deltaTime);
296
+ }
297
+ }
298
+ }
299
+ exports.ToneMappingEffect = ToneMappingEffect;
300
300
  //# sourceMappingURL=ToneMappingEffect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToneMappingEffect.js","sourceRoot":"","sources":["../../../../../src/managers/postprocessing/effects/tone-mapping/ToneMappingEffect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToneMappingEffect.js","sourceRoot":"","sources":["../../../../../src/managers/postprocessing/effects/tone-mapping/ToneMappingEffect.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const tone_mapping = "\n#include <tonemapping_pars_fragment>\n\nuniform float whitePoint;\n\n#if TONE_MAPPING_MODE == 2 || TONE_MAPPING_MODE == 3\n\n\t// Reinhard 2\n\n\tuniform float middleGrey;\n\n\t#if TONE_MAPPING_MODE == 3\n\n\t\tuniform lowp sampler2D luminanceBuffer;\n\n\t#else\n\n\t\tuniform float averageLuminance;\n\n\t#endif\n\n\tvec3 Reinhard2ToneMapping(vec3 color) {\n\n\t\tcolor *= toneMappingExposure;\n\n\t\t// Calculate the luminance of the current pixel.\n\t\tfloat l = luminance(color);\n\n\t\t#if TONE_MAPPING_MODE == 3\n\n\t\t\t// Get the average luminance from the adaptive 1x1 buffer.\n\t\t\tfloat lumAvg = unpackRGBAToFloat(texture2D(luminanceBuffer, vec2(0.5)));\n\n\t\t#else\n\n\t\t\tfloat lumAvg = averageLuminance;\n\n\t\t#endif\n\n\t\tfloat lumScaled = (l * middleGrey) / max(lumAvg, 1e-6);\n\t\tfloat lumCompressed = lumScaled * (1.0 + lumScaled / (whitePoint * whitePoint));\n\t\tlumCompressed /= (1.0 + lumScaled);\n\n\t\treturn clamp(lumCompressed * color, 0.0, 1.0);\n\n\t}\n\n#elif TONE_MAPPING_MODE == 4\n\n\t// Uncharted 2: http://filmicworlds.com/blog/filmic-tonemapping-operators\n\n\t#define A 0.15\n\t#define B 0.50\n\t#define C 0.10\n\t#define D 0.20\n\t#define E 0.02\n\t#define F 0.30\n\n\tvec3 Uncharted2Helper(const in vec3 x) {\n\n\t\treturn ((x * (A * x + C * B) + D * E) / (x * (A * x + B) + D * F)) - E / F;\n\n\t}\n\n\tvec3 Uncharted2ToneMapping(vec3 color) {\n\n\t\tcolor *= toneMappingExposure;\n\t\treturn clamp(Uncharted2Helper(color) / Uncharted2Helper(vec3(whitePoint)), 0.0, 1.0);\n\n\t}\n\n#endif\n\nvoid mainImage(const in vec4 inputColor, const in vec2 uv, const in float depth, out vec4 outputColor) {\n\t#if TONE_MAPPING_MODE == 2 || TONE_MAPPING_MODE == 3\n\n\t\toutputColor = vec4(Reinhard2ToneMapping(inputColor.rgb), inputColor.a);\n\n\t#elif TONE_MAPPING_MODE == 4\n\n\t\toutputColor = vec4(Uncharted2ToneMapping(inputColor.rgb), inputColor.a);\n\n\t#else\n\n\t\toutputColor = vec4(toneMapping(inputColor.rgb), inputColor.a);\n\n\t#endif\n\n if(depth >= 1.0) {\n outputColor = inputColor;\n }\n}\n";
1
+ export declare const tone_mapping = "\n#include <tonemapping_pars_fragment>\n\nuniform float whitePoint;\n\n#if TONE_MAPPING_MODE == 2 || TONE_MAPPING_MODE == 3\n\n\t// Reinhard 2\n\n\tuniform float middleGrey;\n\n\t#if TONE_MAPPING_MODE == 3\n\n\t\tuniform lowp sampler2D luminanceBuffer;\n\n\t#else\n\n\t\tuniform float averageLuminance;\n\n\t#endif\n\n\tvec3 Reinhard2ToneMapping(vec3 color) {\n\n\t\tcolor *= toneMappingExposure;\n\n\t\t// Calculate the luminance of the current pixel.\n\t\tfloat l = luminance(color);\n\n\t\t#if TONE_MAPPING_MODE == 3\n\n\t\t\t// Get the average luminance from the adaptive 1x1 buffer.\n\t\t\tfloat lumAvg = unpackRGBAToFloat(texture2D(luminanceBuffer, vec2(0.5)));\n\n\t\t#else\n\n\t\t\tfloat lumAvg = averageLuminance;\n\n\t\t#endif\n\n\t\tfloat lumScaled = (l * middleGrey) / max(lumAvg, 1e-6);\n\t\tfloat lumCompressed = lumScaled * (1.0 + lumScaled / (whitePoint * whitePoint));\n\t\tlumCompressed /= (1.0 + lumScaled);\n\n\t\treturn clamp(lumCompressed * color, 0.0, 1.0);\n\n\t}\n\n#elif TONE_MAPPING_MODE == 4\n\n\t// Uncharted 2: http://filmicworlds.com/blog/filmic-tonemapping-operators\n\n\t#define A 0.15\n\t#define B 0.50\n\t#define C 0.10\n\t#define D 0.20\n\t#define E 0.02\n\t#define F 0.30\n\n\tvec3 Uncharted2Helper(const in vec3 x) {\n\n\t\treturn ((x * (A * x + C * B) + D * E) / (x * (A * x + B) + D * F)) - E / F;\n\n\t}\n\n\tvec3 Uncharted2ToneMapping(vec3 color) {\n\n\t\tcolor *= toneMappingExposure;\n\t\treturn clamp(Uncharted2Helper(color) / Uncharted2Helper(vec3(whitePoint)), 0.0, 1.0);\n\n\t}\n\n#endif\n\nvoid mainImage(const in vec4 inputColor, const in vec2 uv, const in float depth, out vec4 outputColor) {\n\t#if TONE_MAPPING_MODE == 2 || TONE_MAPPING_MODE == 3\n\n\t\toutputColor = vec4(Reinhard2ToneMapping(inputColor.rgb), inputColor.a);\n\n\t#elif TONE_MAPPING_MODE == 4\n\n\t\toutputColor = vec4(Uncharted2ToneMapping(inputColor.rgb), inputColor.a);\n\n\t#else\n\n\t\toutputColor = vec4(toneMapping(inputColor.rgb), inputColor.a);\n\n\t#endif\n\n if(depth >= 1.0) {\n outputColor = inputColor;\n }\n}\n";
2
2
  //# sourceMappingURL=tone-mapping.d.ts.map
@@ -1,6 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.tone_mapping = void 0;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tone_mapping = void 0;
4
4
  exports.tone_mapping = `
5
5
  #include <tonemapping_pars_fragment>
6
6
 
@@ -93,5 +93,5 @@ void mainImage(const in vec4 inputColor, const in vec2 uv, const in float depth,
93
93
  outputColor = inputColor;
94
94
  }
95
95
  }
96
- `;
96
+ `;
97
97
  //# sourceMappingURL=tone-mapping.js.map