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.
|
@@ -8284,9 +8284,9 @@ export function ParseSpz(data: ArrayBuffer, scene: Scene, _loadingOptions: SPLAT
|
|
|
8284
8284
|
* @param url URL to the spz WASM ES module (its default export should be a factory function)
|
|
8285
8285
|
* @returns A promise resolving to the initialized spz WASM module
|
|
8286
8286
|
*/
|
|
8287
|
-
export function GetSpzModule(url: string): Promise<
|
|
8287
|
+
export function GetSpzModule(url: string): Promise<any>;
|
|
8288
8288
|
/**
|
|
8289
|
-
* Converts a
|
|
8289
|
+
* Converts a any object (from the spz WASM module) into the packed 32-byte-per-splat
|
|
8290
8290
|
* ArrayBuffer and SH texture arrays expected by GaussianSplattingMeshBase.updateData.
|
|
8291
8291
|
*
|
|
8292
8292
|
* Packed layout per splat (32 bytes):
|
|
@@ -8298,15 +8298,15 @@ export function GetSpzModule(url: string): Promise<SpzModule>;
|
|
|
8298
8298
|
* SH coefficients from the cloud (Float32, range ~[-1,1]) are encoded to bytes
|
|
8299
8299
|
* using the SPZ convention (load-spz.cc unquantizeSH): byte = coeff * 128 + 128.
|
|
8300
8300
|
*
|
|
8301
|
-
* @param cloud The
|
|
8301
|
+
* @param cloud The any returned by spz.loadSpzFromBuffer
|
|
8302
8302
|
* @param scene The Babylon.js scene (used to query maxTextureSize for SH textures)
|
|
8303
8303
|
* @param useCoroutine If true, yields periodically to avoid blocking the main thread
|
|
8304
8304
|
* @returns A coroutine returning an IParsedSplat ready to be passed to updateData
|
|
8305
8305
|
*/
|
|
8306
|
-
export function ConvertSpzToSplat(cloud:
|
|
8306
|
+
export function ConvertSpzToSplat(cloud: any, scene: Scene, useCoroutine?: boolean): Coroutine<IParsedSplat>;
|
|
8307
8307
|
/**
|
|
8308
8308
|
* Async version of ConvertSpzToSplat that yields periodically to avoid blocking the main thread.
|
|
8309
|
-
* @param cloud The
|
|
8309
|
+
* @param cloud The any returned by spz.loadSpzFromBuffer
|
|
8310
8310
|
* @param scene The Babylon.js scene
|
|
8311
8311
|
* @returns A promise resolving to an IParsedSplat
|
|
8312
8312
|
*/
|
|
@@ -8455,8 +8455,19 @@ export class SPLATFileLoader implements ISceneLoaderPluginAsync, ISceneLoaderPlu
|
|
|
8455
8455
|
private _unzipWithFFlateAsync;
|
|
8456
8456
|
private _parseAsync;
|
|
8457
8457
|
/**
|
|
8458
|
-
*
|
|
8458
|
+
* Extracts the safe-orbit camera limits from parsed splat metadata, or null when the file
|
|
8459
|
+
* carries none. Exposed on the loaded mesh (GaussianSplattingMeshBase.safeOrbitCameraLimits)
|
|
8460
|
+
* so consumers can apply/track them regardless of the active camera type.
|
|
8459
8461
|
* @param meta parsed splat meta data
|
|
8462
|
+
* @returns the parsed safe-orbit limits, or null
|
|
8463
|
+
*/
|
|
8464
|
+
private static _ExtractSafeOrbitLimits;
|
|
8465
|
+
/**
|
|
8466
|
+
* Applies safe-orbit camera limits parsed from the file metadata to the scene's active
|
|
8467
|
+
* ArcRotateCamera. No-op when no limits are present, `disableAutoCameraLimits` is set, or the
|
|
8468
|
+
* active camera is not an ArcRotateCamera — in which case consumers can still read the limits
|
|
8469
|
+
* from the loaded mesh's `safeOrbitCameraLimits` and apply them themselves.
|
|
8470
|
+
* @param limits parsed safe-orbit limits (see _ExtractSafeOrbitLimits)
|
|
8460
8471
|
* @param scene
|
|
8461
8472
|
*/
|
|
8462
8473
|
private applyAutoCameraLimits;
|
|
@@ -8812,7 +8823,11 @@ export class GaussianSplattingWorkBuffer {
|
|
|
8812
8823
|
*/
|
|
8813
8824
|
constructor(scene: Scene, capacity: number);
|
|
8814
8825
|
/**
|
|
8815
|
-
* Creates a 4-attachment MRT (centers F32 / covA
|
|
8826
|
+
* Creates a 4-attachment MRT (centers F32 / covA / covB / colors U8) sized to the work buffer. covA/covB
|
|
8827
|
+
* use HALF_FLOAT when the engine can render to it, matching the precision the non-streamed
|
|
8828
|
+
* GaussianSplattingMesh path already uses for these same two textures (see
|
|
8829
|
+
* `gaussianSplattingMeshBase.pure.ts`'s `createTextureFromDataF16` covA/covB textures); centers stays F32
|
|
8830
|
+
* and colors stays U8 in both paths.
|
|
8816
8831
|
* @param name MRT and attachment base name
|
|
8817
8832
|
* @param disableClear when true, clearing is suppressed so renders accumulate (the decode buffer); when
|
|
8818
8833
|
* false the MRT clears to zero on each render (the temporary relayout buffer, so gaps stay zeroed)
|
|
@@ -9349,7 +9364,14 @@ export class GaussianSplattingStream extends GaussianSplattingMesh {
|
|
|
9349
9364
|
* cheap per-node frustum test every frame so the off-screen LOD bias tracks camera rotation. The LOD
|
|
9350
9365
|
* re-evaluation is throttled to at most every {@link _lodUpdateInterval} frames once the camera has
|
|
9351
9366
|
* translated far enough, but also runs immediately whenever a node enters/leaves the frustum (so its
|
|
9352
|
-
* detail upgrades/downgrades promptly)
|
|
9367
|
+
* detail upgrades/downgrades promptly), a node whose cooldown just expired still needs to switch LOD,
|
|
9368
|
+
* or a cap change forces it. Active ranges rebuild on any LOD change.
|
|
9369
|
+
*
|
|
9370
|
+
* The cooldown-expiry trigger lets a node reach its already-computed target level as soon as its
|
|
9371
|
+
* cooldown clears, rather than waiting for the camera to move. This matters right from load: a
|
|
9372
|
+
* node's base-layer decode is itself applied as a switch (from no active level to the base one), so
|
|
9373
|
+
* it starts the same cooldown a later switch would — this trigger is what lets the node progress past
|
|
9374
|
+
* that base level promptly once it expires, even at a fixed camera pose.
|
|
9353
9375
|
*/
|
|
9354
9376
|
private _onLodFrame;
|
|
9355
9377
|
/**
|
|
@@ -10355,6 +10377,7 @@ export class FBXFileLoader implements ISceneLoaderPluginAsync, ISceneLoaderPlugi
|
|
|
10355
10377
|
private _setAssetContainer;
|
|
10356
10378
|
private static _computeFBXAxisConversionMatrix;
|
|
10357
10379
|
private _buildModel;
|
|
10380
|
+
private _linkSkeletonsToTransformNodes;
|
|
10358
10381
|
private static _modelSubtreeMatchesNameFilter;
|
|
10359
10382
|
private static _applyModelMetadata;
|
|
10360
10383
|
private _createMesh;
|
|
@@ -19806,9 +19829,9 @@ declare namespace BABYLON {
|
|
|
19806
19829
|
* @param url URL to the spz WASM ES module (its default export should be a factory function)
|
|
19807
19830
|
* @returns A promise resolving to the initialized spz WASM module
|
|
19808
19831
|
*/
|
|
19809
|
-
export function GetSpzModule(url: string): Promise<
|
|
19832
|
+
export function GetSpzModule(url: string): Promise<any>;
|
|
19810
19833
|
/**
|
|
19811
|
-
* Converts a
|
|
19834
|
+
* Converts a any object (from the spz WASM module) into the packed 32-byte-per-splat
|
|
19812
19835
|
* ArrayBuffer and SH texture arrays expected by GaussianSplattingMeshBase.updateData.
|
|
19813
19836
|
*
|
|
19814
19837
|
* Packed layout per splat (32 bytes):
|
|
@@ -19820,15 +19843,15 @@ declare namespace BABYLON {
|
|
|
19820
19843
|
* SH coefficients from the cloud (Float32, range ~[-1,1]) are encoded to bytes
|
|
19821
19844
|
* using the SPZ convention (load-spz.cc unquantizeSH): byte = coeff * 128 + 128.
|
|
19822
19845
|
*
|
|
19823
|
-
* @param cloud The
|
|
19846
|
+
* @param cloud The any returned by spz.loadSpzFromBuffer
|
|
19824
19847
|
* @param scene The Babylon.js scene (used to query maxTextureSize for SH textures)
|
|
19825
19848
|
* @param useCoroutine If true, yields periodically to avoid blocking the main thread
|
|
19826
19849
|
* @returns A coroutine returning an IParsedSplat ready to be passed to updateData
|
|
19827
19850
|
*/
|
|
19828
|
-
export function ConvertSpzToSplat(cloud:
|
|
19851
|
+
export function ConvertSpzToSplat(cloud: any, scene: Scene, useCoroutine?: boolean): Coroutine<IParsedSplat>;
|
|
19829
19852
|
/**
|
|
19830
19853
|
* Async version of ConvertSpzToSplat that yields periodically to avoid blocking the main thread.
|
|
19831
|
-
* @param cloud The
|
|
19854
|
+
* @param cloud The any returned by spz.loadSpzFromBuffer
|
|
19832
19855
|
* @param scene The Babylon.js scene
|
|
19833
19856
|
* @returns A promise resolving to an IParsedSplat
|
|
19834
19857
|
*/
|
|
@@ -19964,8 +19987,19 @@ declare namespace BABYLON {
|
|
|
19964
19987
|
private _unzipWithFFlateAsync;
|
|
19965
19988
|
private _parseAsync;
|
|
19966
19989
|
/**
|
|
19967
|
-
*
|
|
19990
|
+
* Extracts the safe-orbit camera limits from parsed splat metadata, or null when the file
|
|
19991
|
+
* carries none. Exposed on the loaded mesh (GaussianSplattingMeshBase.safeOrbitCameraLimits)
|
|
19992
|
+
* so consumers can apply/track them regardless of the active camera type.
|
|
19968
19993
|
* @param meta parsed splat meta data
|
|
19994
|
+
* @returns the parsed safe-orbit limits, or null
|
|
19995
|
+
*/
|
|
19996
|
+
private static _ExtractSafeOrbitLimits;
|
|
19997
|
+
/**
|
|
19998
|
+
* Applies safe-orbit camera limits parsed from the file metadata to the scene's active
|
|
19999
|
+
* ArcRotateCamera. No-op when no limits are present, `disableAutoCameraLimits` is set, or the
|
|
20000
|
+
* active camera is not an ArcRotateCamera — in which case consumers can still read the limits
|
|
20001
|
+
* from the loaded mesh's `safeOrbitCameraLimits` and apply them themselves.
|
|
20002
|
+
* @param limits parsed safe-orbit limits (see _ExtractSafeOrbitLimits)
|
|
19969
20003
|
* @param scene
|
|
19970
20004
|
*/
|
|
19971
20005
|
private applyAutoCameraLimits;
|
|
@@ -20292,7 +20326,11 @@ declare namespace BABYLON {
|
|
|
20292
20326
|
*/
|
|
20293
20327
|
constructor(scene: Scene, capacity: number);
|
|
20294
20328
|
/**
|
|
20295
|
-
* Creates a 4-attachment MRT (centers F32 / covA
|
|
20329
|
+
* Creates a 4-attachment MRT (centers F32 / covA / covB / colors U8) sized to the work buffer. covA/covB
|
|
20330
|
+
* use HALF_FLOAT when the engine can render to it, matching the precision the non-streamed
|
|
20331
|
+
* GaussianSplattingMesh path already uses for these same two textures (see
|
|
20332
|
+
* `gaussianSplattingMeshBase.pure.ts`'s `createTextureFromDataF16` covA/covB textures); centers stays F32
|
|
20333
|
+
* and colors stays U8 in both paths.
|
|
20296
20334
|
* @param name MRT and attachment base name
|
|
20297
20335
|
* @param disableClear when true, clearing is suppressed so renders accumulate (the decode buffer); when
|
|
20298
20336
|
* false the MRT clears to zero on each render (the temporary relayout buffer, so gaps stay zeroed)
|
|
@@ -20823,7 +20861,14 @@ declare namespace BABYLON {
|
|
|
20823
20861
|
* cheap per-node frustum test every frame so the off-screen LOD bias tracks camera rotation. The LOD
|
|
20824
20862
|
* re-evaluation is throttled to at most every {@link _lodUpdateInterval} frames once the camera has
|
|
20825
20863
|
* translated far enough, but also runs immediately whenever a node enters/leaves the frustum (so its
|
|
20826
|
-
* detail upgrades/downgrades promptly)
|
|
20864
|
+
* detail upgrades/downgrades promptly), a node whose cooldown just expired still needs to switch LOD,
|
|
20865
|
+
* or a cap change forces it. Active ranges rebuild on any LOD change.
|
|
20866
|
+
*
|
|
20867
|
+
* The cooldown-expiry trigger lets a node reach its already-computed target level as soon as its
|
|
20868
|
+
* cooldown clears, rather than waiting for the camera to move. This matters right from load: a
|
|
20869
|
+
* node's base-layer decode is itself applied as a switch (from no active level to the base one), so
|
|
20870
|
+
* it starts the same cooldown a later switch would — this trigger is what lets the node progress past
|
|
20871
|
+
* that base level promptly once it expires, even at a fixed camera pose.
|
|
20827
20872
|
*/
|
|
20828
20873
|
private _onLodFrame;
|
|
20829
20874
|
/**
|
|
@@ -21767,6 +21812,7 @@ declare namespace BABYLON {
|
|
|
21767
21812
|
private _setAssetContainer;
|
|
21768
21813
|
private static _computeFBXAxisConversionMatrix;
|
|
21769
21814
|
private _buildModel;
|
|
21815
|
+
private _linkSkeletonsToTransformNodes;
|
|
21770
21816
|
private static _modelSubtreeMatchesNameFilter;
|
|
21771
21817
|
private static _applyModelMetadata;
|
|
21772
21818
|
private _createMesh;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "babylonjs-loaders",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.17.1",
|
|
4
4
|
"main": "babylonjs.loaders.min.js",
|
|
5
5
|
"types": "babylonjs.loaders.module.d.ts",
|
|
6
6
|
"files": [
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
"test:escheck": "es-check es6 ./babylonjs.loaders.js"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"babylonjs": "9.
|
|
20
|
-
"babylonjs-gltf2interface": "9.
|
|
19
|
+
"babylonjs": "9.17.1",
|
|
20
|
+
"babylonjs-gltf2interface": "9.17.1"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@dev/build-tools": "1.0.0",
|