@babylonjs/loaders 9.15.0 → 9.16.0
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.
- package/glTF/2.0/Extensions/KHR_gaussian_splatting.d.ts +6 -0
- package/glTF/2.0/Extensions/KHR_gaussian_splatting.js +9 -0
- package/glTF/2.0/Extensions/KHR_gaussian_splatting.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_gaussian_splatting.pure.d.ts +35 -0
- package/glTF/2.0/Extensions/KHR_gaussian_splatting.pure.js +195 -0
- package/glTF/2.0/Extensions/KHR_gaussian_splatting.pure.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_gaussian_splatting.types.d.ts +9 -0
- package/glTF/2.0/Extensions/KHR_gaussian_splatting.types.js +2 -0
- package/glTF/2.0/Extensions/KHR_gaussian_splatting.types.js.map +1 -0
- package/glTF/2.0/Extensions/dynamic.js +5 -0
- package/glTF/2.0/Extensions/dynamic.js.map +1 -1
- package/glTF/2.0/Extensions/index.d.ts +1 -0
- package/glTF/2.0/Extensions/index.js +1 -0
- package/glTF/2.0/Extensions/index.js.map +1 -1
- package/glTF/2.0/Extensions/pure.d.ts +1 -0
- package/glTF/2.0/Extensions/pure.js +1 -0
- package/glTF/2.0/Extensions/pure.js.map +1 -1
- package/package.json +4 -3
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Re-exports the pure implementation and applies the runtime registration side effect.
|
|
3
|
+
* Import "./KHR_gaussian_splatting.pure" for tree-shakeable, side-effect-free usage.
|
|
4
|
+
*/
|
|
5
|
+
export * from "./KHR_gaussian_splatting.types.js";
|
|
6
|
+
export * from "./KHR_gaussian_splatting.pure.js";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Re-exports the pure implementation and applies the runtime registration side effect.
|
|
3
|
+
* Import "./KHR_gaussian_splatting.pure" for tree-shakeable, side-effect-free usage.
|
|
4
|
+
*/
|
|
5
|
+
export * from "./KHR_gaussian_splatting.types.js";
|
|
6
|
+
export * from "./KHR_gaussian_splatting.pure.js";
|
|
7
|
+
import { RegisterKHR_gaussian_splatting } from "./KHR_gaussian_splatting.pure.js";
|
|
8
|
+
RegisterKHR_gaussian_splatting();
|
|
9
|
+
//# sourceMappingURL=KHR_gaussian_splatting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KHR_gaussian_splatting.js","sourceRoot":"","sources":["../../../../../../dev/loaders/src/glTF/2.0/Extensions/KHR_gaussian_splatting.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAE9C,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAC/E,8BAA8B,EAAE,CAAC","sourcesContent":["/**\r\n * Re-exports the pure implementation and applies the runtime registration side effect.\r\n * Import \"./KHR_gaussian_splatting.pure\" for tree-shakeable, side-effect-free usage.\r\n */\r\nexport * from \"./KHR_gaussian_splatting.types\";\r\nexport * from \"./KHR_gaussian_splatting.pure\";\r\n\r\nimport { RegisterKHR_gaussian_splatting } from \"./KHR_gaussian_splatting.pure\";\r\nRegisterKHR_gaussian_splatting();\r\n"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type Nullable } from "@babylonjs/core/types.js";
|
|
2
|
+
import { type AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh.pure.js";
|
|
3
|
+
import { type IMeshPrimitive, type INode, type IMesh } from "../glTFLoaderInterfaces.js";
|
|
4
|
+
import { type IGLTFLoaderExtension } from "../glTFLoaderExtension.js";
|
|
5
|
+
import { GLTFLoader } from "../glTFLoader.pure.js";
|
|
6
|
+
/**
|
|
7
|
+
* [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_gaussian_splatting/README.md)
|
|
8
|
+
* Loads a mesh primitive tagged with KHR_gaussian_splatting as a {@link GaussianSplattingMesh}.
|
|
9
|
+
*/
|
|
10
|
+
export declare class KHR_gaussian_splatting implements IGLTFLoaderExtension {
|
|
11
|
+
/**
|
|
12
|
+
* The name of this extension.
|
|
13
|
+
*/
|
|
14
|
+
readonly name = "KHR_gaussian_splatting";
|
|
15
|
+
/**
|
|
16
|
+
* Defines whether this extension is enabled.
|
|
17
|
+
*/
|
|
18
|
+
enabled: boolean;
|
|
19
|
+
private _loader;
|
|
20
|
+
/**
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
constructor(loader: GLTFLoader);
|
|
24
|
+
/** @internal */
|
|
25
|
+
dispose(): void;
|
|
26
|
+
/**
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
_loadMeshPrimitiveAsync(context: string, name: string, node: INode, mesh: IMesh, primitive: IMeshPrimitive, assign: (babylonMesh: AbstractMesh) => void): Nullable<Promise<AbstractMesh>>;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Registers the KHR_gaussian_splatting glTF loader extension.
|
|
33
|
+
* Safe to call multiple times; only the first call has an effect.
|
|
34
|
+
*/
|
|
35
|
+
export declare function RegisterKHR_gaussian_splatting(): void;
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { GaussianSplattingMesh } from "@babylonjs/core/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js";
|
|
2
|
+
import { AllocateShBuffers } from "@babylonjs/core/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js";
|
|
3
|
+
import { GLTFLoader, ArrayItem } from "../glTFLoader.pure.js";
|
|
4
|
+
import { registerGLTFExtension, unregisterGLTFExtension } from "../glTFLoaderExtensionRegistry.js";
|
|
5
|
+
const NAME = "KHR_gaussian_splatting";
|
|
6
|
+
// Zeroth-order spherical harmonics coefficient used to reconstruct a base color from the SH DC term.
|
|
7
|
+
const ShC0 = 0.28209479177387814;
|
|
8
|
+
// Attribute semantics defined by the KHR_gaussian_splatting ellipse kernel.
|
|
9
|
+
const RotationAttribute = "KHR_gaussian_splatting:ROTATION";
|
|
10
|
+
const ScaleAttribute = "KHR_gaussian_splatting:SCALE";
|
|
11
|
+
const OpacityAttribute = "KHR_gaussian_splatting:OPACITY";
|
|
12
|
+
const ShDegree0Attribute = "KHR_gaussian_splatting:SH_DEGREE_0_COEF_0";
|
|
13
|
+
// Number of spherical harmonics coefficients (VEC3) for each degree beyond the DC term.
|
|
14
|
+
const ShCoefficientCountPerDegree = [0, 3, 5, 7];
|
|
15
|
+
function Clamp255(value) {
|
|
16
|
+
return value <= 0 ? 0 : value >= 255 ? 255 : (value + 0.5) | 0;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_gaussian_splatting/README.md)
|
|
20
|
+
* Loads a mesh primitive tagged with KHR_gaussian_splatting as a {@link GaussianSplattingMesh}.
|
|
21
|
+
*/
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
23
|
+
export class KHR_gaussian_splatting {
|
|
24
|
+
/**
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
27
|
+
constructor(loader) {
|
|
28
|
+
/**
|
|
29
|
+
* The name of this extension.
|
|
30
|
+
*/
|
|
31
|
+
this.name = NAME;
|
|
32
|
+
this._loader = loader;
|
|
33
|
+
this.enabled = this._loader.isExtensionUsed(NAME);
|
|
34
|
+
}
|
|
35
|
+
/** @internal */
|
|
36
|
+
dispose() {
|
|
37
|
+
this._loader = null;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
43
|
+
_loadMeshPrimitiveAsync(context, name, node, mesh, primitive, assign) {
|
|
44
|
+
return GLTFLoader.LoadExtensionAsync(context, primitive, this.name, async (extensionContext) => {
|
|
45
|
+
if (primitive.mode != undefined && primitive.mode !== 0 /* MeshPrimitiveMode.POINTS */) {
|
|
46
|
+
throw new Error(`${extensionContext}: Gaussian splatting primitives must use POINTS mode`);
|
|
47
|
+
}
|
|
48
|
+
const loader = this._loader;
|
|
49
|
+
const loadAttribute = (attributeName) => {
|
|
50
|
+
const accessorIndex = primitive.attributes[attributeName];
|
|
51
|
+
if (accessorIndex == undefined) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
const accessor = ArrayItem.Get(`${context}/attributes/${attributeName}`, loader.gltf.accessors, accessorIndex);
|
|
55
|
+
return loader._loadFloatAccessorAsync(`/accessors/${accessor.index}`, accessor);
|
|
56
|
+
};
|
|
57
|
+
const positionsPromise = loadAttribute("POSITION");
|
|
58
|
+
if (!positionsPromise) {
|
|
59
|
+
throw new Error(`${extensionContext}: Gaussian splatting primitive is missing the POSITION attribute`);
|
|
60
|
+
}
|
|
61
|
+
// Determine which spherical harmonics degrees are present (all lower degrees must exist per spec).
|
|
62
|
+
let shDegree = 0;
|
|
63
|
+
const shAttributeNames = [];
|
|
64
|
+
for (let degree = 1; degree <= 3; degree++) {
|
|
65
|
+
if (primitive.attributes[`KHR_gaussian_splatting:SH_DEGREE_${degree}_COEF_0`] == undefined) {
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
shDegree = degree;
|
|
69
|
+
for (let coef = 0; coef < ShCoefficientCountPerDegree[degree]; coef++) {
|
|
70
|
+
shAttributeNames.push(`KHR_gaussian_splatting:SH_DEGREE_${degree}_COEF_${coef}`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// Create the Gaussian Splatting mesh and assign it to the node synchronously (before awaiting the
|
|
74
|
+
// attribute data). The base loader wires the node's transform node from this assign call
|
|
75
|
+
// synchronously, so it must happen before the first await. The splat data is uploaded afterwards.
|
|
76
|
+
const scene = loader.babylonScene;
|
|
77
|
+
scene._blockEntityCollection = !!loader._assetContainer;
|
|
78
|
+
const gaussianSplattingMesh = new GaussianSplattingMesh(name, null, scene);
|
|
79
|
+
gaussianSplattingMesh._parentContainer = loader._assetContainer;
|
|
80
|
+
scene._blockEntityCollection = false;
|
|
81
|
+
GLTFLoader.AddPointerMetadata(gaussianSplattingMesh, context);
|
|
82
|
+
loader.parent.onMeshLoadedObservable.notifyObservers(gaussianSplattingMesh);
|
|
83
|
+
assign(gaussianSplattingMesh);
|
|
84
|
+
const engineCaps = scene.getEngine().getCaps();
|
|
85
|
+
const [positions, rotations, scales, opacities, shDegree0, colors, ...shHigherDegrees] = await Promise.all([
|
|
86
|
+
positionsPromise,
|
|
87
|
+
loadAttribute(RotationAttribute),
|
|
88
|
+
loadAttribute(ScaleAttribute),
|
|
89
|
+
loadAttribute(OpacityAttribute),
|
|
90
|
+
loadAttribute(ShDegree0Attribute),
|
|
91
|
+
loadAttribute("COLOR_0"),
|
|
92
|
+
...shAttributeNames.map((attributeName) => loadAttribute(attributeName)),
|
|
93
|
+
]);
|
|
94
|
+
const splatCount = positions.length / 3;
|
|
95
|
+
const colorStride = colors ? colors.length / splatCount : 0;
|
|
96
|
+
const rowOutputLength = 3 * 4 + 3 * 4 + 4 + 4; // 32 bytes: position(12) scale(12) color RGBA(4) quaternion wxyz(4)
|
|
97
|
+
const buffer = new ArrayBuffer(rowOutputLength * splatCount);
|
|
98
|
+
const floatView = new Float32Array(buffer);
|
|
99
|
+
const byteView = new Uint8Array(buffer);
|
|
100
|
+
// Build spherical harmonics texture buffers for degrees above 0.
|
|
101
|
+
let shBuffers = null;
|
|
102
|
+
if (shDegree > 0) {
|
|
103
|
+
const shVectorCount = (shDegree + 1) * (shDegree + 1) - 1;
|
|
104
|
+
const shComponentCount = shVectorCount * 3;
|
|
105
|
+
const textureCount = Math.ceil(shComponentCount / 16);
|
|
106
|
+
const width = engineCaps.maxTextureSize;
|
|
107
|
+
const height = Math.ceil(splatCount / width);
|
|
108
|
+
shBuffers = AllocateShBuffers(textureCount, height * width * 4 * 4);
|
|
109
|
+
}
|
|
110
|
+
for (let i = 0; i < splatCount; i++) {
|
|
111
|
+
const floatBase = i * 8;
|
|
112
|
+
const byteBase = i * 32;
|
|
113
|
+
const p = i * 3;
|
|
114
|
+
// Position (float32 x3, bytes 0-11)
|
|
115
|
+
floatView[floatBase + 0] = positions[p + 0];
|
|
116
|
+
floatView[floatBase + 1] = positions[p + 1];
|
|
117
|
+
floatView[floatBase + 2] = positions[p + 2];
|
|
118
|
+
// Scale (float32 x3, bytes 12-23) — glTF stores linear scale directly.
|
|
119
|
+
floatView[floatBase + 3] = scales ? scales[p + 0] : 1;
|
|
120
|
+
floatView[floatBase + 4] = scales ? scales[p + 1] : 1;
|
|
121
|
+
floatView[floatBase + 5] = scales ? scales[p + 2] : 1;
|
|
122
|
+
// Color RGB (uint8 x3, bytes 24-26) — reconstructed from the SH DC term, or COLOR_0 as a fallback.
|
|
123
|
+
if (shDegree0) {
|
|
124
|
+
byteView[byteBase + 24] = Clamp255((0.5 + ShC0 * shDegree0[p + 0]) * 255);
|
|
125
|
+
byteView[byteBase + 25] = Clamp255((0.5 + ShC0 * shDegree0[p + 1]) * 255);
|
|
126
|
+
byteView[byteBase + 26] = Clamp255((0.5 + ShC0 * shDegree0[p + 2]) * 255);
|
|
127
|
+
}
|
|
128
|
+
else if (colors) {
|
|
129
|
+
const c = i * colorStride;
|
|
130
|
+
byteView[byteBase + 24] = Clamp255(colors[c + 0] * 255);
|
|
131
|
+
byteView[byteBase + 25] = Clamp255(colors[c + 1] * 255);
|
|
132
|
+
byteView[byteBase + 26] = Clamp255(colors[c + 2] * 255);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
byteView[byteBase + 24] = 255;
|
|
136
|
+
byteView[byteBase + 25] = 255;
|
|
137
|
+
byteView[byteBase + 26] = 255;
|
|
138
|
+
}
|
|
139
|
+
// Alpha (uint8, byte 27) — opacity is a normalized linear value per spec.
|
|
140
|
+
if (opacities) {
|
|
141
|
+
byteView[byteBase + 27] = Clamp255(opacities[i] * 255);
|
|
142
|
+
}
|
|
143
|
+
else if (colors && colorStride >= 4) {
|
|
144
|
+
byteView[byteBase + 27] = Clamp255(colors[i * colorStride + 3] * 255);
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
byteView[byteBase + 27] = 255;
|
|
148
|
+
}
|
|
149
|
+
// Quaternion (uint8 x4, bytes 28-31) stored as wxyz encoded as q * 127.5 + 127.5. glTF stores xyzw.
|
|
150
|
+
const r = i * 4;
|
|
151
|
+
const qx = rotations ? rotations[r + 0] : 0;
|
|
152
|
+
const qy = rotations ? rotations[r + 1] : 0;
|
|
153
|
+
const qz = rotations ? rotations[r + 2] : 0;
|
|
154
|
+
const qw = rotations ? rotations[r + 3] : 1;
|
|
155
|
+
byteView[byteBase + 28] = Clamp255(qw * 127.5 + 127.5);
|
|
156
|
+
byteView[byteBase + 29] = Clamp255(qx * 127.5 + 127.5);
|
|
157
|
+
byteView[byteBase + 30] = Clamp255(qy * 127.5 + 127.5);
|
|
158
|
+
byteView[byteBase + 31] = Clamp255(qz * 127.5 + 127.5);
|
|
159
|
+
// Spherical harmonics (coefficient-major, channel-minor) encoded as coeff * 128 + 128.
|
|
160
|
+
if (shBuffers) {
|
|
161
|
+
const offsetPerSplat = i * 16;
|
|
162
|
+
for (let coef = 0; coef < shHigherDegrees.length; coef++) {
|
|
163
|
+
const coefData = shHigherDegrees[coef];
|
|
164
|
+
if (!coefData) {
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
for (let channel = 0; channel < 3; channel++) {
|
|
168
|
+
const flatIndex = coef * 3 + channel;
|
|
169
|
+
const textureIndex = flatIndex >> 4; // Math.floor(flatIndex / 16)
|
|
170
|
+
const byteIndexInTexture = flatIndex & 15; // flatIndex % 16
|
|
171
|
+
shBuffers[textureIndex][offsetPerSplat + byteIndexInTexture] = Clamp255(coefData[p + channel] * 128 + 128);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
await gaussianSplattingMesh.updateDataAsync(buffer, shBuffers ?? undefined, undefined, shDegree || undefined);
|
|
177
|
+
return gaussianSplattingMesh;
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
let _Registered = false;
|
|
182
|
+
/**
|
|
183
|
+
* Registers the KHR_gaussian_splatting glTF loader extension.
|
|
184
|
+
* Safe to call multiple times; only the first call has an effect.
|
|
185
|
+
*/
|
|
186
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
187
|
+
export function RegisterKHR_gaussian_splatting() {
|
|
188
|
+
if (_Registered) {
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
_Registered = true;
|
|
192
|
+
unregisterGLTFExtension(NAME);
|
|
193
|
+
registerGLTFExtension(NAME, true, (loader) => new KHR_gaussian_splatting(loader));
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=KHR_gaussian_splatting.pure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KHR_gaussian_splatting.pure.js","sourceRoot":"","sources":["../../../../../../dev/loaders/src/glTF/2.0/Extensions/KHR_gaussian_splatting.pure.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Nullable } from \"core/types\";\r\nimport { type AbstractMesh } from \"core/Meshes/abstractMesh.pure\";\r\nimport { GaussianSplattingMesh } from \"core/Meshes/GaussianSplatting/gaussianSplattingMesh.pure\";\r\nimport { AllocateShBuffers } from \"core/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure\";\r\n\r\nimport { MeshPrimitiveMode, type IKHRGaussianSplatting } from \"babylonjs-gltf2interface\";\r\nimport { type IMeshPrimitive, type INode, type IMesh, type IAccessor } from \"../glTFLoaderInterfaces\";\r\nimport { type IGLTFLoaderExtension } from \"../glTFLoaderExtension\";\r\nimport { GLTFLoader, ArrayItem } from \"../glTFLoader.pure\";\r\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\r\n\r\nconst NAME = \"KHR_gaussian_splatting\";\r\n\r\n// Zeroth-order spherical harmonics coefficient used to reconstruct a base color from the SH DC term.\r\nconst ShC0 = 0.28209479177387814;\r\n\r\n// Attribute semantics defined by the KHR_gaussian_splatting ellipse kernel.\r\nconst RotationAttribute = \"KHR_gaussian_splatting:ROTATION\";\r\nconst ScaleAttribute = \"KHR_gaussian_splatting:SCALE\";\r\nconst OpacityAttribute = \"KHR_gaussian_splatting:OPACITY\";\r\nconst ShDegree0Attribute = \"KHR_gaussian_splatting:SH_DEGREE_0_COEF_0\";\r\n\r\n// Number of spherical harmonics coefficients (VEC3) for each degree beyond the DC term.\r\nconst ShCoefficientCountPerDegree = [0, 3, 5, 7];\r\n\r\nfunction Clamp255(value: number): number {\r\n return value <= 0 ? 0 : value >= 255 ? 255 : (value + 0.5) | 0;\r\n}\r\n\r\n/**\r\n * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_gaussian_splatting/README.md)\r\n * Loads a mesh primitive tagged with KHR_gaussian_splatting as a {@link GaussianSplattingMesh}.\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport class KHR_gaussian_splatting implements IGLTFLoaderExtension {\r\n /**\r\n * The name of this extension.\r\n */\r\n public readonly name = NAME;\r\n\r\n /**\r\n * Defines whether this extension is enabled.\r\n */\r\n public enabled: boolean;\r\n\r\n private _loader: GLTFLoader;\r\n\r\n /**\r\n * @internal\r\n */\r\n constructor(loader: GLTFLoader) {\r\n this._loader = loader;\r\n this.enabled = this._loader.isExtensionUsed(NAME);\r\n }\r\n\r\n /** @internal */\r\n public dispose(): void {\r\n (this._loader as any) = null;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n // eslint-disable-next-line no-restricted-syntax\r\n public _loadMeshPrimitiveAsync(\r\n context: string,\r\n name: string,\r\n node: INode,\r\n mesh: IMesh,\r\n primitive: IMeshPrimitive,\r\n assign: (babylonMesh: AbstractMesh) => void\r\n ): Nullable<Promise<AbstractMesh>> {\r\n return GLTFLoader.LoadExtensionAsync<IKHRGaussianSplatting, AbstractMesh>(context, primitive, this.name, async (extensionContext) => {\r\n if (primitive.mode != undefined && primitive.mode !== MeshPrimitiveMode.POINTS) {\r\n throw new Error(`${extensionContext}: Gaussian splatting primitives must use POINTS mode`);\r\n }\r\n\r\n const loader = this._loader;\r\n\r\n const loadAttribute = (attributeName: string): Nullable<Promise<Float32Array>> => {\r\n const accessorIndex = primitive.attributes[attributeName];\r\n if (accessorIndex == undefined) {\r\n return null;\r\n }\r\n const accessor = ArrayItem.Get(`${context}/attributes/${attributeName}`, loader.gltf.accessors, accessorIndex) as IAccessor;\r\n return loader._loadFloatAccessorAsync(`/accessors/${accessor.index}`, accessor);\r\n };\r\n\r\n const positionsPromise = loadAttribute(\"POSITION\");\r\n if (!positionsPromise) {\r\n throw new Error(`${extensionContext}: Gaussian splatting primitive is missing the POSITION attribute`);\r\n }\r\n\r\n // Determine which spherical harmonics degrees are present (all lower degrees must exist per spec).\r\n let shDegree = 0;\r\n const shAttributeNames: string[] = [];\r\n for (let degree = 1; degree <= 3; degree++) {\r\n if (primitive.attributes[`KHR_gaussian_splatting:SH_DEGREE_${degree}_COEF_0`] == undefined) {\r\n break;\r\n }\r\n shDegree = degree;\r\n for (let coef = 0; coef < ShCoefficientCountPerDegree[degree]; coef++) {\r\n shAttributeNames.push(`KHR_gaussian_splatting:SH_DEGREE_${degree}_COEF_${coef}`);\r\n }\r\n }\r\n\r\n // Create the Gaussian Splatting mesh and assign it to the node synchronously (before awaiting the\r\n // attribute data). The base loader wires the node's transform node from this assign call\r\n // synchronously, so it must happen before the first await. The splat data is uploaded afterwards.\r\n const scene = loader.babylonScene;\r\n scene._blockEntityCollection = !!loader._assetContainer;\r\n const gaussianSplattingMesh = new GaussianSplattingMesh(name, null, scene);\r\n gaussianSplattingMesh._parentContainer = loader._assetContainer;\r\n scene._blockEntityCollection = false;\r\n\r\n GLTFLoader.AddPointerMetadata(gaussianSplattingMesh, context);\r\n loader.parent.onMeshLoadedObservable.notifyObservers(gaussianSplattingMesh);\r\n assign(gaussianSplattingMesh);\r\n\r\n const engineCaps = scene.getEngine().getCaps();\r\n\r\n const [positions, rotations, scales, opacities, shDegree0, colors, ...shHigherDegrees] = await Promise.all([\r\n positionsPromise,\r\n loadAttribute(RotationAttribute),\r\n loadAttribute(ScaleAttribute),\r\n loadAttribute(OpacityAttribute),\r\n loadAttribute(ShDegree0Attribute),\r\n loadAttribute(\"COLOR_0\"),\r\n ...shAttributeNames.map((attributeName): Nullable<Promise<Float32Array>> => loadAttribute(attributeName)),\r\n ]);\r\n\r\n const splatCount = positions.length / 3;\r\n const colorStride = colors ? colors.length / splatCount : 0;\r\n\r\n const rowOutputLength = 3 * 4 + 3 * 4 + 4 + 4; // 32 bytes: position(12) scale(12) color RGBA(4) quaternion wxyz(4)\r\n const buffer = new ArrayBuffer(rowOutputLength * splatCount);\r\n const floatView = new Float32Array(buffer);\r\n const byteView = new Uint8Array(buffer);\r\n\r\n // Build spherical harmonics texture buffers for degrees above 0.\r\n let shBuffers: Nullable<Uint8Array[]> = null;\r\n if (shDegree > 0) {\r\n const shVectorCount = (shDegree + 1) * (shDegree + 1) - 1;\r\n const shComponentCount = shVectorCount * 3;\r\n const textureCount = Math.ceil(shComponentCount / 16);\r\n const width = engineCaps.maxTextureSize;\r\n const height = Math.ceil(splatCount / width);\r\n shBuffers = AllocateShBuffers(textureCount, height * width * 4 * 4);\r\n }\r\n\r\n for (let i = 0; i < splatCount; i++) {\r\n const floatBase = i * 8;\r\n const byteBase = i * 32;\r\n const p = i * 3;\r\n\r\n // Position (float32 x3, bytes 0-11)\r\n floatView[floatBase + 0] = positions[p + 0];\r\n floatView[floatBase + 1] = positions[p + 1];\r\n floatView[floatBase + 2] = positions[p + 2];\r\n\r\n // Scale (float32 x3, bytes 12-23) — glTF stores linear scale directly.\r\n floatView[floatBase + 3] = scales ? scales[p + 0] : 1;\r\n floatView[floatBase + 4] = scales ? scales[p + 1] : 1;\r\n floatView[floatBase + 5] = scales ? scales[p + 2] : 1;\r\n\r\n // Color RGB (uint8 x3, bytes 24-26) — reconstructed from the SH DC term, or COLOR_0 as a fallback.\r\n if (shDegree0) {\r\n byteView[byteBase + 24] = Clamp255((0.5 + ShC0 * shDegree0[p + 0]) * 255);\r\n byteView[byteBase + 25] = Clamp255((0.5 + ShC0 * shDegree0[p + 1]) * 255);\r\n byteView[byteBase + 26] = Clamp255((0.5 + ShC0 * shDegree0[p + 2]) * 255);\r\n } else if (colors) {\r\n const c = i * colorStride;\r\n byteView[byteBase + 24] = Clamp255(colors[c + 0] * 255);\r\n byteView[byteBase + 25] = Clamp255(colors[c + 1] * 255);\r\n byteView[byteBase + 26] = Clamp255(colors[c + 2] * 255);\r\n } else {\r\n byteView[byteBase + 24] = 255;\r\n byteView[byteBase + 25] = 255;\r\n byteView[byteBase + 26] = 255;\r\n }\r\n\r\n // Alpha (uint8, byte 27) — opacity is a normalized linear value per spec.\r\n if (opacities) {\r\n byteView[byteBase + 27] = Clamp255(opacities[i] * 255);\r\n } else if (colors && colorStride >= 4) {\r\n byteView[byteBase + 27] = Clamp255(colors[i * colorStride + 3] * 255);\r\n } else {\r\n byteView[byteBase + 27] = 255;\r\n }\r\n\r\n // Quaternion (uint8 x4, bytes 28-31) stored as wxyz encoded as q * 127.5 + 127.5. glTF stores xyzw.\r\n const r = i * 4;\r\n const qx = rotations ? rotations[r + 0] : 0;\r\n const qy = rotations ? rotations[r + 1] : 0;\r\n const qz = rotations ? rotations[r + 2] : 0;\r\n const qw = rotations ? rotations[r + 3] : 1;\r\n byteView[byteBase + 28] = Clamp255(qw * 127.5 + 127.5);\r\n byteView[byteBase + 29] = Clamp255(qx * 127.5 + 127.5);\r\n byteView[byteBase + 30] = Clamp255(qy * 127.5 + 127.5);\r\n byteView[byteBase + 31] = Clamp255(qz * 127.5 + 127.5);\r\n\r\n // Spherical harmonics (coefficient-major, channel-minor) encoded as coeff * 128 + 128.\r\n if (shBuffers) {\r\n const offsetPerSplat = i * 16;\r\n for (let coef = 0; coef < shHigherDegrees.length; coef++) {\r\n const coefData = shHigherDegrees[coef];\r\n if (!coefData) {\r\n continue;\r\n }\r\n for (let channel = 0; channel < 3; channel++) {\r\n const flatIndex = coef * 3 + channel;\r\n const textureIndex = flatIndex >> 4; // Math.floor(flatIndex / 16)\r\n const byteIndexInTexture = flatIndex & 15; // flatIndex % 16\r\n shBuffers[textureIndex][offsetPerSplat + byteIndexInTexture] = Clamp255(coefData[p + channel] * 128 + 128);\r\n }\r\n }\r\n }\r\n }\r\n\r\n await gaussianSplattingMesh.updateDataAsync(buffer, shBuffers ?? undefined, undefined, shDegree || undefined);\r\n\r\n return gaussianSplattingMesh;\r\n });\r\n }\r\n}\r\n\r\nlet _Registered = false;\r\n/**\r\n * Registers the KHR_gaussian_splatting glTF loader extension.\r\n * Safe to call multiple times; only the first call has an effect.\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport function RegisterKHR_gaussian_splatting(): void {\r\n if (_Registered) {\r\n return;\r\n }\r\n _Registered = true;\r\n\r\n unregisterGLTFExtension(NAME);\r\n\r\n registerGLTFExtension(NAME, true, (loader) => new KHR_gaussian_splatting(loader));\r\n}\r\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KHR_gaussian_splatting.types.js","sourceRoot":"","sources":["../../../../../../dev/loaders/src/glTF/2.0/Extensions/KHR_gaussian_splatting.types.ts"],"names":[],"mappings":"","sourcesContent":["export {};\r\n\r\ndeclare module \"../../glTFFileLoader\" {\r\n // eslint-disable-next-line jsdoc/require-jsdoc, @typescript-eslint/naming-convention\r\n export interface GLTFLoaderExtensionOptions {\r\n /**\r\n * Defines options for the KHR_gaussian_splatting extension.\r\n */\r\n // NOTE: Don't use NAME here as it will break the UMD type declarations.\r\n [\"KHR_gaussian_splatting\"]: {};\r\n }\r\n}\r\n"]}
|
|
@@ -44,6 +44,11 @@ export function registerBuiltInGLTFExtensions() {
|
|
|
44
44
|
const { KHR_draco_mesh_compression } = await import("./KHR_draco_mesh_compression.js");
|
|
45
45
|
return new KHR_draco_mesh_compression(loader);
|
|
46
46
|
});
|
|
47
|
+
unregisterGLTFExtension("KHR_gaussian_splatting");
|
|
48
|
+
registerGLTFExtension("KHR_gaussian_splatting", true, async (loader) => {
|
|
49
|
+
const { KHR_gaussian_splatting } = await import("./KHR_gaussian_splatting.js");
|
|
50
|
+
return new KHR_gaussian_splatting(loader);
|
|
51
|
+
});
|
|
47
52
|
unregisterGLTFExtension("KHR_interactivity");
|
|
48
53
|
registerGLTFExtension("KHR_interactivity", true, async (loader) => {
|
|
49
54
|
const { KHR_interactivity } = await import("./KHR_interactivity.js");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic.js","sourceRoot":"","sources":["../../../../../../dev/loaders/src/glTF/2.0/Extensions/dynamic.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\n\r\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\r\n\r\n/**\r\n * Registers the built-in glTF 2.0 extension async factories, which dynamically imports and loads each glTF extension on demand (e.g. only when a glTF model uses the extension).\r\n */\r\nexport function registerBuiltInGLTFExtensions() {\r\n unregisterGLTFExtension(\"EXT_lights_image_based\");\r\n registerGLTFExtension(\"EXT_lights_image_based\", true, async (loader) => {\r\n const { EXT_lights_image_based } = await import(\"./EXT_lights_image_based\");\r\n return new EXT_lights_image_based(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"EXT_mesh_gpu_instancing\");\r\n registerGLTFExtension(\"EXT_mesh_gpu_instancing\", true, async (loader) => {\r\n const { EXT_mesh_gpu_instancing } = await import(\"./EXT_mesh_gpu_instancing\");\r\n return new EXT_mesh_gpu_instancing(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"EXT_meshopt_compression\");\r\n registerGLTFExtension(\"EXT_meshopt_compression\", true, async (loader) => {\r\n const { EXT_meshopt_compression } = await import(\"./EXT_meshopt_compression\");\r\n return new EXT_meshopt_compression(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"EXT_texture_avif\");\r\n registerGLTFExtension(\"EXT_texture_avif\", true, async (loader) => {\r\n const { EXT_texture_avif } = await import(\"./EXT_texture_avif\");\r\n return new EXT_texture_avif(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"EXT_texture_webp\");\r\n registerGLTFExtension(\"EXT_texture_webp\", true, async (loader) => {\r\n const { EXT_texture_webp } = await import(\"./EXT_texture_webp\");\r\n return new EXT_texture_webp(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"ExtrasAsMetadata\");\r\n registerGLTFExtension(\"ExtrasAsMetadata\", false, async (loader) => {\r\n const { ExtrasAsMetadata } = await import(\"./ExtrasAsMetadata\");\r\n return new ExtrasAsMetadata(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_animation_pointer\");\r\n registerGLTFExtension(\"KHR_animation_pointer\", true, async (loader) => {\r\n const { KHR_animation_pointer } = await import(\"./KHR_animation_pointer\");\r\n return new KHR_animation_pointer(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_draco_mesh_compression\");\r\n registerGLTFExtension(\"KHR_draco_mesh_compression\", true, async (loader) => {\r\n const { KHR_draco_mesh_compression } = await import(\"./KHR_draco_mesh_compression\");\r\n return new KHR_draco_mesh_compression(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_interactivity\");\r\n registerGLTFExtension(\"KHR_interactivity\", true, async (loader) => {\r\n const { KHR_interactivity } = await import(\"./KHR_interactivity\");\r\n return new KHR_interactivity(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_lights_punctual\");\r\n registerGLTFExtension(\"KHR_lights_punctual\", true, async (loader) => {\r\n const { KHR_lights } = await import(\"./KHR_lights_punctual\");\r\n return new KHR_lights(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"EXT_lights_area\");\r\n registerGLTFExtension(\"EXT_lights_area\", true, async (loader) => {\r\n const { EXT_lights_area } = await import(\"./EXT_lights_area\");\r\n return new EXT_lights_area(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"EXT_lights_ies\");\r\n registerGLTFExtension(\"EXT_lights_ies\", true, async (loader) => {\r\n const { EXT_lights_ies } = await import(\"./EXT_lights_ies\");\r\n return new EXT_lights_ies(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_anisotropy\");\r\n registerGLTFExtension(\"KHR_materials_anisotropy\", true, async (loader) => {\r\n const { KHR_materials_anisotropy } = await import(\"./KHR_materials_anisotropy\");\r\n return new KHR_materials_anisotropy(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_clearcoat\");\r\n registerGLTFExtension(\"KHR_materials_clearcoat\", true, async (loader) => {\r\n const { KHR_materials_clearcoat } = await import(\"./KHR_materials_clearcoat\");\r\n return new KHR_materials_clearcoat(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_diffuse_roughness\");\r\n registerGLTFExtension(\"KHR_materials_diffuse_roughness\", true, async (loader) => {\r\n const { KHR_materials_diffuse_roughness } = await import(\"./KHR_materials_diffuse_roughness\");\r\n return new KHR_materials_diffuse_roughness(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_diffuse_transmission\");\r\n registerGLTFExtension(\"KHR_materials_diffuse_transmission\", true, async (loader) => {\r\n const { KHR_materials_diffuse_transmission } = await import(\"./KHR_materials_diffuse_transmission\");\r\n return new KHR_materials_diffuse_transmission(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_dispersion\");\r\n registerGLTFExtension(\"KHR_materials_dispersion\", true, async (loader) => {\r\n const { KHR_materials_dispersion } = await import(\"./KHR_materials_dispersion\");\r\n return new KHR_materials_dispersion(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_emissive_strength\");\r\n registerGLTFExtension(\"KHR_materials_emissive_strength\", true, async (loader) => {\r\n const { KHR_materials_emissive_strength } = await import(\"./KHR_materials_emissive_strength\");\r\n return new KHR_materials_emissive_strength(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_ior\");\r\n registerGLTFExtension(\"KHR_materials_ior\", true, async (loader) => {\r\n const { KHR_materials_ior } = await import(\"./KHR_materials_ior\");\r\n return new KHR_materials_ior(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_iridescence\");\r\n registerGLTFExtension(\"KHR_materials_iridescence\", true, async (loader) => {\r\n const { KHR_materials_iridescence } = await import(\"./KHR_materials_iridescence\");\r\n return new KHR_materials_iridescence(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_pbrSpecularGlossiness\");\r\n registerGLTFExtension(\"KHR_materials_pbrSpecularGlossiness\", true, async (loader) => {\r\n const { KHR_materials_pbrSpecularGlossiness } = await import(\"./KHR_materials_pbrSpecularGlossiness\");\r\n return new KHR_materials_pbrSpecularGlossiness(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_sheen\");\r\n registerGLTFExtension(\"KHR_materials_sheen\", true, async (loader) => {\r\n const { KHR_materials_sheen } = await import(\"./KHR_materials_sheen\");\r\n return new KHR_materials_sheen(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_specular\");\r\n registerGLTFExtension(\"KHR_materials_specular\", true, async (loader) => {\r\n const { KHR_materials_specular } = await import(\"./KHR_materials_specular\");\r\n return new KHR_materials_specular(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_transmission\");\r\n registerGLTFExtension(\"KHR_materials_transmission\", true, async (loader) => {\r\n const { KHR_materials_transmission } = await import(\"./KHR_materials_transmission\");\r\n return new KHR_materials_transmission(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_unlit\");\r\n registerGLTFExtension(\"KHR_materials_unlit\", true, async (loader) => {\r\n const { KHR_materials_unlit } = await import(\"./KHR_materials_unlit\");\r\n return new KHR_materials_unlit(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_variants\");\r\n registerGLTFExtension(\"KHR_materials_variants\", true, async (loader) => {\r\n const { KHR_materials_variants } = await import(\"./KHR_materials_variants\");\r\n return new KHR_materials_variants(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_volume\");\r\n registerGLTFExtension(\"KHR_materials_volume\", true, async (loader) => {\r\n const { KHR_materials_volume } = await import(\"./KHR_materials_volume\");\r\n return new KHR_materials_volume(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_mesh_quantization\");\r\n registerGLTFExtension(\"KHR_mesh_quantization\", true, async (loader) => {\r\n const { KHR_mesh_quantization } = await import(\"./KHR_mesh_quantization\");\r\n return new KHR_mesh_quantization(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_texture_basisu\");\r\n registerGLTFExtension(\"KHR_texture_basisu\", true, async (loader) => {\r\n const { KHR_texture_basisu } = await import(\"./KHR_texture_basisu\");\r\n return new KHR_texture_basisu(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_texture_transform\");\r\n registerGLTFExtension(\"KHR_texture_transform\", true, async (loader) => {\r\n const { KHR_texture_transform } = await import(\"./KHR_texture_transform\");\r\n return new KHR_texture_transform(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_xmp_json_ld\");\r\n registerGLTFExtension(\"KHR_xmp_json_ld\", true, async (loader) => {\r\n const { KHR_xmp_json_ld } = await import(\"./KHR_xmp_json_ld\");\r\n return new KHR_xmp_json_ld(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"MSFT_audio_emitter\");\r\n registerGLTFExtension(\"MSFT_audio_emitter\", true, async (loader) => {\r\n const { MSFT_audio_emitter } = await import(\"./MSFT_audio_emitter\");\r\n return new MSFT_audio_emitter(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"MSFT_lod\");\r\n registerGLTFExtension(\"MSFT_lod\", true, async (loader) => {\r\n const { MSFT_lod } = await import(\"./MSFT_lod\");\r\n return new MSFT_lod(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"MSFT_minecraftMesh\");\r\n registerGLTFExtension(\"MSFT_minecraftMesh\", true, async (loader) => {\r\n const { MSFT_minecraftMesh } = await import(\"./MSFT_minecraftMesh\");\r\n return new MSFT_minecraftMesh(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"MSFT_sRGBFactors\");\r\n registerGLTFExtension(\"MSFT_sRGBFactors\", true, async (loader) => {\r\n const { MSFT_sRGBFactors } = await import(\"./MSFT_sRGBFactors\");\r\n return new MSFT_sRGBFactors(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_node_visibility\");\r\n registerGLTFExtension(\"KHR_node_visibility\", true, async (loader) => {\r\n const { KHR_node_visibility } = await import(\"./KHR_node_visibility\");\r\n return new KHR_node_visibility(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_node_hoverability\");\r\n registerGLTFExtension(\"KHR_node_hoverability\", true, async (loader) => {\r\n const { KHR_node_hoverability } = await import(\"./KHR_node_hoverability\");\r\n return new KHR_node_hoverability(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_node_selectability\");\r\n registerGLTFExtension(\"KHR_node_selectability\", true, async (loader) => {\r\n const { KHR_node_selectability } = await import(\"./KHR_node_selectability\");\r\n return new KHR_node_selectability(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_coat\");\r\n registerGLTFExtension(\"KHR_materials_coat\", true, async (loader) => {\r\n const { KHR_materials_coat } = await import(\"./KHR_materials_coat\");\r\n return new KHR_materials_coat(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_fuzz\");\r\n registerGLTFExtension(\"KHR_materials_fuzz\", true, async (loader) => {\r\n const { KHR_materials_fuzz } = await import(\"./KHR_materials_fuzz\");\r\n return new KHR_materials_fuzz(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_volume_scatter\");\r\n registerGLTFExtension(\"KHR_materials_volume_scatter\", true, async (loader) => {\r\n const { KHR_materials_volume_scatter } = await import(\"./KHR_materials_volume_scatter\");\r\n return new KHR_materials_volume_scatter(loader);\r\n });\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"dynamic.js","sourceRoot":"","sources":["../../../../../../dev/loaders/src/glTF/2.0/Extensions/dynamic.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\n\r\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\r\n\r\n/**\r\n * Registers the built-in glTF 2.0 extension async factories, which dynamically imports and loads each glTF extension on demand (e.g. only when a glTF model uses the extension).\r\n */\r\nexport function registerBuiltInGLTFExtensions() {\r\n unregisterGLTFExtension(\"EXT_lights_image_based\");\r\n registerGLTFExtension(\"EXT_lights_image_based\", true, async (loader) => {\r\n const { EXT_lights_image_based } = await import(\"./EXT_lights_image_based\");\r\n return new EXT_lights_image_based(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"EXT_mesh_gpu_instancing\");\r\n registerGLTFExtension(\"EXT_mesh_gpu_instancing\", true, async (loader) => {\r\n const { EXT_mesh_gpu_instancing } = await import(\"./EXT_mesh_gpu_instancing\");\r\n return new EXT_mesh_gpu_instancing(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"EXT_meshopt_compression\");\r\n registerGLTFExtension(\"EXT_meshopt_compression\", true, async (loader) => {\r\n const { EXT_meshopt_compression } = await import(\"./EXT_meshopt_compression\");\r\n return new EXT_meshopt_compression(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"EXT_texture_avif\");\r\n registerGLTFExtension(\"EXT_texture_avif\", true, async (loader) => {\r\n const { EXT_texture_avif } = await import(\"./EXT_texture_avif\");\r\n return new EXT_texture_avif(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"EXT_texture_webp\");\r\n registerGLTFExtension(\"EXT_texture_webp\", true, async (loader) => {\r\n const { EXT_texture_webp } = await import(\"./EXT_texture_webp\");\r\n return new EXT_texture_webp(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"ExtrasAsMetadata\");\r\n registerGLTFExtension(\"ExtrasAsMetadata\", false, async (loader) => {\r\n const { ExtrasAsMetadata } = await import(\"./ExtrasAsMetadata\");\r\n return new ExtrasAsMetadata(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_animation_pointer\");\r\n registerGLTFExtension(\"KHR_animation_pointer\", true, async (loader) => {\r\n const { KHR_animation_pointer } = await import(\"./KHR_animation_pointer\");\r\n return new KHR_animation_pointer(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_draco_mesh_compression\");\r\n registerGLTFExtension(\"KHR_draco_mesh_compression\", true, async (loader) => {\r\n const { KHR_draco_mesh_compression } = await import(\"./KHR_draco_mesh_compression\");\r\n return new KHR_draco_mesh_compression(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_gaussian_splatting\");\r\n registerGLTFExtension(\"KHR_gaussian_splatting\", true, async (loader) => {\r\n const { KHR_gaussian_splatting } = await import(\"./KHR_gaussian_splatting\");\r\n return new KHR_gaussian_splatting(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_interactivity\");\r\n registerGLTFExtension(\"KHR_interactivity\", true, async (loader) => {\r\n const { KHR_interactivity } = await import(\"./KHR_interactivity\");\r\n return new KHR_interactivity(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_lights_punctual\");\r\n registerGLTFExtension(\"KHR_lights_punctual\", true, async (loader) => {\r\n const { KHR_lights } = await import(\"./KHR_lights_punctual\");\r\n return new KHR_lights(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"EXT_lights_area\");\r\n registerGLTFExtension(\"EXT_lights_area\", true, async (loader) => {\r\n const { EXT_lights_area } = await import(\"./EXT_lights_area\");\r\n return new EXT_lights_area(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"EXT_lights_ies\");\r\n registerGLTFExtension(\"EXT_lights_ies\", true, async (loader) => {\r\n const { EXT_lights_ies } = await import(\"./EXT_lights_ies\");\r\n return new EXT_lights_ies(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_anisotropy\");\r\n registerGLTFExtension(\"KHR_materials_anisotropy\", true, async (loader) => {\r\n const { KHR_materials_anisotropy } = await import(\"./KHR_materials_anisotropy\");\r\n return new KHR_materials_anisotropy(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_clearcoat\");\r\n registerGLTFExtension(\"KHR_materials_clearcoat\", true, async (loader) => {\r\n const { KHR_materials_clearcoat } = await import(\"./KHR_materials_clearcoat\");\r\n return new KHR_materials_clearcoat(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_diffuse_roughness\");\r\n registerGLTFExtension(\"KHR_materials_diffuse_roughness\", true, async (loader) => {\r\n const { KHR_materials_diffuse_roughness } = await import(\"./KHR_materials_diffuse_roughness\");\r\n return new KHR_materials_diffuse_roughness(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_diffuse_transmission\");\r\n registerGLTFExtension(\"KHR_materials_diffuse_transmission\", true, async (loader) => {\r\n const { KHR_materials_diffuse_transmission } = await import(\"./KHR_materials_diffuse_transmission\");\r\n return new KHR_materials_diffuse_transmission(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_dispersion\");\r\n registerGLTFExtension(\"KHR_materials_dispersion\", true, async (loader) => {\r\n const { KHR_materials_dispersion } = await import(\"./KHR_materials_dispersion\");\r\n return new KHR_materials_dispersion(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_emissive_strength\");\r\n registerGLTFExtension(\"KHR_materials_emissive_strength\", true, async (loader) => {\r\n const { KHR_materials_emissive_strength } = await import(\"./KHR_materials_emissive_strength\");\r\n return new KHR_materials_emissive_strength(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_ior\");\r\n registerGLTFExtension(\"KHR_materials_ior\", true, async (loader) => {\r\n const { KHR_materials_ior } = await import(\"./KHR_materials_ior\");\r\n return new KHR_materials_ior(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_iridescence\");\r\n registerGLTFExtension(\"KHR_materials_iridescence\", true, async (loader) => {\r\n const { KHR_materials_iridescence } = await import(\"./KHR_materials_iridescence\");\r\n return new KHR_materials_iridescence(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_pbrSpecularGlossiness\");\r\n registerGLTFExtension(\"KHR_materials_pbrSpecularGlossiness\", true, async (loader) => {\r\n const { KHR_materials_pbrSpecularGlossiness } = await import(\"./KHR_materials_pbrSpecularGlossiness\");\r\n return new KHR_materials_pbrSpecularGlossiness(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_sheen\");\r\n registerGLTFExtension(\"KHR_materials_sheen\", true, async (loader) => {\r\n const { KHR_materials_sheen } = await import(\"./KHR_materials_sheen\");\r\n return new KHR_materials_sheen(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_specular\");\r\n registerGLTFExtension(\"KHR_materials_specular\", true, async (loader) => {\r\n const { KHR_materials_specular } = await import(\"./KHR_materials_specular\");\r\n return new KHR_materials_specular(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_transmission\");\r\n registerGLTFExtension(\"KHR_materials_transmission\", true, async (loader) => {\r\n const { KHR_materials_transmission } = await import(\"./KHR_materials_transmission\");\r\n return new KHR_materials_transmission(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_unlit\");\r\n registerGLTFExtension(\"KHR_materials_unlit\", true, async (loader) => {\r\n const { KHR_materials_unlit } = await import(\"./KHR_materials_unlit\");\r\n return new KHR_materials_unlit(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_variants\");\r\n registerGLTFExtension(\"KHR_materials_variants\", true, async (loader) => {\r\n const { KHR_materials_variants } = await import(\"./KHR_materials_variants\");\r\n return new KHR_materials_variants(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_volume\");\r\n registerGLTFExtension(\"KHR_materials_volume\", true, async (loader) => {\r\n const { KHR_materials_volume } = await import(\"./KHR_materials_volume\");\r\n return new KHR_materials_volume(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_mesh_quantization\");\r\n registerGLTFExtension(\"KHR_mesh_quantization\", true, async (loader) => {\r\n const { KHR_mesh_quantization } = await import(\"./KHR_mesh_quantization\");\r\n return new KHR_mesh_quantization(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_texture_basisu\");\r\n registerGLTFExtension(\"KHR_texture_basisu\", true, async (loader) => {\r\n const { KHR_texture_basisu } = await import(\"./KHR_texture_basisu\");\r\n return new KHR_texture_basisu(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_texture_transform\");\r\n registerGLTFExtension(\"KHR_texture_transform\", true, async (loader) => {\r\n const { KHR_texture_transform } = await import(\"./KHR_texture_transform\");\r\n return new KHR_texture_transform(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_xmp_json_ld\");\r\n registerGLTFExtension(\"KHR_xmp_json_ld\", true, async (loader) => {\r\n const { KHR_xmp_json_ld } = await import(\"./KHR_xmp_json_ld\");\r\n return new KHR_xmp_json_ld(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"MSFT_audio_emitter\");\r\n registerGLTFExtension(\"MSFT_audio_emitter\", true, async (loader) => {\r\n const { MSFT_audio_emitter } = await import(\"./MSFT_audio_emitter\");\r\n return new MSFT_audio_emitter(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"MSFT_lod\");\r\n registerGLTFExtension(\"MSFT_lod\", true, async (loader) => {\r\n const { MSFT_lod } = await import(\"./MSFT_lod\");\r\n return new MSFT_lod(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"MSFT_minecraftMesh\");\r\n registerGLTFExtension(\"MSFT_minecraftMesh\", true, async (loader) => {\r\n const { MSFT_minecraftMesh } = await import(\"./MSFT_minecraftMesh\");\r\n return new MSFT_minecraftMesh(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"MSFT_sRGBFactors\");\r\n registerGLTFExtension(\"MSFT_sRGBFactors\", true, async (loader) => {\r\n const { MSFT_sRGBFactors } = await import(\"./MSFT_sRGBFactors\");\r\n return new MSFT_sRGBFactors(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_node_visibility\");\r\n registerGLTFExtension(\"KHR_node_visibility\", true, async (loader) => {\r\n const { KHR_node_visibility } = await import(\"./KHR_node_visibility\");\r\n return new KHR_node_visibility(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_node_hoverability\");\r\n registerGLTFExtension(\"KHR_node_hoverability\", true, async (loader) => {\r\n const { KHR_node_hoverability } = await import(\"./KHR_node_hoverability\");\r\n return new KHR_node_hoverability(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_node_selectability\");\r\n registerGLTFExtension(\"KHR_node_selectability\", true, async (loader) => {\r\n const { KHR_node_selectability } = await import(\"./KHR_node_selectability\");\r\n return new KHR_node_selectability(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_coat\");\r\n registerGLTFExtension(\"KHR_materials_coat\", true, async (loader) => {\r\n const { KHR_materials_coat } = await import(\"./KHR_materials_coat\");\r\n return new KHR_materials_coat(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_fuzz\");\r\n registerGLTFExtension(\"KHR_materials_fuzz\", true, async (loader) => {\r\n const { KHR_materials_fuzz } = await import(\"./KHR_materials_fuzz\");\r\n return new KHR_materials_fuzz(loader);\r\n });\r\n\r\n unregisterGLTFExtension(\"KHR_materials_volume_scatter\");\r\n registerGLTFExtension(\"KHR_materials_volume_scatter\", true, async (loader) => {\r\n const { KHR_materials_volume_scatter } = await import(\"./KHR_materials_volume_scatter\");\r\n return new KHR_materials_volume_scatter(loader);\r\n });\r\n}\r\n"]}
|
|
@@ -6,6 +6,7 @@ export * from "./EXT_texture_webp.js";
|
|
|
6
6
|
export * from "./EXT_texture_avif.js";
|
|
7
7
|
export * from "./EXT_lights_ies.js";
|
|
8
8
|
export * from "./KHR_draco_mesh_compression.js";
|
|
9
|
+
export * from "./KHR_gaussian_splatting.js";
|
|
9
10
|
export * from "./KHR_lights_punctual.js";
|
|
10
11
|
export * from "./EXT_lights_area.js";
|
|
11
12
|
export * from "./KHR_materials_pbrSpecularGlossiness.js";
|
|
@@ -7,6 +7,7 @@ export * from "./EXT_texture_webp.js";
|
|
|
7
7
|
export * from "./EXT_texture_avif.js";
|
|
8
8
|
export * from "./EXT_lights_ies.js";
|
|
9
9
|
export * from "./KHR_draco_mesh_compression.js";
|
|
10
|
+
export * from "./KHR_gaussian_splatting.js";
|
|
10
11
|
export * from "./KHR_lights_punctual.js";
|
|
11
12
|
export * from "./EXT_lights_area.js";
|
|
12
13
|
export * from "./KHR_materials_pbrSpecularGlossiness.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../dev/loaders/src/glTF/2.0/Extensions/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uCAAuC,CAAC;AACtD,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sCAAsC,CAAC;AACrD,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/no-restricted-imports */\r\nexport * from \"./objectModelMapping\";\r\nexport * from \"./EXT_lights_image_based\";\r\nexport * from \"./EXT_mesh_gpu_instancing\";\r\nexport * from \"./EXT_meshopt_compression\";\r\nexport * from \"./EXT_texture_webp\";\r\nexport * from \"./EXT_texture_avif\";\r\nexport * from \"./EXT_lights_ies\";\r\nexport * from \"./KHR_draco_mesh_compression\";\r\nexport * from \"./KHR_lights_punctual\";\r\nexport * from \"./EXT_lights_area\";\r\nexport * from \"./KHR_materials_pbrSpecularGlossiness\";\r\nexport * from \"./KHR_materials_unlit\";\r\nexport * from \"./KHR_materials_clearcoat\";\r\nexport * from \"./KHR_materials_coat\";\r\nexport * from \"./KHR_materials_iridescence\";\r\nexport * from \"./KHR_materials_anisotropy\";\r\nexport * from \"./KHR_materials_emissive_strength\";\r\nexport * from \"./KHR_materials_sheen\";\r\nexport * from \"./KHR_materials_fuzz\";\r\nexport * from \"./KHR_materials_specular\";\r\nexport * from \"./KHR_materials_ior\";\r\nexport * from \"./KHR_materials_variants\";\r\nexport * from \"./transmissionHelper\";\r\nexport * from \"./KHR_materials_transmission\";\r\nexport * from \"./KHR_materials_diffuse_transmission\";\r\nexport * from \"./KHR_materials_volume\";\r\nexport * from \"./KHR_materials_volume_scatter\";\r\nexport * from \"./KHR_materials_dispersion\";\r\nexport * from \"./KHR_materials_diffuse_roughness\";\r\nexport * from \"./KHR_mesh_quantization\";\r\nexport * from \"./KHR_texture_basisu\";\r\nexport * from \"./KHR_texture_transform\";\r\nexport * from \"./KHR_xmp_json_ld\";\r\nexport * from \"./KHR_animation_pointer\";\r\nexport * from \"./MSFT_audio_emitter\";\r\nexport * from \"./MSFT_lod\";\r\nexport * from \"./MSFT_minecraftMesh\";\r\nexport * from \"./MSFT_sRGBFactors\";\r\nexport * from \"./KHR_interactivity\";\r\nexport * from \"./KHR_node_visibility\";\r\nexport * from \"./KHR_node_selectability\";\r\nexport * from \"./KHR_node_hoverability\";\r\nexport * from \"./ExtrasAsMetadata\";\r\nexport * from \"./KHR_interactivity/index\";\r\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../dev/loaders/src/glTF/2.0/Extensions/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uCAAuC,CAAC;AACtD,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sCAAsC,CAAC;AACrD,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/no-restricted-imports */\r\nexport * from \"./objectModelMapping\";\r\nexport * from \"./EXT_lights_image_based\";\r\nexport * from \"./EXT_mesh_gpu_instancing\";\r\nexport * from \"./EXT_meshopt_compression\";\r\nexport * from \"./EXT_texture_webp\";\r\nexport * from \"./EXT_texture_avif\";\r\nexport * from \"./EXT_lights_ies\";\r\nexport * from \"./KHR_draco_mesh_compression\";\r\nexport * from \"./KHR_gaussian_splatting\";\r\nexport * from \"./KHR_lights_punctual\";\r\nexport * from \"./EXT_lights_area\";\r\nexport * from \"./KHR_materials_pbrSpecularGlossiness\";\r\nexport * from \"./KHR_materials_unlit\";\r\nexport * from \"./KHR_materials_clearcoat\";\r\nexport * from \"./KHR_materials_coat\";\r\nexport * from \"./KHR_materials_iridescence\";\r\nexport * from \"./KHR_materials_anisotropy\";\r\nexport * from \"./KHR_materials_emissive_strength\";\r\nexport * from \"./KHR_materials_sheen\";\r\nexport * from \"./KHR_materials_fuzz\";\r\nexport * from \"./KHR_materials_specular\";\r\nexport * from \"./KHR_materials_ior\";\r\nexport * from \"./KHR_materials_variants\";\r\nexport * from \"./transmissionHelper\";\r\nexport * from \"./KHR_materials_transmission\";\r\nexport * from \"./KHR_materials_diffuse_transmission\";\r\nexport * from \"./KHR_materials_volume\";\r\nexport * from \"./KHR_materials_volume_scatter\";\r\nexport * from \"./KHR_materials_dispersion\";\r\nexport * from \"./KHR_materials_diffuse_roughness\";\r\nexport * from \"./KHR_mesh_quantization\";\r\nexport * from \"./KHR_texture_basisu\";\r\nexport * from \"./KHR_texture_transform\";\r\nexport * from \"./KHR_xmp_json_ld\";\r\nexport * from \"./KHR_animation_pointer\";\r\nexport * from \"./MSFT_audio_emitter\";\r\nexport * from \"./MSFT_lod\";\r\nexport * from \"./MSFT_minecraftMesh\";\r\nexport * from \"./MSFT_sRGBFactors\";\r\nexport * from \"./KHR_interactivity\";\r\nexport * from \"./KHR_node_visibility\";\r\nexport * from \"./KHR_node_selectability\";\r\nexport * from \"./KHR_node_hoverability\";\r\nexport * from \"./ExtrasAsMetadata\";\r\nexport * from \"./KHR_interactivity/index\";\r\n"]}
|
|
@@ -7,6 +7,7 @@ export * from "./EXT_texture_webp.pure.js";
|
|
|
7
7
|
export * from "./EXT_texture_avif.pure.js";
|
|
8
8
|
export * from "./EXT_lights_ies.pure.js";
|
|
9
9
|
export * from "./KHR_draco_mesh_compression.pure.js";
|
|
10
|
+
export * from "./KHR_gaussian_splatting.pure.js";
|
|
10
11
|
export * from "./KHR_lights_punctual.pure.js";
|
|
11
12
|
export * from "./EXT_lights_area.pure.js";
|
|
12
13
|
export * from "./KHR_materials_pbrSpecularGlossiness.pure.js";
|
|
@@ -8,6 +8,7 @@ export * from "./EXT_texture_webp.pure.js";
|
|
|
8
8
|
export * from "./EXT_texture_avif.pure.js";
|
|
9
9
|
export * from "./EXT_lights_ies.pure.js";
|
|
10
10
|
export * from "./KHR_draco_mesh_compression.pure.js";
|
|
11
|
+
export * from "./KHR_gaussian_splatting.pure.js";
|
|
11
12
|
export * from "./KHR_lights_punctual.pure.js";
|
|
12
13
|
export * from "./EXT_lights_area.pure.js";
|
|
13
14
|
export * from "./KHR_materials_pbrSpecularGlossiness.pure.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pure.js","sourceRoot":"","sources":["../../../../../../dev/loaders/src/glTF/2.0/Extensions/pure.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,6DAA6D;AAC7D,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,wCAAwC,CAAC;AACvD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,mCAAmC,CAAC;AAClD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,wCAAwC,CAAC;AACvD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC","sourcesContent":["/** Pure barrel — re-exports only side-effect-free modules */\n/* eslint-disable @typescript-eslint/no-restricted-imports */\nexport * from \"./objectModelMapping\";\nexport * from \"./EXT_lights_image_based.pure\";\nexport * from \"./EXT_mesh_gpu_instancing.pure\";\nexport * from \"./EXT_meshopt_compression.pure\";\nexport * from \"./EXT_texture_webp.pure\";\nexport * from \"./EXT_texture_avif.pure\";\nexport * from \"./EXT_lights_ies.pure\";\nexport * from \"./KHR_draco_mesh_compression.pure\";\nexport * from \"./KHR_lights_punctual.pure\";\nexport * from \"./EXT_lights_area.pure\";\nexport * from \"./KHR_materials_pbrSpecularGlossiness.pure\";\nexport * from \"./KHR_materials_unlit.pure\";\nexport * from \"./KHR_materials_clearcoat.pure\";\nexport * from \"./KHR_materials_coat.pure\";\nexport * from \"./KHR_materials_iridescence.pure\";\nexport * from \"./KHR_materials_anisotropy.pure\";\nexport * from \"./KHR_materials_emissive_strength.pure\";\nexport * from \"./KHR_materials_sheen.pure\";\nexport * from \"./KHR_materials_fuzz.pure\";\nexport * from \"./KHR_materials_specular.pure\";\nexport * from \"./KHR_materials_ior.pure\";\nexport * from \"./KHR_materials_variants.pure\";\nexport * from \"./transmissionHelper\";\nexport * from \"./KHR_materials_transmission.pure\";\nexport * from \"./KHR_materials_diffuse_transmission.pure\";\nexport * from \"./KHR_materials_volume.pure\";\nexport * from \"./KHR_materials_volume_scatter.pure\";\nexport * from \"./KHR_materials_dispersion.pure\";\nexport * from \"./KHR_materials_diffuse_roughness.pure\";\nexport * from \"./KHR_mesh_quantization.pure\";\nexport * from \"./KHR_texture_basisu.pure\";\nexport * from \"./KHR_texture_transform.pure\";\nexport * from \"./KHR_xmp_json_ld.pure\";\nexport * from \"./KHR_animation_pointer.pure\";\nexport * from \"./MSFT_audio_emitter.pure\";\nexport * from \"./MSFT_lod.pure\";\nexport * from \"./MSFT_minecraftMesh.pure\";\nexport * from \"./MSFT_sRGBFactors.pure\";\nexport * from \"./KHR_interactivity.pure\";\nexport * from \"./KHR_node_visibility.pure\";\nexport * from \"./KHR_node_selectability.pure\";\nexport * from \"./KHR_node_hoverability.pure\";\nexport * from \"./ExtrasAsMetadata.pure\";\nexport * from \"./KHR_interactivity/pure\";\n"]}
|
|
1
|
+
{"version":3,"file":"pure.js","sourceRoot":"","sources":["../../../../../../dev/loaders/src/glTF/2.0/Extensions/pure.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,6DAA6D;AAC7D,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,wCAAwC,CAAC;AACvD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,mCAAmC,CAAC;AAClD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,wCAAwC,CAAC;AACvD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC","sourcesContent":["/** Pure barrel — re-exports only side-effect-free modules */\n/* eslint-disable @typescript-eslint/no-restricted-imports */\nexport * from \"./objectModelMapping\";\nexport * from \"./EXT_lights_image_based.pure\";\nexport * from \"./EXT_mesh_gpu_instancing.pure\";\nexport * from \"./EXT_meshopt_compression.pure\";\nexport * from \"./EXT_texture_webp.pure\";\nexport * from \"./EXT_texture_avif.pure\";\nexport * from \"./EXT_lights_ies.pure\";\nexport * from \"./KHR_draco_mesh_compression.pure\";\nexport * from \"./KHR_gaussian_splatting.pure\";\nexport * from \"./KHR_lights_punctual.pure\";\nexport * from \"./EXT_lights_area.pure\";\nexport * from \"./KHR_materials_pbrSpecularGlossiness.pure\";\nexport * from \"./KHR_materials_unlit.pure\";\nexport * from \"./KHR_materials_clearcoat.pure\";\nexport * from \"./KHR_materials_coat.pure\";\nexport * from \"./KHR_materials_iridescence.pure\";\nexport * from \"./KHR_materials_anisotropy.pure\";\nexport * from \"./KHR_materials_emissive_strength.pure\";\nexport * from \"./KHR_materials_sheen.pure\";\nexport * from \"./KHR_materials_fuzz.pure\";\nexport * from \"./KHR_materials_specular.pure\";\nexport * from \"./KHR_materials_ior.pure\";\nexport * from \"./KHR_materials_variants.pure\";\nexport * from \"./transmissionHelper\";\nexport * from \"./KHR_materials_transmission.pure\";\nexport * from \"./KHR_materials_diffuse_transmission.pure\";\nexport * from \"./KHR_materials_volume.pure\";\nexport * from \"./KHR_materials_volume_scatter.pure\";\nexport * from \"./KHR_materials_dispersion.pure\";\nexport * from \"./KHR_materials_diffuse_roughness.pure\";\nexport * from \"./KHR_mesh_quantization.pure\";\nexport * from \"./KHR_texture_basisu.pure\";\nexport * from \"./KHR_texture_transform.pure\";\nexport * from \"./KHR_xmp_json_ld.pure\";\nexport * from \"./KHR_animation_pointer.pure\";\nexport * from \"./MSFT_audio_emitter.pure\";\nexport * from \"./MSFT_lod.pure\";\nexport * from \"./MSFT_minecraftMesh.pure\";\nexport * from \"./MSFT_sRGBFactors.pure\";\nexport * from \"./KHR_interactivity.pure\";\nexport * from \"./KHR_node_visibility.pure\";\nexport * from \"./KHR_node_selectability.pure\";\nexport * from \"./KHR_node_hoverability.pure\";\nexport * from \"./ExtrasAsMetadata.pure\";\nexport * from \"./KHR_interactivity/pure\";\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@babylonjs/loaders",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.16.0",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"module": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -18,10 +18,10 @@
|
|
|
18
18
|
"postcompile": "build-tools -c add-js-to-es6"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
|
-
"@babylonjs/core": "9.
|
|
21
|
+
"@babylonjs/core": "9.16.0",
|
|
22
22
|
"@dev/build-tools": "^1.0.0",
|
|
23
23
|
"@dev/loaders": "^1.0.0",
|
|
24
|
-
"babylonjs-gltf2interface": "9.
|
|
24
|
+
"babylonjs-gltf2interface": "9.16.0"
|
|
25
25
|
},
|
|
26
26
|
"peerDependencies": {
|
|
27
27
|
"@babylonjs/core": "^9.0.0",
|
|
@@ -60,6 +60,7 @@
|
|
|
60
60
|
"glTF/2.0/Extensions/EXT_texture_avif.js",
|
|
61
61
|
"glTF/2.0/Extensions/EXT_texture_webp.js",
|
|
62
62
|
"glTF/2.0/Extensions/KHR_animation_pointer.js",
|
|
63
|
+
"glTF/2.0/Extensions/KHR_gaussian_splatting.js",
|
|
63
64
|
"glTF/2.0/Extensions/KHR_interactivity.js",
|
|
64
65
|
"glTF/2.0/Extensions/KHR_lights_punctual.js",
|
|
65
66
|
"glTF/2.0/Extensions/KHR_materials_anisotropy.js",
|