@babylonjs/core 7.34.0 → 7.34.2

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 (87) hide show
  1. package/Animations/animatable.core.d.ts +2 -1
  2. package/Animations/animatable.core.js +3 -2
  3. package/Animations/animatable.core.js.map +1 -1
  4. package/Animations/animationGroup.d.ts +2 -1
  5. package/Animations/animationGroup.js +4 -3
  6. package/Animations/animationGroup.js.map +1 -1
  7. package/Collisions/gpuPicker.d.ts +1 -1
  8. package/Collisions/gpuPicker.js +1 -1
  9. package/Collisions/gpuPicker.js.map +1 -1
  10. package/Engines/WebGPU/Extensions/engine.query.js +9 -9
  11. package/Engines/WebGPU/Extensions/engine.query.js.map +1 -1
  12. package/Engines/abstractEngine.js +2 -2
  13. package/Engines/abstractEngine.js.map +1 -1
  14. package/Engines/thinWebGPUEngine.d.ts +3 -0
  15. package/Engines/thinWebGPUEngine.js.map +1 -1
  16. package/Engines/webgpuEngine.d.ts +1 -3
  17. package/Engines/webgpuEngine.js +1 -0
  18. package/Engines/webgpuEngine.js.map +1 -1
  19. package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.d.ts +1 -2
  20. package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js.map +1 -1
  21. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.d.ts +9 -1
  22. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.js +20 -2
  23. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.js.map +1 -1
  24. package/FrameGraph/Node/Blocks/Rendering/objectRendererBlock.d.ts +5 -1
  25. package/FrameGraph/Node/Blocks/Rendering/objectRendererBlock.js +18 -2
  26. package/FrameGraph/Node/Blocks/Rendering/objectRendererBlock.js.map +1 -1
  27. package/FrameGraph/Node/Blocks/Rendering/taaObjectRendererBlock.d.ts +5 -1
  28. package/FrameGraph/Node/Blocks/Rendering/taaObjectRendererBlock.js +16 -2
  29. package/FrameGraph/Node/Blocks/Rendering/taaObjectRendererBlock.js.map +1 -1
  30. package/FrameGraph/Tasks/Rendering/geometryRendererTask.d.ts +9 -6
  31. package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +27 -25
  32. package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -1
  33. package/FrameGraph/Tasks/Rendering/objectRendererTask.d.ts +9 -6
  34. package/FrameGraph/Tasks/Rendering/objectRendererTask.js +25 -23
  35. package/FrameGraph/Tasks/Rendering/objectRendererTask.js.map +1 -1
  36. package/FrameGraph/Tasks/Rendering/taaObjectRendererTask.d.ts +3 -2
  37. package/FrameGraph/Tasks/Rendering/taaObjectRendererTask.js +8 -8
  38. package/FrameGraph/Tasks/Rendering/taaObjectRendererTask.js.map +1 -1
  39. package/FrameGraph/frameGraphRenderContext.d.ts +7 -3
  40. package/FrameGraph/frameGraphRenderContext.js +23 -4
  41. package/FrameGraph/frameGraphRenderContext.js.map +1 -1
  42. package/Gizmos/boundingBoxGizmo.d.ts +52 -10
  43. package/Gizmos/boundingBoxGizmo.js +17 -0
  44. package/Gizmos/boundingBoxGizmo.js.map +1 -1
  45. package/Gizmos/positionGizmo.js +1 -0
  46. package/Gizmos/positionGizmo.js.map +1 -1
  47. package/Gizmos/rotationGizmo.js +1 -0
  48. package/Gizmos/rotationGizmo.js.map +1 -1
  49. package/Materials/PBR/pbrSubSurfaceConfiguration.js +1 -0
  50. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  51. package/Materials/Textures/baseTexture.d.ts +4 -0
  52. package/Materials/Textures/baseTexture.js +3 -0
  53. package/Materials/Textures/baseTexture.js.map +1 -1
  54. package/Materials/Textures/multiRenderTarget.js +1 -1
  55. package/Materials/Textures/multiRenderTarget.js.map +1 -1
  56. package/Materials/Textures/renderTargetTexture.d.ts +46 -42
  57. package/Materials/Textures/renderTargetTexture.js +249 -435
  58. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  59. package/Meshes/abstractMesh.hotSpot.d.ts +4 -2
  60. package/Meshes/abstractMesh.hotSpot.js +34 -7
  61. package/Meshes/abstractMesh.hotSpot.js.map +1 -1
  62. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.d.ts +1 -1
  63. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js +3 -10
  64. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js.map +1 -1
  65. package/Rendering/index.d.ts +1 -0
  66. package/Rendering/index.js +1 -0
  67. package/Rendering/index.js.map +1 -1
  68. package/Rendering/objectRenderer.d.ts +228 -0
  69. package/Rendering/objectRenderer.js +517 -0
  70. package/Rendering/objectRenderer.js.map +1 -0
  71. package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js +2 -3
  72. package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js.map +1 -1
  73. package/XR/features/WebXRControllerTeleportation.js +6 -0
  74. package/XR/features/WebXRControllerTeleportation.js.map +1 -1
  75. package/XR/features/WebXRDepthSensing.js +1 -0
  76. package/XR/features/WebXRDepthSensing.js.map +1 -1
  77. package/XR/features/WebXRHandTracking.js +1 -0
  78. package/XR/features/WebXRHandTracking.js.map +1 -1
  79. package/XR/motionController/webXRAbstractMotionController.js +1 -0
  80. package/XR/motionController/webXRAbstractMotionController.js.map +1 -1
  81. package/XR/webXRCamera.js +1 -0
  82. package/XR/webXRCamera.js.map +1 -1
  83. package/XR/webXRManagedOutputCanvas.js +1 -0
  84. package/XR/webXRManagedOutputCanvas.js.map +1 -1
  85. package/XR/webXRSessionManager.js +1 -0
  86. package/XR/webXRSessionManager.js.map +1 -1
  87. package/package.json +1 -1
