@babylonjs/core 7.22.2 → 7.22.4

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 (177) hide show
  1. package/Animations/animationGroup.js +1 -1
  2. package/Animations/animationGroup.js.map +1 -1
  3. package/Engines/abstractEngine.js +2 -2
  4. package/Engines/abstractEngine.js.map +1 -1
  5. package/Engines/constants.d.ts +21 -1
  6. package/Engines/constants.js +21 -1
  7. package/Engines/constants.js.map +1 -1
  8. package/Engines/engineFeatures.d.ts +2 -0
  9. package/Engines/engineFeatures.js.map +1 -1
  10. package/Engines/nativeEngine.js +7 -1
  11. package/Engines/nativeEngine.js.map +1 -1
  12. package/Engines/nullEngine.js +1 -0
  13. package/Engines/nullEngine.js.map +1 -1
  14. package/Engines/thinEngine.js +2 -0
  15. package/Engines/thinEngine.js.map +1 -1
  16. package/Engines/webgpuEngine.js +1 -0
  17. package/Engines/webgpuEngine.js.map +1 -1
  18. package/Materials/Node/Blocks/Fragment/prePassOutputBlock.d.ts +12 -0
  19. package/Materials/Node/Blocks/Fragment/prePassOutputBlock.js +51 -0
  20. package/Materials/Node/Blocks/Fragment/prePassOutputBlock.js.map +1 -1
  21. package/Materials/Node/Blocks/Input/prePassTextureBlock.d.ts +27 -0
  22. package/Materials/Node/Blocks/Input/prePassTextureBlock.js +69 -0
  23. package/Materials/Node/Blocks/Input/prePassTextureBlock.js.map +1 -1
  24. package/Materials/Node/nodeMaterial.d.ts +12 -0
  25. package/Materials/Node/nodeMaterial.js +24 -0
  26. package/Materials/Node/nodeMaterial.js.map +1 -1
  27. package/Materials/PBR/pbrBaseMaterial.d.ts +8 -0
  28. package/Materials/PBR/pbrBaseMaterial.js +8 -0
  29. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  30. package/Materials/Textures/Procedurals/proceduralTexture.d.ts +4 -0
  31. package/Materials/Textures/Procedurals/proceduralTexture.js +19 -5
  32. package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
  33. package/Materials/materialHelper.functions.js +20 -0
  34. package/Materials/materialHelper.functions.js.map +1 -1
  35. package/Materials/prePassConfiguration.js +2 -1
  36. package/Materials/prePassConfiguration.js.map +1 -1
  37. package/Materials/standardMaterial.d.ts +8 -0
  38. package/Materials/standardMaterial.js +8 -0
  39. package/Materials/standardMaterial.js.map +1 -1
  40. package/Misc/fileTools.js +1 -1
  41. package/Misc/fileTools.js.map +1 -1
  42. package/PostProcesses/postProcessManager.d.ts +2 -0
  43. package/PostProcesses/postProcessManager.js +3 -0
  44. package/PostProcesses/postProcessManager.js.map +1 -1
  45. package/PostProcesses/volumetricLightScatteringPostProcess.js +79 -8
  46. package/PostProcesses/volumetricLightScatteringPostProcess.js.map +1 -1
  47. package/Rendering/IBLShadows/iblShadowsAccumulationPass.d.ts +88 -0
  48. package/Rendering/IBLShadows/iblShadowsAccumulationPass.js +240 -0
  49. package/Rendering/IBLShadows/iblShadowsAccumulationPass.js.map +1 -0
  50. package/Rendering/IBLShadows/iblShadowsImportanceSamplingRenderer.d.ts +88 -0
  51. package/Rendering/IBLShadows/iblShadowsImportanceSamplingRenderer.js +231 -0
  52. package/Rendering/IBLShadows/iblShadowsImportanceSamplingRenderer.js.map +1 -0
  53. package/Rendering/IBLShadows/iblShadowsRenderPipeline.d.ts +340 -0
  54. package/Rendering/IBLShadows/iblShadowsRenderPipeline.js +884 -0
  55. package/Rendering/IBLShadows/iblShadowsRenderPipeline.js.map +1 -0
  56. package/Rendering/IBLShadows/iblShadowsSpatialBlurPass.d.ts +67 -0
  57. package/Rendering/IBLShadows/iblShadowsSpatialBlurPass.js +139 -0
  58. package/Rendering/IBLShadows/iblShadowsSpatialBlurPass.js.map +1 -0
  59. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.d.ts +168 -0
  60. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js +597 -0
  61. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js.map +1 -0
  62. package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.d.ts +151 -0
  63. package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.js +291 -0
  64. package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.js.map +1 -0
  65. package/Rendering/depthRenderer.js +44 -23
  66. package/Rendering/depthRenderer.js.map +1 -1
  67. package/Rendering/index.d.ts +1 -0
  68. package/Rendering/index.js +1 -0
  69. package/Rendering/index.js.map +1 -1
  70. package/Rendering/outlineRenderer.js +3 -3
  71. package/Rendering/outlineRenderer.js.map +1 -1
  72. package/Rendering/prePassRenderer.js +25 -1
  73. package/Rendering/prePassRenderer.js.map +1 -1
  74. package/Shaders/ShadersInclude/instancesDeclaration.js +4 -2
  75. package/Shaders/ShadersInclude/instancesDeclaration.js.map +1 -1
  76. package/Shaders/ShadersInclude/instancesVertex.js +8 -4
  77. package/Shaders/ShadersInclude/instancesVertex.js.map +1 -1
  78. package/Shaders/ShadersInclude/prePassDeclaration.js +4 -1
  79. package/Shaders/ShadersInclude/prePassDeclaration.js.map +1 -1
  80. package/Shaders/ShadersInclude/prePassVertex.js +5 -1
  81. package/Shaders/ShadersInclude/prePassVertex.js.map +1 -1
  82. package/Shaders/ShadersInclude/prePassVertexDeclaration.js +4 -1
  83. package/Shaders/ShadersInclude/prePassVertexDeclaration.js.map +1 -1
  84. package/Shaders/combineVoxelGrids.fragment.d.ts +5 -0
  85. package/Shaders/combineVoxelGrids.fragment.js +9 -0
  86. package/Shaders/combineVoxelGrids.fragment.js.map +1 -0
  87. package/Shaders/copyTexture3DLayerToTexture.fragment.d.ts +5 -0
  88. package/Shaders/copyTexture3DLayerToTexture.fragment.js +10 -0
  89. package/Shaders/copyTexture3DLayerToTexture.fragment.js.map +1 -0
  90. package/Shaders/default.fragment.js +31 -6
  91. package/Shaders/default.fragment.js.map +1 -1
  92. package/Shaders/default.vertex.js +6 -2
  93. package/Shaders/default.vertex.js.map +1 -1
  94. package/Shaders/generateVoxelMip.fragment.d.ts +5 -0
  95. package/Shaders/generateVoxelMip.fragment.js +25 -0
  96. package/Shaders/generateVoxelMip.fragment.js.map +1 -0
  97. package/Shaders/geometry.fragment.js +1 -1
  98. package/Shaders/geometry.fragment.js.map +1 -1
  99. package/Shaders/iblShadowAccumulation.fragment.d.ts +5 -0
  100. package/Shaders/iblShadowAccumulation.fragment.js +27 -0
  101. package/Shaders/iblShadowAccumulation.fragment.js.map +1 -0
  102. package/Shaders/iblShadowDebug.fragment.d.ts +5 -0
  103. package/Shaders/iblShadowDebug.fragment.js +18 -0
  104. package/Shaders/iblShadowDebug.fragment.js.map +1 -0
  105. package/Shaders/iblShadowGBufferDebug.fragment.d.ts +5 -0
  106. package/Shaders/iblShadowGBufferDebug.fragment.js +19 -0
  107. package/Shaders/iblShadowGBufferDebug.fragment.js.map +1 -0
  108. package/Shaders/iblShadowSpatialBlur.fragment.d.ts +5 -0
  109. package/Shaders/iblShadowSpatialBlur.fragment.js +21 -0
  110. package/Shaders/iblShadowSpatialBlur.fragment.js.map +1 -0
  111. package/Shaders/iblShadowVoxelTracing.fragment.d.ts +5 -0
  112. package/Shaders/iblShadowVoxelTracing.fragment.js +152 -0
  113. package/Shaders/iblShadowVoxelTracing.fragment.js.map +1 -0
  114. package/Shaders/iblShadowsCdfx.fragment.d.ts +5 -0
  115. package/Shaders/iblShadowsCdfx.fragment.js +12 -0
  116. package/Shaders/iblShadowsCdfx.fragment.js.map +1 -0
  117. package/Shaders/iblShadowsCdfy.fragment.d.ts +5 -0
  118. package/Shaders/iblShadowsCdfy.fragment.js +33 -0
  119. package/Shaders/iblShadowsCdfy.fragment.js.map +1 -0
  120. package/Shaders/iblShadowsCombine.fragment.d.ts +5 -0
  121. package/Shaders/iblShadowsCombine.fragment.js +10 -0
  122. package/Shaders/iblShadowsCombine.fragment.js.map +1 -0
  123. package/Shaders/iblShadowsIcdfx.fragment.d.ts +5 -0
  124. package/Shaders/iblShadowsIcdfx.fragment.js +19 -0
  125. package/Shaders/iblShadowsIcdfx.fragment.js.map +1 -0
  126. package/Shaders/iblShadowsIcdfy.fragment.d.ts +5 -0
  127. package/Shaders/iblShadowsIcdfy.fragment.js +19 -0
  128. package/Shaders/iblShadowsIcdfy.fragment.js.map +1 -0
  129. package/Shaders/iblShadowsImportanceSamplingDebug.fragment.d.ts +5 -0
  130. package/Shaders/iblShadowsImportanceSamplingDebug.fragment.js +48 -0
  131. package/Shaders/iblShadowsImportanceSamplingDebug.fragment.js.map +1 -0
  132. package/Shaders/pbr.fragment.js +32 -7
  133. package/Shaders/pbr.fragment.js.map +1 -1
  134. package/Shaders/pbr.vertex.js +3 -1
  135. package/Shaders/pbr.vertex.js.map +1 -1
  136. package/Shaders/voxelGrid.fragment.d.ts +5 -0
  137. package/Shaders/voxelGrid.fragment.js +14 -0
  138. package/Shaders/voxelGrid.fragment.js.map +1 -0
  139. package/Shaders/voxelGrid.vertex.d.ts +5 -0
  140. package/Shaders/voxelGrid.vertex.js +9 -0
  141. package/Shaders/voxelGrid.vertex.js.map +1 -0
  142. package/Shaders/voxelGrid2dArrayDebug.fragment.d.ts +5 -0
  143. package/Shaders/voxelGrid2dArrayDebug.fragment.js +9 -0
  144. package/Shaders/voxelGrid2dArrayDebug.fragment.js.map +1 -0
  145. package/Shaders/voxelGrid3dDebug.fragment.d.ts +5 -0
  146. package/Shaders/voxelGrid3dDebug.fragment.js +22 -0
  147. package/Shaders/voxelGrid3dDebug.fragment.js.map +1 -0
  148. package/Shaders/voxelSlabDebug.fragment.d.ts +5 -0
  149. package/Shaders/voxelSlabDebug.fragment.js +11 -0
  150. package/Shaders/voxelSlabDebug.fragment.js.map +1 -0
  151. package/Shaders/voxelSlabDebug.vertex.d.ts +5 -0
  152. package/Shaders/voxelSlabDebug.vertex.js +9 -0
  153. package/Shaders/voxelSlabDebug.vertex.js.map +1 -0
  154. package/ShadersWGSL/ShadersInclude/instancesDeclaration.js +4 -2
  155. package/ShadersWGSL/ShadersInclude/instancesDeclaration.js.map +1 -1
  156. package/ShadersWGSL/ShadersInclude/instancesVertex.js +9 -4
  157. package/ShadersWGSL/ShadersInclude/instancesVertex.js.map +1 -1
  158. package/ShadersWGSL/ShadersInclude/prePassDeclaration.js +4 -1
  159. package/ShadersWGSL/ShadersInclude/prePassDeclaration.js.map +1 -1
  160. package/ShadersWGSL/ShadersInclude/prePassVertex.js +5 -1
  161. package/ShadersWGSL/ShadersInclude/prePassVertex.js.map +1 -1
  162. package/ShadersWGSL/ShadersInclude/prePassVertexDeclaration.js +4 -1
  163. package/ShadersWGSL/ShadersInclude/prePassVertexDeclaration.js.map +1 -1
  164. package/ShadersWGSL/default.fragment.js +42 -16
  165. package/ShadersWGSL/default.fragment.js.map +1 -1
  166. package/ShadersWGSL/default.vertex.js +5 -2
  167. package/ShadersWGSL/default.vertex.js.map +1 -1
  168. package/ShadersWGSL/geometry.fragment.js +1 -1
  169. package/ShadersWGSL/geometry.fragment.js.map +1 -1
  170. package/ShadersWGSL/pbr.fragment.js +37 -20
  171. package/ShadersWGSL/pbr.fragment.js.map +1 -1
  172. package/ShadersWGSL/pbr.vertex.js +1 -1
  173. package/ShadersWGSL/pbr.vertex.js.map +1 -1
  174. package/package.json +1 -1
  175. package/sceneComponent.d.ts +1 -0
  176. package/sceneComponent.js +1 -0
  177. package/sceneComponent.js.map +1 -1
