@onerjs/loaders 8.27.3 → 8.27.5
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/SPLAT/sog.d.ts +84 -0
- package/SPLAT/sog.js +295 -0
- package/SPLAT/sog.js.map +1 -0
- package/SPLAT/splatDefs.d.ts +22 -0
- package/SPLAT/splatDefs.js +11 -0
- package/SPLAT/splatDefs.js.map +1 -0
- package/SPLAT/splatFileLoader.d.ts +7 -1
- package/SPLAT/splatFileLoader.js +61 -176
- package/SPLAT/splatFileLoader.js.map +1 -1
- package/SPLAT/splatFileLoader.metadata.d.ts +6 -0
- package/SPLAT/splatFileLoader.metadata.js +4 -0
- package/SPLAT/splatFileLoader.metadata.js.map +1 -1
- package/SPLAT/spz.d.ts +11 -0
- package/SPLAT/spz.js +177 -0
- package/SPLAT/spz.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_materials_clearcoat.d.ts +3 -0
- package/glTF/2.0/Extensions/KHR_materials_clearcoat.js +74 -24
- package/glTF/2.0/Extensions/KHR_materials_clearcoat.js.map +1 -1
- package/glTF/2.0/Extensions/MSFT_minecraftMesh.js +1 -1
- package/glTF/2.0/Extensions/MSFT_minecraftMesh.js.map +1 -1
- package/glTF/2.0/Extensions/index.d.ts +0 -3
- package/glTF/2.0/Extensions/index.js +0 -3
- package/glTF/2.0/Extensions/index.js.map +1 -1
- package/glTF/2.0/glTFLoader.d.ts +5 -8
- package/glTF/2.0/glTFLoader.js +42 -54
- package/glTF/2.0/glTFLoader.js.map +1 -1
- package/glTF/2.0/materialLoadingAdapter.d.ts +4 -0
- package/glTF/2.0/materialLoadingAdapter.js.map +1 -1
- package/glTF/2.0/openPbrMaterialLoadingAdapter.d.ts +4 -0
- package/glTF/2.0/openPbrMaterialLoadingAdapter.js +6 -0
- package/glTF/2.0/openPbrMaterialLoadingAdapter.js.map +1 -1
- package/glTF/2.0/pbrMaterialLoadingAdapter.d.ts +4 -0
- package/glTF/2.0/pbrMaterialLoadingAdapter.js +6 -0
- package/glTF/2.0/pbrMaterialLoadingAdapter.js.map +1 -1
- package/package.json +3 -3
- package/glTF/2.0/Extensions/KHR_materials_clearcoat_anisotropy.d.ts +0 -42
- package/glTF/2.0/Extensions/KHR_materials_clearcoat_anisotropy.js +0 -66
- package/glTF/2.0/Extensions/KHR_materials_clearcoat_anisotropy.js.map +0 -1
- package/glTF/2.0/Extensions/KHR_materials_clearcoat_color.d.ts +0 -42
- package/glTF/2.0/Extensions/KHR_materials_clearcoat_color.js +0 -62
- package/glTF/2.0/Extensions/KHR_materials_clearcoat_color.js.map +0 -1
- package/glTF/2.0/Extensions/KHR_materials_clearcoat_darkening.d.ts +0 -43
- package/glTF/2.0/Extensions/KHR_materials_clearcoat_darkening.js +0 -62
- package/glTF/2.0/Extensions/KHR_materials_clearcoat_darkening.js.map +0 -1
package/glTF/2.0/glTFLoader.js
CHANGED
|
@@ -192,9 +192,7 @@ export class GLTFLoader {
|
|
|
192
192
|
this._postSceneLoadActions = new Array();
|
|
193
193
|
this._materialAdapterCache = new WeakMap();
|
|
194
194
|
/** @internal */
|
|
195
|
-
this.
|
|
196
|
-
/** @internal */
|
|
197
|
-
this._pbrMaterialAdapterClass = null;
|
|
195
|
+
this._pbrMaterialImpl = null;
|
|
198
196
|
this._parent = parent;
|
|
199
197
|
}
|
|
200
198
|
/**
|
|
@@ -206,8 +204,8 @@ export class GLTFLoader {
|
|
|
206
204
|
_getOrCreateMaterialAdapter(material) {
|
|
207
205
|
let adapter = this._materialAdapterCache.get(material);
|
|
208
206
|
if (!adapter) {
|
|
209
|
-
if (this.
|
|
210
|
-
adapter = new this.
|
|
207
|
+
if (this._pbrMaterialImpl) {
|
|
208
|
+
adapter = new this._pbrMaterialImpl.adapterClass(material);
|
|
211
209
|
}
|
|
212
210
|
else {
|
|
213
211
|
throw new Error(`Appropriate material adapter class not found`);
|
|
@@ -291,6 +289,21 @@ export class GLTFLoader {
|
|
|
291
289
|
this._fileName = fileName;
|
|
292
290
|
this._allMaterialsDirtyRequired = false;
|
|
293
291
|
await this._loadExtensionsAsync();
|
|
292
|
+
// NOTE: Explicitly check _pbrMaterialImpl for null as a value of false means don't use PBR materials at all.
|
|
293
|
+
if (!this.parent.skipMaterials && this._pbrMaterialImpl == null) {
|
|
294
|
+
if (this.parent.useOpenPBR) {
|
|
295
|
+
this._pbrMaterialImpl = {
|
|
296
|
+
materialClass: (await import("@onerjs/core/Materials/PBR/openPbrMaterial.js")).OpenPBRMaterial,
|
|
297
|
+
adapterClass: (await import("./openPbrMaterialLoadingAdapter.js")).OpenPBRMaterialLoadingAdapter,
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
301
|
+
this._pbrMaterialImpl = {
|
|
302
|
+
materialClass: (await import("@onerjs/core/Materials/PBR/pbrMaterial.js")).PBRMaterial,
|
|
303
|
+
adapterClass: (await import("./pbrMaterialLoadingAdapter.js")).PBRMaterialLoadingAdapter,
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
}
|
|
294
307
|
const loadingToReadyCounterName = `${GLTFLoaderState[GLTFLoaderState.LOADING]} => ${GLTFLoaderState[GLTFLoaderState.READY]}`;
|
|
295
308
|
const loadingToCompleteCounterName = `${GLTFLoaderState[GLTFLoaderState.LOADING]} => ${GLTFLoaderState[GLTFLoaderState.COMPLETE]}`;
|
|
296
309
|
this._parent._startPerformanceCounter(loadingToReadyCounterName);
|
|
@@ -849,28 +862,24 @@ export class GLTFLoader {
|
|
|
849
862
|
this._babylonScene._blockEntityCollection = false;
|
|
850
863
|
});
|
|
851
864
|
}));
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
this.
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
})());
|
|
865
|
+
if (!this.parent.skipMaterials) {
|
|
866
|
+
const babylonDrawMode = GLTFLoader._GetDrawMode(context, primitive.mode);
|
|
867
|
+
if (primitive.material == undefined) {
|
|
868
|
+
let babylonMaterial = this._defaultBabylonMaterialData[babylonDrawMode];
|
|
869
|
+
if (!babylonMaterial) {
|
|
870
|
+
babylonMaterial = this._createDefaultMaterial("__GLTFLoader._default", babylonDrawMode);
|
|
871
|
+
this._parent.onMaterialLoadedObservable.notifyObservers(babylonMaterial);
|
|
872
|
+
this._defaultBabylonMaterialData[babylonDrawMode] = babylonMaterial;
|
|
873
|
+
}
|
|
874
|
+
babylonMesh.material = babylonMaterial;
|
|
863
875
|
}
|
|
864
876
|
else {
|
|
865
|
-
|
|
877
|
+
const material = ArrayItem.Get(`${context}/material`, this._gltf.materials, primitive.material);
|
|
878
|
+
promises.push(this._loadMaterialAsync(`/materials/${material.index}`, material, babylonMesh, babylonDrawMode, (babylonMaterial) => {
|
|
879
|
+
babylonMesh.material = babylonMaterial;
|
|
880
|
+
}));
|
|
866
881
|
}
|
|
867
882
|
}
|
|
868
|
-
else if (!this.parent.skipMaterials) {
|
|
869
|
-
const material = ArrayItem.Get(`${context}/material`, this._gltf.materials, primitive.material);
|
|
870
|
-
promises.push(this._loadMaterialAsync(`/materials/${material.index}`, material, babylonMesh, babylonDrawMode, (babylonMaterial) => {
|
|
871
|
-
babylonMesh.material = babylonMaterial;
|
|
872
|
-
}));
|
|
873
|
-
}
|
|
874
883
|
promise = Promise.all(promises);
|
|
875
884
|
if (shouldInstance) {
|
|
876
885
|
primitive._instanceData = {
|
|
@@ -1766,37 +1775,16 @@ export class GLTFLoader {
|
|
|
1766
1775
|
/**
|
|
1767
1776
|
* @internal
|
|
1768
1777
|
*/
|
|
1769
|
-
async _ensurePbrMaterialClassesAsync() {
|
|
1770
|
-
if (!this._pbrMaterialClass || !this._pbrMaterialAdapterClass) {
|
|
1771
|
-
const openpbrExt = this._extensions.find((extension) => extension.name === "KHR_materials_openpbr");
|
|
1772
|
-
if (this.parent.useOpenPBR || openpbrExt) {
|
|
1773
|
-
const materialAdapterModule = await import("./openPbrMaterialLoadingAdapter.js");
|
|
1774
|
-
this._pbrMaterialAdapterClass = materialAdapterModule.OpenPBRMaterialLoadingAdapter;
|
|
1775
|
-
const materialModule = await import("@onerjs/core/Materials/PBR/openPbrMaterial.js");
|
|
1776
|
-
this._pbrMaterialClass = materialModule.OpenPBRMaterial;
|
|
1777
|
-
}
|
|
1778
|
-
else {
|
|
1779
|
-
const materialAdapterModule = await import("./pbrMaterialLoadingAdapter.js");
|
|
1780
|
-
this._pbrMaterialAdapterClass = materialAdapterModule.PBRMaterialLoadingAdapter;
|
|
1781
|
-
const materialModule = await import("@onerjs/core/Materials/PBR/pbrMaterial.js");
|
|
1782
|
-
this._pbrMaterialClass = materialModule.PBRMaterial;
|
|
1783
|
-
}
|
|
1784
|
-
}
|
|
1785
|
-
}
|
|
1786
1778
|
async _loadMaterialAsync(context, material, babylonMesh, babylonDrawMode, assign = () => { }) {
|
|
1787
1779
|
const extensionPromise = this._extensionsLoadMaterialAsync(context, material, babylonMesh, babylonDrawMode, assign);
|
|
1788
1780
|
if (extensionPromise) {
|
|
1789
1781
|
return await extensionPromise;
|
|
1790
1782
|
}
|
|
1791
|
-
// Ensure PBR/OpenPBR classes are available before creating materials
|
|
1792
|
-
await this._ensurePbrMaterialClassesAsync();
|
|
1793
1783
|
material._data = material._data || {};
|
|
1794
1784
|
let babylonData = material._data[babylonDrawMode];
|
|
1795
1785
|
if (!babylonData) {
|
|
1796
1786
|
this.logOpen(`${context} ${material.name || ""}`);
|
|
1797
1787
|
const babylonMaterial = this.createMaterial(context, material, babylonDrawMode);
|
|
1798
|
-
// Create the adapter for this material immediately after creation
|
|
1799
|
-
this._getOrCreateMaterialAdapter(babylonMaterial);
|
|
1800
1788
|
babylonData = {
|
|
1801
1789
|
babylonMaterial: babylonMaterial,
|
|
1802
1790
|
babylonMeshes: [],
|
|
@@ -1821,15 +1809,15 @@ export class GLTFLoader {
|
|
|
1821
1809
|
return babylonData.babylonMaterial;
|
|
1822
1810
|
}
|
|
1823
1811
|
_createDefaultMaterial(name, babylonDrawMode) {
|
|
1824
|
-
if (!this.
|
|
1812
|
+
if (!this._pbrMaterialImpl) {
|
|
1825
1813
|
throw new Error("PBR Material class not loaded");
|
|
1826
1814
|
}
|
|
1827
1815
|
this._babylonScene._blockEntityCollection = !!this._assetContainer;
|
|
1828
|
-
const babylonMaterial = new this.
|
|
1816
|
+
const babylonMaterial = new this._pbrMaterialImpl.materialClass(name, this._babylonScene);
|
|
1829
1817
|
babylonMaterial._parentContainer = this._assetContainer;
|
|
1830
1818
|
this._babylonScene._blockEntityCollection = false;
|
|
1831
1819
|
babylonMaterial.fillMode = babylonDrawMode;
|
|
1832
|
-
babylonMaterial.transparencyMode = this.
|
|
1820
|
+
babylonMaterial.transparencyMode = this._pbrMaterialImpl.materialClass.MATERIAL_OPAQUE;
|
|
1833
1821
|
// Create the material adapter and set some default properties.
|
|
1834
1822
|
// We don't need to wait for the promise to resolve here.
|
|
1835
1823
|
const adapter = this._getOrCreateMaterialAdapter(babylonMaterial);
|
|
@@ -1847,9 +1835,9 @@ export class GLTFLoader {
|
|
|
1847
1835
|
* @returns The Babylon material
|
|
1848
1836
|
*/
|
|
1849
1837
|
createMaterial(context, material, babylonDrawMode) {
|
|
1850
|
-
const
|
|
1851
|
-
if (
|
|
1852
|
-
return
|
|
1838
|
+
const extensionMaterial = this._extensionsCreateMaterial(context, material, babylonDrawMode);
|
|
1839
|
+
if (extensionMaterial) {
|
|
1840
|
+
return extensionMaterial;
|
|
1853
1841
|
}
|
|
1854
1842
|
const name = material.name || `material${material.index}`;
|
|
1855
1843
|
const babylonMaterial = this._createDefaultMaterial(name, babylonDrawMode);
|
|
@@ -1942,7 +1930,7 @@ export class GLTFLoader {
|
|
|
1942
1930
|
* @param babylonMaterial The Babylon material
|
|
1943
1931
|
*/
|
|
1944
1932
|
loadMaterialAlphaProperties(context, material, babylonMaterial) {
|
|
1945
|
-
if (!this.
|
|
1933
|
+
if (!this._pbrMaterialImpl) {
|
|
1946
1934
|
throw new Error(`${context}: Material type not supported`);
|
|
1947
1935
|
}
|
|
1948
1936
|
const adapter = this._getOrCreateMaterialAdapter(babylonMaterial);
|
|
@@ -1950,12 +1938,12 @@ export class GLTFLoader {
|
|
|
1950
1938
|
const alphaMode = material.alphaMode || "OPAQUE" /* MaterialAlphaMode.OPAQUE */;
|
|
1951
1939
|
switch (alphaMode) {
|
|
1952
1940
|
case "OPAQUE" /* MaterialAlphaMode.OPAQUE */: {
|
|
1953
|
-
babylonMaterial.transparencyMode = this.
|
|
1941
|
+
babylonMaterial.transparencyMode = this._pbrMaterialImpl.materialClass.MATERIAL_OPAQUE;
|
|
1954
1942
|
babylonMaterial.alpha = 1.0; // Force alpha to 1.0 for opaque mode.
|
|
1955
1943
|
break;
|
|
1956
1944
|
}
|
|
1957
1945
|
case "MASK" /* MaterialAlphaMode.MASK */: {
|
|
1958
|
-
babylonMaterial.transparencyMode = this.
|
|
1946
|
+
babylonMaterial.transparencyMode = this._pbrMaterialImpl.materialClass.MATERIAL_ALPHATEST;
|
|
1959
1947
|
adapter.alphaCutOff = material.alphaCutoff == undefined ? 0.5 : material.alphaCutoff;
|
|
1960
1948
|
if (baseColorTexture) {
|
|
1961
1949
|
baseColorTexture.hasAlpha = true;
|
|
@@ -1963,7 +1951,7 @@ export class GLTFLoader {
|
|
|
1963
1951
|
break;
|
|
1964
1952
|
}
|
|
1965
1953
|
case "BLEND" /* MaterialAlphaMode.BLEND */: {
|
|
1966
|
-
babylonMaterial.transparencyMode = this.
|
|
1954
|
+
babylonMaterial.transparencyMode = this._pbrMaterialImpl.materialClass.MATERIAL_ALPHABLEND;
|
|
1967
1955
|
if (baseColorTexture) {
|
|
1968
1956
|
baseColorTexture.hasAlpha = true;
|
|
1969
1957
|
adapter.useAlphaFromBaseColorTexture = true;
|