@@ -11,11 +11,11 @@ import type { SubMesh } from "../../Meshes/subMesh";
11
11
  import type { InternalTexture } from "../../Materials/Textures/internalTexture";
12
12
  import { Texture } from "../../Materials/Textures/texture";
13
13
  import type { PostProcess } from "../../PostProcesses/postProcess";
14
- import { RenderingManager } from "../../Rendering/renderingManager";
15
14
  import type { IRenderTargetTexture, RenderTargetWrapper } from "../../Engines/renderTargetWrapper";
16
15
  import type { Material } from "../material";
17
16
  import type { AbstractEngine } from "../../Engines/abstractEngine";
18
17
  import type { IParticleSystem } from "../../Particles/IParticleSystem.js";
18
+ import { ObjectRenderer } from "../../Rendering/objectRenderer.js";
19
19
  declare module "../effect" {
20
20
  interface Effect {
21
21
  /**
@@ -74,7 +74,7 @@ export declare class RenderTargetTexture extends Texture implements IRenderTarge
74
74
  */
75
75
  static readonly REFRESHRATE_RENDER_ONCE: number;
76
76
  /**
77
- * The texture will only be rendered rendered every frame and is recommended for dynamic contents.
77
+ * The texture will be rendered every frame and is recommended for dynamic contents.
78
78
  */
79
79
  static readonly REFRESHRATE_RENDER_ONEVERYFRAME: number;
80
80
  /**
@@ -86,20 +86,19 @@ export declare class RenderTargetTexture extends Texture implements IRenderTarge
86
86
  * Use this predicate to dynamically define the list of mesh you want to render.
87
87
  * If set, the renderList property will be overwritten.
88
88
  */
89
- renderListPredicate: (AbstractMesh: AbstractMesh) => boolean;
90
- private _renderList;
91
- private _unObserveRenderList;
89
+ get renderListPredicate(): (AbstractMesh: AbstractMesh) => boolean;
90
+ set renderListPredicate(value: (AbstractMesh: AbstractMesh) => boolean);
92
91
  /**
93
92
  * Use this list to define the list of mesh you want to render.
94
93
  */
95
94
  get renderList(): Nullable<Array<AbstractMesh>>;
96
95
  set renderList(value: Nullable<Array<AbstractMesh>>);
97
- private _renderListHasChanged;
98
96
  /**
99
97
  * Define the list of particle systems to render in the texture. If not provided, will render all the particle systems of the scene.
100
98
  * Note that the particle systems are rendered only if renderParticles is set to true.
101
99
  */
102
- particleSystemList: Nullable<Array<IParticleSystem>>;
100
+ get particleSystemList(): Nullable<Array<IParticleSystem>>;
101
+ set particleSystemList(value: Nullable<Array<IParticleSystem>>);
103
102
  /**
104
103
  * Use this function to overload the renderList array at rendering time.
105
104
  * Return null to render with the current renderList, else return the list of meshes to use for rendering.
@@ -109,31 +108,38 @@ export declare class RenderTargetTexture extends Texture implements IRenderTarge
109
108
  * The length of this list is passed through renderListLength: don't use renderList.length directly because the array can
110
109
  * hold dummy elements!
111
110
  */
112
- getCustomRenderList: (layerOrFace: number, renderList: Nullable<Immutable<Array<AbstractMesh>>>, renderListLength: number) => Nullable<Array<AbstractMesh>>;
111
+ get getCustomRenderList(): Nullable<(layerOrFace: number, renderList: Nullable<Immutable<Array<AbstractMesh>>>, renderListLength: number) => Nullable<Array<AbstractMesh>>>;
112
+ set getCustomRenderList(value: Nullable<(layerOrFace: number, renderList: Nullable<Immutable<Array<AbstractMesh>>>, renderListLength: number) => Nullable<Array<AbstractMesh>>>);
113
113
  /**
114
- * Define if particles should be rendered in your texture.
114
+ * Define if particles should be rendered in your texture (default: true).
115
115
  */
116
- renderParticles: boolean;
116
+ get renderParticles(): boolean;
117
+ set renderParticles(value: boolean);
117
118
  /**
118
- * Define if sprites should be rendered in your texture.
119
+ * Define if sprites should be rendered in your texture (default: false).
119
120
  */
120
- renderSprites: boolean;
121
+ get renderSprites(): boolean;
122
+ set renderSprites(value: boolean);
121
123
  /**
122
- * Force checking the layerMask property even if a custom list of meshes is provided (ie. if renderList is not undefined)
124
+ * Force checking the layerMask property even if a custom list of meshes is provided (ie. if renderList is not undefined) (default: false).
123
125
  */
124
- forceLayerMaskCheck: boolean;
126
+ get forceLayerMaskCheck(): boolean;
127
+ set forceLayerMaskCheck(value: boolean);
125
128
  /**
126
129
  * Define the camera used to render the texture.
127
130
  */
128
- activeCamera: Nullable<Camera>;
131
+ get activeCamera(): Nullable<Camera>;
132
+ set activeCamera(value: Nullable<Camera>);
129
133
  /**
130
134
  * Override the mesh isReady function with your own one.
131
135
  */
132
- customIsReadyFunction: (mesh: AbstractMesh, refreshRate: number, preWarm?: boolean) => boolean;
136
+ get customIsReadyFunction(): (mesh: AbstractMesh, refreshRate: number, preWarm?: boolean) => boolean;
137
+ set customIsReadyFunction(value: (mesh: AbstractMesh, refreshRate: number, preWarm?: boolean) => boolean);
133
138
  /**
134
139
  * Override the render function of the texture with your own one.
135
140
  */
136
- customRenderFunction: (opaqueSubMeshes: SmartArray<SubMesh>, alphaTestSubMeshes: SmartArray<SubMesh>, transparentSubMeshes: SmartArray<SubMesh>, depthOnlySubMeshes: SmartArray<SubMesh>, beforeTransparents?: () => void) => void;
141
+ get customRenderFunction(): (opaqueSubMeshes: SmartArray<SubMesh>, alphaTestSubMeshes: SmartArray<SubMesh>, transparentSubMeshes: SmartArray<SubMesh>, depthOnlySubMeshes: SmartArray<SubMesh>, beforeTransparents?: () => void) => void;
142
+ set customRenderFunction(value: (opaqueSubMeshes: SmartArray<SubMesh>, alphaTestSubMeshes: SmartArray<SubMesh>, transparentSubMeshes: SmartArray<SubMesh>, depthOnlySubMeshes: SmartArray<SubMesh>, beforeTransparents?: () => void) => void);
137
143
  /**
138
144
  * Define if camera post processes should be use while rendering the texture.
139
145
  */
@@ -167,7 +173,7 @@ export declare class RenderTargetTexture extends Texture implements IRenderTarge
167
173
  /**
168
174
  * An event triggered before rendering the texture
169
175
  */
170
- onBeforeRenderObservable: Observable<number>;
176
+ get onBeforeRenderObservable(): Observable<number>;
171
177
  private _onBeforeRenderObserver;
172
178
  /**
173
179
  * Set a before render callback in the texture.
@@ -177,7 +183,7 @@ export declare class RenderTargetTexture extends Texture implements IRenderTarge
177
183
  /**
178
184
  * An event triggered after rendering the texture
179
185
  */
180
- onAfterRenderObservable: Observable<number>;
186
+ get onAfterRenderObservable(): Observable<number>;
181
187
  private _onAfterRenderObserver;
182
188
  /**
183
189
  * Set a after render callback in the texture.
@@ -216,22 +222,25 @@ export declare class RenderTargetTexture extends Texture implements IRenderTarge
216
222
  * Skip the initial clear of the rtt at the beginning of the frame render loop
217
223
  */
218
224
  skipInitialClear: boolean;
219
- protected _renderingManager: RenderingManager;
220
225
  /** @internal */
221
- _waitingRenderList?: string[];
226
+ get _waitingRenderList(): string[] | undefined;
227
+ /** @internal */
228
+ set _waitingRenderList(value: string[] | undefined);
229
+ protected _objectRenderer: ObjectRenderer;
222
230
  protected _doNotChangeAspectRatio: boolean;
223
- protected _currentRefreshId: number;
224
- protected _refreshRate: number;
225
231
  protected _textureMatrix: Matrix;
226
232
  protected _samples: number;
227
233
  protected _renderTargetOptions: RenderTargetCreationOptions;
228
234
  private _canRescale;
229
235
  protected _renderTarget: Nullable<RenderTargetWrapper>;
236
+ private _currentFaceIndex;
237
+ private _currentLayer;
238
+ private _currentUseCameraPostProcess;
239
+ private _currentDumpForDebug;
230
240
  /**
231
241
  * Current render pass id of the render target texture. Note it can change over the rendering as there's a separate id for each face of a cube / each layer of an array layer!
232
242
  */
233
- renderPassId: number;
234
- private _renderPassIds;
243
+ get renderPassId(): number;
235
244
  /**
236
245
  * Gets the render pass ids used by the render target texture. For a single render target the array length will be 1, for a cube texture it will be 6 and for
237
246
  * a 2D texture array it will return an array of ids the size of the 2D texture array
@@ -247,7 +256,6 @@ export declare class RenderTargetTexture extends Texture implements IRenderTarge
247
256
  * @param material material or array of materials to use for this render pass. If undefined is passed, no specific material will be used but the regular material instead (mesh.material). It's possible to provide an array of materials to use a different material for each rendering in the case of a cube texture (6 rendering) and a 2D texture array (as many rendering as the length of the array)
248
257
  */
249
258
  setMaterialForRendering(mesh: AbstractMesh | AbstractMesh[], material?: Material | Material[]): void;
250
- private _isCubeData;
251
259
  /**
252
260
  * Define if the texture has multiple draw buffers or if false a single draw buffer.
253
261
  */
@@ -327,28 +335,15 @@ export declare class RenderTargetTexture extends Texture implements IRenderTarge
327
335
  * @param label defines the label of the texture (for debugging purpose)
328
336
  */
329
337
  createDepthStencilTexture(comparisonFunction?: number, bilinearFiltering?: boolean, generateStencil?: boolean, samples?: number, format?: number, label?: string): void;
330
- private _releaseRenderPassId;
331
- private _createRenderPassId;
332
338
  protected _processSizeParameter(size: TextureSize | {
333
339
  ratio: number;
334
- }, createRenderPassIds?: boolean): void;
340
+ }): void;
335
341
  /**
336
342
  * Define the number of samples to use in case of MSAA.
337
343
  * It defaults to one meaning no MSAA has been enabled.
338
344
  */