@@ -0,0 +1,340 @@
1
+ import type { AbstractMesh } from "../../Meshes/abstractMesh";
2
+ import type { Scene } from "../../scene";
3
+ import type { BaseTexture } from "../../Materials/Textures/baseTexture";
4
+ import { Texture } from "../../Materials/Textures/texture";
5
+ import { PrePassRenderer } from "../prePassRenderer";
6
+ import "../../Shaders/postprocess.vertex";
7
+ import "../../Shaders/iblShadowGBufferDebug.fragment";
8
+ import "../../Shaders/iblShadowsCombine.fragment";
9
+ import { PostProcessRenderPipeline } from "../../PostProcesses/RenderPipeline/postProcessRenderPipeline";
10
+ import type { Camera } from "../../Cameras/camera.js";
11
+ interface IblShadowsSettings {
12
+ /**
13
+ * The exponent of the resolution of the voxel shadow grid. Higher resolutions will result in sharper
14
+ * shadows but are more expensive to compute and require more memory.
15
+ * The resolution is calculated as 2 to the power of this number.
16
+ */
17
+ resolutionExp: number;
18
+ /**
19
+ * The number of different directions to sample during the voxel tracing pass. Higher
20
+ * values will result in better quality, more stable shadows but are more expensive to compute.
21
+ */
22
+ sampleDirections: number;
23
+ /**
24
+ * How dark the shadows are. 1.0 is full opacity, 0.0 is no shadows.
25
+ */
26
+ shadowOpacity: number;
27
+ /**
28
+ * How long the shadows remain in the scene. 0.0 is no persistence, 1.0 is full persistence.
29
+ */
30
+ shadowRemenance: number;
31
+ /**
32
+ * Render the voxel grid from 3 different axis. This will result in better quality shadows with fewer
33
+ * bits of missing geometry.
34
+ */
35
+ triPlanarVoxelization: boolean;
36
+ /**
37
+ * Include screen-space shadows in the IBL shadow pipeline. This adds sharp shadows to small details
38
+ * but only applies close to a shadow-casting object.
39
+ */
40
+ ssShadowsEnabled: boolean;
41
+ /**
42
+ * The number of samples used in the screen space shadow pass.
43
+ */
44
+ ssShadowSampleCount: number;
45
+ /**
46
+ * The stride of the screen-space shadow pass. This controls the distance between samples.
47
+ */
48
+ ssShadowStride: number;
49
+ /**
50
+ * The maximum distance a shadow can be cast in screen space. This should usually be kept small
51
+ * as screenspace shadows are mostly useful for small details.
52
+ */
53
+ ssShadowMaxDist: number;
54
+ /**
55
+ * Screen-space shadow thickness. This value controls the perceived thickness of the SS shadows.
56
+ */
57
+ ssShadowThickness: number;
58
+ }
59
+ /**
60
+ * Voxel-based shadow rendering for IBL's.
61
+ * This should not be instanciated directly, as it is part of a scene component
62
+ */
63
+ export declare class IblShadowsRenderPipeline extends PostProcessRenderPipeline {
64
+ /**
65
+ * The scene that this pipeline is attached to
66
+ */
67
+ scene: Scene;
68
+ private _voxelizationDirty;
69
+ private _boundsNeedUpdate;
70
+ private _allowDebugPasses;
71
+ private _debugPasses;
72
+ private _shadowCompositePP;
73
+ private _prePassEffectConfiguration;
74
+ private _excludedMeshes;
75
+ private _voxelRenderer;
76
+ private _importanceSamplingRenderer;
77
+ private _voxelTracingPass;
78
+ private _spatialBlurPass;
79
+ private _accumulationPass;
80
+ private _noiseTexture;
81
+ private _shadowOpacity;
82
+ /**
83
+ * How dark the shadows appear. 1.0 is full opacity, 0.0 is no shadows.
84
+ */
85
+ get shadowOpacity(): number;
86
+ /**
87
+ * How dark the shadows appear. 1.0 is full opacity, 0.0 is no shadows.
88
+ */
89
+ set shadowOpacity(value: number);
90
+ /**
91
+ * How dark the voxel shadows appear. 1.0 is full opacity, 0.0 is no shadows.
92
+ */
93
+ get voxelShadowOpacity(): number;
94
+ /**
95
+ * How dark the voxel shadows appear. 1.0 is full opacity, 0.0 is no shadows.
96
+ */
97
+ set voxelShadowOpacity(value: number);
98
+ /**
99
+ * How dark the screen-space shadows appear. 1.0 is full opacity, 0.0 is no shadows.
100
+ */
101
+ get ssShadowOpacity(): number;
102
+ /**
103
+ * How dark the screen-space shadows appear. 1.0 is full opacity, 0.0 is no shadows.
104
+ */
105
+ set ssShadowOpacity(value: number);
106
+ /**
107
+ * The number of samples used in the screen space shadow pass.
108
+ */
109
+ get ssShadowSamples(): number;
110
+ /**
111
+ * The number of samples used in the screen space shadow pass.
112
+ */
113
+ set ssShadowSamples(value: number);
114
+ /**
115
+ * The stride of the screen-space shadow pass. This controls the distance between samples.
116
+ */
117
+ get ssShadowStride(): number;
118
+ /**
119
+ * The stride of the screen-space shadow pass. This controls the distance between samples.
120
+ */
121
+ set ssShadowStride(value: number);
122
+ /**
123
+ * The maximum distance a shadow can be cast in screen space. This should usually be kept small
124
+ * as screenspace shadows are mostly useful for small details.
125
+ */
126
+ get ssShadowMaxDist(): number;
127
+ /**
128
+ * The maximum distance a shadow can be cast in screen space. This should usually be kept small
129
+ * as screenspace shadows are mostly useful for small details.
130
+ */
131
+ set ssShadowMaxDist(value: number);
132
+ /**
133
+ * Screen-space shadow thickness. This value controls the perceived thickness of the SS shadows.
134
+ */
135
+ get ssShadowThickness(): number;
136
+ /**
137
+ * Screen-space shadow thickness. This value controls the perceived thickness of the SS shadows.
138
+ */
139
+ set ssShadowThickness(value: number);
140
+ /**
141
+ * Set the IBL image to be used for shadowing. It can be either a cubemap
142
+ * or a 2D equirectangular texture.
143
+ * @param iblSource The texture to use for IBL shadowing
144
+ */
145
+ setIblTexture(iblSource: BaseTexture): void;
146
+ /**
147
+ * Returns the texture containing the voxel grid data
148
+ * @returns The texture containing the voxel grid data
149
+ */
150
+ getVoxelGridTexture(): Texture;
151
+ /**
152
+ * Returns the texture containing the importance sampling CDF data for the IBL shadow pipeline
153
+ * @returns The texture containing the importance sampling CDF data for the IBL shadow pipeline
154
+ */
155
+ getIcdfyTexture(): Texture;
156
+ /**
157
+ * Returns the texture containing the importance sampling CDF data for the IBL shadow pipeline
158
+ * @returns The texture containing the importance sampling CDF data for the IBL shadow pipeline
159
+ */
160
+ getIcdfxTexture(): Texture;
161
+ private _gbufferDebugPass;
162
+ private _gbufferDebugEnabled;
163
+ private _gBufferDebugSizeParams;
164
+ /**
165
+ * Is the debug view of the G-Buffer enabled?
166
+ */
167
+ get gbufferDebugEnabled(): boolean;
168
+ /**
169
+ * Turn on or off the debug view of the G-Buffer
170
+ */
171
+ set gbufferDebugEnabled(enabled: boolean);
172
+ /**
173
+ * Turn on or off the debug view of the CDF importance sampling data
174
+ */
175
+ get importanceSamplingDebugEnabled(): boolean;
176
+ /**
177
+ * Turn on or off the debug view of the CDF importance sampling data
178
+ */
179
+ set importanceSamplingDebugEnabled(enabled: boolean);
180
+ /**
181
+ * Turn on or off the debug view of the voxel grid
182
+ */
183
+ get voxelDebugEnabled(): boolean;
184
+ /**
185
+ * Turn on or off the debug view of the voxel grid
186
+ */
187
+ set voxelDebugEnabled(enabled: boolean);
188
+ /**
189
+ * Set the axis to display for the voxel grid debug view
190
+ * When using tri-axis voxelization, this will display the voxel grid for the specified axis
191
+ */
192
+ get voxelDebugAxis(): number;
193
+ /**
194
+ * Set the axis to display for the voxel grid debug view
195
+ * When using tri-axis voxelization, this will display the voxel grid for the specified axis
196
+ */
197
+ set voxelDebugAxis(axisNum: number);
198
+ /**
199
+ * Set the mip level to display for the voxel grid debug view
200
+ */
201
+ set voxelDebugDisplayMip(mipNum: number);
202
+ /**
203
+ * Display the debug view for the voxel tracing pass
204
+ */
205
+ get voxelTracingDebugEnabled(): boolean;
206
+ /**
207
+ * Display the debug view for the voxel tracing pass
208
+ */
209
+ set voxelTracingDebugEnabled(enabled: boolean);
210
+ /**
211
+ * Display the debug view for the spatial blur pass
212
+ */
213
+ get spatialBlurPassDebugEnabled(): boolean;
214
+ /**
215
+ * Display the debug view for the spatial blur pass
216
+ */
217
+ set spatialBlurPassDebugEnabled(enabled: boolean);
218
+ /**
219
+ * Display the debug view for the accumulation pass
220
+ */
221
+ get accumulationPassDebugEnabled(): boolean;
222
+ /**
223
+ * Display the debug view for the accumulation pass
224
+ */
225
+ set accumulationPassDebugEnabled(enabled: boolean);
226
+ /**
227
+ * Add a mesh in the exclusion list to prevent it to be handled by the IBL shadow pipeline
228
+ * @param mesh The mesh to exclude from the IBL shadow pipeline
229
+ */
230
+ addExcludedMesh(mesh: AbstractMesh): void;
231
+ /**
232
+ * Remove a mesh from the exclusion list of the IBL shadow pipeline
233
+ * @param mesh The mesh to remove
234
+ */
235
+ removeExcludedMesh(mesh: AbstractMesh): void;
236
+ /**
237
+ * The exponent of the resolution of the voxel shadow grid. Higher resolutions will result in sharper
238
+ * shadows but are more expensive to compute and require more memory.
239
+ * The resolution is calculated as 2 to the power of this number.
240
+ */
241
+ get resolutionExp(): number;
242
+ /**
243
+ * The exponent of the resolution of the voxel shadow grid. Higher resolutions will result in sharper
244
+ * shadows but are more expensive to compute and require more memory.
245
+ * The resolution is calculated as 2 to the power of this number.
246
+ */
247
+ set resolutionExp(newResolution: number);
248
+ /**
249
+ * The number of different directions to sample during the voxel tracing pass
250
+ */
251
+ get sampleDirections(): number;
252
+ /**
253
+ * The number of different directions to sample during the voxel tracing pass
254
+ */
255
+ set sampleDirections(value: number);
256
+ /**
257
+ * The decree to which the shadows persist between frames. 0.0 is no persistence, 1.0 is full persistence.
258
+ **/
259
+ get shadowRemenance(): number;
260
+ /**
261
+ * The decree to which the shadows persist between frames. 0.0 is no persistence, 1.0 is full persistence.
262
+ **/
263
+ set shadowRemenance(value: number);
264
+ /**
265
+ * The global rotation of the IBL for shadows
266
+ */
267
+ get envRotation(): number;
268
+ /**
269
+ * The global rotation of the IBL for shadows
270
+ */
271
+ set envRotation(value: number);
272
+ /**
273
+ * Allow debug passes to be enabled. Default is false.
274
+ */
275
+ get allowDebugPasses(): boolean;
276
+ /**
277
+ * Allow debug passes to be enabled. Default is false.
278
+ */
279
+ set allowDebugPasses(value: boolean);
280
+ /**
281
+ * Support test.
282
+ */
283
+ static get IsSupported(): boolean;
284
+ /**
285
+ * @param name The rendering pipeline name
286
+ * @param scene The scene linked to this pipeline
287
+ * @param options Options to configure the pipeline
288
+ * @param cameras Cameras to apply the pipeline to.
289
+ */
290
+ constructor(name: string, scene: Scene, options?: Partial<IblShadowsSettings>, cameras?: Camera[]);
291
+ /**
292
+ * Toggle the shadow tracing on or off
293
+ * @param enabled Toggle the shadow tracing on or off
294
+ */
295
+ toggleShadow(enabled: boolean): void;
296
+ private _handleResize;
297
+ private _createShadowCombinePostProcess;
298
+ private _createEffectPasses;
299
+ private _getGBufferDebugPass;
300
+ private _createDebugPasses;
301
+ private _disposeEffectPasses;
302
+ private _disposeDebugPasses;
303
+ private _updateDebugPasses;
304
+ /**
305
+ * Trigger the scene to be re-voxelized. This is useful when the scene has changed and the voxel grid needs to be updated.
306
+ */
307
+ updateVoxelization(): void;
308
+ /**
309
+ * Trigger the scene bounds of shadow-casters to be updated. This is useful when the scene has changed and the bounds need
310
+ * to be recalculated. This will also trigger a re-voxelization.
311
+ */
312
+ updateSceneBounds(): void;
313
+ private _updateBeforeRender;
314
+ private _listenForCameraChanges;
315
+ /**
316
+ * Links to the prepass renderer
317
+ * @param prePassRenderer The scene PrePassRenderer
318
+ * @returns true if the pre pass is setup
319
+ */
320
+ setPrePassRenderer(prePassRenderer: PrePassRenderer): boolean;
321
+ /**
322
+ * Checks if the IBL shadow pipeline is ready to render shadows
323
+ * @returns true if the IBL shadow pipeline is ready to render the shadows
324
+ */
325
+ isReady(): boolean;
326
+ /**
327
+ * Renders accumulated shadows for IBL
328
+ */
329
+ update(): void;
330
+ /**
331
+ * Get the class name
332
+ * @returns "IBLShadowsRenderPipeline"
333
+ */
334
+ getClassName(): string;
335
+ /**
336
+ * Disposes the IBL shadow pipeline and associated resources
337
+ */
338
+ dispose(): void;
339
+ }
340
+ export {};