babylonjs-loaders 9.16.2 → 9.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8364,9 +8364,9 @@ declare namespace BABYLON {
8364
8364
  * @param url URL to the spz WASM ES module (its default export should be a factory function)
8365
8365
  * @returns A promise resolving to the initialized spz WASM module
8366
8366
  */
8367
- export function GetSpzModule(url: string): Promise<SpzModule>;
8367
+ export function GetSpzModule(url: string): Promise<any>;
8368
8368
  /**
8369
- * Converts a GaussianCloud object (from the spz WASM module) into the packed 32-byte-per-splat
8369
+ * Converts a any object (from the spz WASM module) into the packed 32-byte-per-splat
8370
8370
  * ArrayBuffer and SH texture arrays expected by GaussianSplattingMeshBase.updateData.
8371
8371
  *
8372
8372
  * Packed layout per splat (32 bytes):
@@ -8378,15 +8378,15 @@ declare namespace BABYLON {
8378
8378
  * SH coefficients from the cloud (Float32, range ~[-1,1]) are encoded to bytes
8379
8379
  * using the SPZ convention (load-spz.cc unquantizeSH): byte = coeff * 128 + 128.
8380
8380
  *
8381
- * @param cloud The GaussianCloud returned by spz.loadSpzFromBuffer
8381
+ * @param cloud The any returned by spz.loadSpzFromBuffer
8382
8382
  * @param scene The Babylon.js scene (used to query maxTextureSize for SH textures)
8383
8383
  * @param useCoroutine If true, yields periodically to avoid blocking the main thread
8384
8384
  * @returns A coroutine returning an IParsedSplat ready to be passed to updateData
8385
8385
  */
8386
- export function ConvertSpzToSplat(cloud: GaussianCloud, scene: Scene, useCoroutine?: boolean): Coroutine<IParsedSplat>;
8386
+ export function ConvertSpzToSplat(cloud: any, scene: Scene, useCoroutine?: boolean): Coroutine<IParsedSplat>;
8387
8387
  /**
8388
8388
  * Async version of ConvertSpzToSplat that yields periodically to avoid blocking the main thread.
8389
- * @param cloud The GaussianCloud returned by spz.loadSpzFromBuffer
8389
+ * @param cloud The any returned by spz.loadSpzFromBuffer
8390
8390
  * @param scene The Babylon.js scene
8391
8391
  * @returns A promise resolving to an IParsedSplat
8392
8392
  */
@@ -8522,8 +8522,19 @@ declare namespace BABYLON {
8522
8522
  private _unzipWithFFlateAsync;
8523
8523
  private _parseAsync;
8524
8524
  /**
8525
- * Applies camera limits based on parsed meta data
8525
+ * Extracts the safe-orbit camera limits from parsed splat metadata, or null when the file
8526
+ * carries none. Exposed on the loaded mesh (GaussianSplattingMeshBase.safeOrbitCameraLimits)
8527
+ * so consumers can apply/track them regardless of the active camera type.
8526
8528
  * @param meta parsed splat meta data
8529
+ * @returns the parsed safe-orbit limits, or null
8530
+ */
8531
+ private static _ExtractSafeOrbitLimits;
8532
+ /**
8533
+ * Applies safe-orbit camera limits parsed from the file metadata to the scene's active
8534
+ * ArcRotateCamera. No-op when no limits are present, `disableAutoCameraLimits` is set, or the
8535
+ * active camera is not an ArcRotateCamera — in which case consumers can still read the limits
8536
+ * from the loaded mesh's `safeOrbitCameraLimits` and apply them themselves.
8537
+ * @param limits parsed safe-orbit limits (see _ExtractSafeOrbitLimits)
8527
8538
  * @param scene
8528
8539
  */
8529
8540
  private applyAutoCameraLimits;
@@ -8850,7 +8861,11 @@ declare namespace BABYLON {
8850
8861
  */
8851
8862
  constructor(scene: Scene, capacity: number);
8852
8863
  /**
8853
- * Creates a 4-attachment MRT (centers F32 / covA F32 / covB F32 / colors U8) sized to the work buffer.
8864
+ * Creates a 4-attachment MRT (centers F32 / covA / covB / colors U8) sized to the work buffer. covA/covB
8865
+ * use HALF_FLOAT when the engine can render to it, matching the precision the non-streamed
8866
+ * GaussianSplattingMesh path already uses for these same two textures (see
8867
+ * `gaussianSplattingMeshBase.pure.ts`'s `createTextureFromDataF16` covA/covB textures); centers stays F32
8868
+ * and colors stays U8 in both paths.
8854
8869
  * @param name MRT and attachment base name
8855
8870
  * @param disableClear when true, clearing is suppressed so renders accumulate (the decode buffer); when
8856
8871
  * false the MRT clears to zero on each render (the temporary relayout buffer, so gaps stay zeroed)
@@ -9381,7 +9396,14 @@ declare namespace BABYLON {
9381
9396
  * cheap per-node frustum test every frame so the off-screen LOD bias tracks camera rotation. The LOD
9382
9397
  * re-evaluation is throttled to at most every {@link _lodUpdateInterval} frames once the camera has
9383
9398
  * translated far enough, but also runs immediately whenever a node enters/leaves the frustum (so its
9384
- * detail upgrades/downgrades promptly) or a cap change forces it. Active ranges rebuild on any LOD change.
9399
+ * detail upgrades/downgrades promptly), a node whose cooldown just expired still needs to switch LOD,
9400
+ * or a cap change forces it. Active ranges rebuild on any LOD change.
9401
+ *
9402
+ * The cooldown-expiry trigger lets a node reach its already-computed target level as soon as its
9403
+ * cooldown clears, rather than waiting for the camera to move. This matters right from load: a
9404
+ * node's base-layer decode is itself applied as a switch (from no active level to the base one), so
9405
+ * it starts the same cooldown a later switch would — this trigger is what lets the node progress past
9406
+ * that base level promptly once it expires, even at a fixed camera pose.
9385
9407
  */
9386
9408
  private _onLodFrame;
9387
9409
  /**
@@ -10325,6 +10347,7 @@ declare namespace BABYLON {
10325
10347
  private _setAssetContainer;
10326
10348
  private static _computeFBXAxisConversionMatrix;
10327
10349
  private _buildModel;
10350
+ private _linkSkeletonsToTransformNodes;
10328
10351
  private static _modelSubtreeMatchesNameFilter;
10329
10352
  private static _applyModelMetadata;
10330
10353
  private _createMesh;