339
345
  get samples(): number;
340
346
  set samples(value: number);
341
- /**
342
- * Resets the refresh counter of the texture and start bak from scratch.
343
- * Could be useful to regenerate the texture if it is setup to render only once.
344
- */
345
- resetRefreshCounter(): void;
346
- /**
347
- * Define the refresh rate of the texture or the rendering frequency.
348
- * Use 0 to render just once, 1 to render on every frame, 2 to render every two frames and so on...
349
- */
350
- get refreshRate(): number;
351
- set refreshRate(value: number);
352
347
  /**
353
348
  * Adds a post process to the render target rendering passes.
354
349
  * @param postProcess define the post process to add
@@ -364,6 +359,17 @@ export declare class RenderTargetTexture extends Texture implements IRenderTarge
364
359
  * @param postProcess define the post process to remove from the list
365
360
  */
366
361
  removePostProcess(postProcess: PostProcess): void;
362
+ /**
363
+ * Resets the refresh counter of the texture and start bak from scratch.
364
+ * Could be useful to regenerate the texture if it is setup to render only once.
365
+ */
366
+ resetRefreshCounter(): void;
367
+ /**
368
+ * Define the refresh rate of the texture or the rendering frequency.
369
+ * Use 0 to render just once, 1 to render on every frame, 2 to render every two frames and so on...
370
+ */
371
+ get refreshRate(): number;
372
+ set refreshRate(value: number);
367
373
  /** @internal */
368
374
  _shouldRender(): boolean;
369
375
  /**
@@ -415,7 +421,6 @@ export declare class RenderTargetTexture extends Texture implements IRenderTarge
415
421
  resize(size: TextureSize | {
416
422
  ratio: number;
417
423
  }): void;
418
- private _defaultRenderListPrepared;
419
424
  /**
420
425
  * Renders all the objects from the render list into the texture.
421
426
  * @param useCameraPostProcess Define if camera post processes should be used during the rendering
@@ -431,7 +436,6 @@ export declare class RenderTargetTexture extends Texture implements IRenderTarge
431
436
  isReadyForRendering(): boolean;
432
437
  private _render;
433
438
  private _bestReflectionRenderTargetDimension;
434
- private _prepareRenderingManager;
435
439
  /**
436
440
  * @internal
437
441
  * @param faceIndex face index to bind to if this is a cubetexture