@onerjs/serializers 8.23.12 → 8.25.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/EXT_texture_avif.d.ts +17 -0
- package/glTF/2.0/Extensions/EXT_texture_avif.js +41 -0
- package/glTF/2.0/Extensions/EXT_texture_avif.js.map +1 -0
- package/glTF/2.0/Extensions/EXT_texture_webp.d.ts +16 -0
- package/glTF/2.0/Extensions/EXT_texture_webp.js +40 -0
- package/glTF/2.0/Extensions/EXT_texture_webp.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_materials_transmission.js +1 -1
- package/glTF/2.0/Extensions/KHR_materials_transmission.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_texture_basisu.d.ts +16 -0
- package/glTF/2.0/Extensions/KHR_texture_basisu.js +40 -0
- package/glTF/2.0/Extensions/KHR_texture_basisu.js.map +1 -0
- package/glTF/2.0/Extensions/index.d.ts +3 -0
- package/glTF/2.0/Extensions/index.js +3 -0
- package/glTF/2.0/Extensions/index.js.map +1 -1
- package/glTF/2.0/glTFExporter.d.ts +1 -4
- package/glTF/2.0/glTFExporter.js +2 -7
- package/glTF/2.0/glTFExporter.js.map +1 -1
- package/glTF/2.0/glTFExporterExtension.d.ts +1 -10
- package/glTF/2.0/glTFExporterExtension.js.map +1 -1
- package/glTF/2.0/glTFMaterialExporter.d.ts +4 -7
- package/glTF/2.0/glTFMaterialExporter.js +113 -71
- package/glTF/2.0/glTFMaterialExporter.js.map +1 -1
- package/legacy/legacy-glTF2Serializer.d.ts +2 -2
- package/legacy/legacy-glTF2Serializer.js +7 -7
- package/legacy/legacy-glTF2Serializer.js.map +1 -1
- package/legacy/legacy-objSerializer.d.ts +1 -1
- package/legacy/legacy-objSerializer.js +2 -2
- package/legacy/legacy-objSerializer.js.map +1 -1
- package/legacy/legacy-stlSerializer.d.ts +1 -1
- package/legacy/legacy-stlSerializer.js +2 -2
- package/legacy/legacy-stlSerializer.js.map +1 -1
- package/legacy/legacy-usdzSerializer.d.ts +1 -1
- package/legacy/legacy-usdzSerializer.js +2 -2
- package/legacy/legacy-usdzSerializer.js.map +1 -1
- package/legacy/legacy.d.ts +1 -1
- package/legacy/legacy.js +1 -1
- package/legacy/legacy.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { IGLTFExporterExtensionV2 } from "../glTFExporterExtension.js";
|
|
2
|
+
import { GLTFExporter } from "../glTFExporter.js";
|
|
3
|
+
/**
|
|
4
|
+
* [Proposed Specification](https://github.com/KhronosGroup/glTF/blob/5cb7518cf9a1bfb8268320026961b21caf5a4aac/extensions/2.0/Vendor/EXT_texture_avif/README.md)
|
|
5
|
+
* @experimental
|
|
6
|
+
*/
|
|
7
|
+
export declare class EXT_texture_avif implements IGLTFExporterExtensionV2 {
|
|
8
|
+
readonly name = "EXT_texture_avif";
|
|
9
|
+
enabled: boolean;
|
|
10
|
+
required: boolean;
|
|
11
|
+
private _wasUsed;
|
|
12
|
+
get wasUsed(): boolean;
|
|
13
|
+
private _exporter;
|
|
14
|
+
constructor(exporter: GLTFExporter);
|
|
15
|
+
dispose(): void;
|
|
16
|
+
postExportTexture(_: string, textureInfo: BABYLON.GLTF2.ITextureInfo): void;
|
|
17
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { GLTFExporter } from "../glTFExporter.js";
|
|
2
|
+
import { GetMimeType } from "@onerjs/core/Misc/fileTools.js";
|
|
3
|
+
const NAME = "EXT_texture_avif";
|
|
4
|
+
/**
|
|
5
|
+
* [Proposed Specification](https://github.com/KhronosGroup/glTF/blob/5cb7518cf9a1bfb8268320026961b21caf5a4aac/extensions/2.0/Vendor/EXT_texture_avif/README.md)
|
|
6
|
+
* @experimental
|
|
7
|
+
*/
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
9
|
+
export class EXT_texture_avif {
|
|
10
|
+
get wasUsed() {
|
|
11
|
+
return this._wasUsed;
|
|
12
|
+
}
|
|
13
|
+
constructor(exporter) {
|
|
14
|
+
this.name = NAME;
|
|
15
|
+
this.enabled = true;
|
|
16
|
+
this.required = true;
|
|
17
|
+
this._wasUsed = false;
|
|
18
|
+
this._exporter = exporter;
|
|
19
|
+
}
|
|
20
|
+
dispose() { }
|
|
21
|
+
postExportTexture(_, textureInfo) {
|
|
22
|
+
const texture = this._exporter._textures[textureInfo.index];
|
|
23
|
+
const imageIndex = texture.source;
|
|
24
|
+
if (imageIndex === undefined) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const image = this._exporter._images[imageIndex];
|
|
28
|
+
const sourceMimeType = image.mimeType || GetMimeType(image.uri);
|
|
29
|
+
if (sourceMimeType !== "image/avif" /* ImageMimeType.AVIF */) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
texture.source = undefined;
|
|
33
|
+
texture.extensions || (texture.extensions = {});
|
|
34
|
+
texture.extensions[NAME] = {
|
|
35
|
+
source: imageIndex,
|
|
36
|
+
};
|
|
37
|
+
this._wasUsed = true;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
GLTFExporter.RegisterExtension(NAME, (exporter) => new EXT_texture_avif(exporter));
|
|
41
|
+
//# sourceMappingURL=EXT_texture_avif.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EXT_texture_avif.js","sourceRoot":"","sources":["../../../../../../dev/serializers/src/glTF/2.0/Extensions/EXT_texture_avif.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,uCAA4B;AAGlD,MAAM,IAAI,GAAG,kBAAkB,CAAC;AAEhC;;;GAGG;AACH,gEAAgE;AAChE,MAAM,OAAO,gBAAgB;IASzB,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAID,YAAY,QAAsB;QAdlB,SAAI,GAAG,IAAI,CAAC;QAErB,YAAO,GAAG,IAAI,CAAC;QAEf,aAAQ,GAAG,IAAI,CAAC;QAEf,aAAQ,GAAG,KAAK,CAAC;QASrB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9B,CAAC;IAEM,OAAO,KAAI,CAAC;IAEZ,iBAAiB,CAAC,CAAS,EAAE,WAAuC;QACvE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;QAClC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO;QACX,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,IAAI,WAAW,CAAC,KAAK,CAAC,GAAI,CAAC,CAAC;QACjE,IAAI,cAAc,0CAAuB,EAAE,CAAC;YACxC,OAAO;QACX,CAAC;QAED,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;QAC3B,OAAO,CAAC,UAAU,KAAlB,OAAO,CAAC,UAAU,GAAK,EAAE,EAAC;QAC1B,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG;YACvB,MAAM,EAAE,UAAU;SACrB,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;CACJ;AAED,YAAY,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC","sourcesContent":["/* eslint-disable jsdoc/require-jsdoc */\n/* eslint-disable babylonjs/available */\nimport type { IGLTFExporterExtensionV2 } from \"../glTFExporterExtension\";\nimport { GLTFExporter } from \"../glTFExporter\";\nimport { GetMimeType } from \"core/Misc/fileTools\";\nimport { ImageMimeType } from \"babylonjs-gltf2interface\";\n\nconst NAME = \"EXT_texture_avif\";\n\n/**\n * [Proposed Specification](https://github.com/KhronosGroup/glTF/blob/5cb7518cf9a1bfb8268320026961b21caf5a4aac/extensions/2.0/Vendor/EXT_texture_avif/README.md)\n * @experimental\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class EXT_texture_avif implements IGLTFExporterExtensionV2 {\n public readonly name = NAME;\n\n public enabled = true;\n\n public required = true;\n\n private _wasUsed = false;\n\n public get wasUsed() {\n return this._wasUsed;\n }\n\n private _exporter: GLTFExporter;\n\n constructor(exporter: GLTFExporter) {\n this._exporter = exporter;\n }\n\n public dispose() {}\n\n public postExportTexture(_: string, textureInfo: BABYLON.GLTF2.ITextureInfo): void {\n const texture = this._exporter._textures[textureInfo.index];\n const imageIndex = texture.source;\n if (imageIndex === undefined) {\n return;\n }\n\n const image = this._exporter._images[imageIndex];\n const sourceMimeType = image.mimeType || GetMimeType(image.uri!);\n if (sourceMimeType !== ImageMimeType.AVIF) {\n return;\n }\n\n texture.source = undefined;\n texture.extensions ||= {};\n texture.extensions[NAME] = {\n source: imageIndex,\n };\n\n this._wasUsed = true;\n }\n}\n\nGLTFExporter.RegisterExtension(NAME, (exporter) => new EXT_texture_avif(exporter));\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { IGLTFExporterExtensionV2 } from "../glTFExporterExtension.js";
|
|
2
|
+
import { GLTFExporter } from "../glTFExporter.js";
|
|
3
|
+
/**
|
|
4
|
+
* [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Vendor/EXT_texture_webp/README.md)
|
|
5
|
+
*/
|
|
6
|
+
export declare class EXT_texture_webp implements IGLTFExporterExtensionV2 {
|
|
7
|
+
readonly name = "EXT_texture_webp";
|
|
8
|
+
enabled: boolean;
|
|
9
|
+
required: boolean;
|
|
10
|
+
private _wasUsed;
|
|
11
|
+
get wasUsed(): boolean;
|
|
12
|
+
private _exporter;
|
|
13
|
+
constructor(exporter: GLTFExporter);
|
|
14
|
+
dispose(): void;
|
|
15
|
+
postExportTexture(_: string, textureInfo: BABYLON.GLTF2.ITextureInfo): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { GLTFExporter } from "../glTFExporter.js";
|
|
2
|
+
import { GetMimeType } from "@onerjs/core/Misc/fileTools.js";
|
|
3
|
+
const NAME = "EXT_texture_webp";
|
|
4
|
+
/**
|
|
5
|
+
* [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Vendor/EXT_texture_webp/README.md)
|
|
6
|
+
*/
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
8
|
+
export class EXT_texture_webp {
|
|
9
|
+
get wasUsed() {
|
|
10
|
+
return this._wasUsed;
|
|
11
|
+
}
|
|
12
|
+
constructor(exporter) {
|
|
13
|
+
this.name = NAME;
|
|
14
|
+
this.enabled = true;
|
|
15
|
+
this.required = true;
|
|
16
|
+
this._wasUsed = false;
|
|
17
|
+
this._exporter = exporter;
|
|
18
|
+
}
|
|
19
|
+
dispose() { }
|
|
20
|
+
postExportTexture(_, textureInfo) {
|
|
21
|
+
const texture = this._exporter._textures[textureInfo.index];
|
|
22
|
+
const imageIndex = texture.source;
|
|
23
|
+
if (imageIndex === undefined) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const image = this._exporter._images[imageIndex];
|
|
27
|
+
const sourceMimeType = image.mimeType || GetMimeType(image.uri);
|
|
28
|
+
if (sourceMimeType !== "image/webp" /* ImageMimeType.WEBP */) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
texture.source = undefined;
|
|
32
|
+
texture.extensions || (texture.extensions = {});
|
|
33
|
+
texture.extensions[NAME] = {
|
|
34
|
+
source: imageIndex,
|
|
35
|
+
};
|
|
36
|
+
this._wasUsed = true;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
GLTFExporter.RegisterExtension(NAME, (exporter) => new EXT_texture_webp(exporter));
|
|
40
|
+
//# sourceMappingURL=EXT_texture_webp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EXT_texture_webp.js","sourceRoot":"","sources":["../../../../../../dev/serializers/src/glTF/2.0/Extensions/EXT_texture_webp.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,uCAA4B;AAGlD,MAAM,IAAI,GAAG,kBAAkB,CAAC;AAEhC;;GAEG;AACH,gEAAgE;AAChE,MAAM,OAAO,gBAAgB;IASzB,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAID,YAAY,QAAsB;QAdlB,SAAI,GAAG,IAAI,CAAC;QAErB,YAAO,GAAG,IAAI,CAAC;QAEf,aAAQ,GAAG,IAAI,CAAC;QAEf,aAAQ,GAAG,KAAK,CAAC;QASrB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9B,CAAC;IAEM,OAAO,KAAI,CAAC;IAEZ,iBAAiB,CAAC,CAAS,EAAE,WAAuC;QACvE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;QAClC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO;QACX,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,IAAI,WAAW,CAAC,KAAK,CAAC,GAAI,CAAC,CAAC;QACjE,IAAI,cAAc,0CAAuB,EAAE,CAAC;YACxC,OAAO;QACX,CAAC;QAED,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;QAC3B,OAAO,CAAC,UAAU,KAAlB,OAAO,CAAC,UAAU,GAAK,EAAE,EAAC;QAC1B,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG;YACvB,MAAM,EAAE,UAAU;SACrB,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;CACJ;AAED,YAAY,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC","sourcesContent":["/* eslint-disable jsdoc/require-jsdoc */\n/* eslint-disable babylonjs/available */\nimport type { IGLTFExporterExtensionV2 } from \"../glTFExporterExtension\";\nimport { GLTFExporter } from \"../glTFExporter\";\nimport { GetMimeType } from \"core/Misc/fileTools\";\nimport { ImageMimeType } from \"babylonjs-gltf2interface\";\n\nconst NAME = \"EXT_texture_webp\";\n\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Vendor/EXT_texture_webp/README.md)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class EXT_texture_webp implements IGLTFExporterExtensionV2 {\n public readonly name = NAME;\n\n public enabled = true;\n\n public required = true;\n\n private _wasUsed = false;\n\n public get wasUsed() {\n return this._wasUsed;\n }\n\n private _exporter: GLTFExporter;\n\n constructor(exporter: GLTFExporter) {\n this._exporter = exporter;\n }\n\n public dispose() {}\n\n public postExportTexture(_: string, textureInfo: BABYLON.GLTF2.ITextureInfo): void {\n const texture = this._exporter._textures[textureInfo.index];\n const imageIndex = texture.source;\n if (imageIndex === undefined) {\n return;\n }\n\n const image = this._exporter._images[imageIndex];\n const sourceMimeType = image.mimeType || GetMimeType(image.uri!);\n if (sourceMimeType !== ImageMimeType.WEBP) {\n return;\n }\n\n texture.source = undefined;\n texture.extensions ||= {};\n texture.extensions[NAME] = {\n source: imageIndex,\n };\n\n this._wasUsed = true;\n }\n}\n\nGLTFExporter.RegisterExtension(NAME, (exporter) => new EXT_texture_webp(exporter));\n"]}
|
|
@@ -73,7 +73,7 @@ export class KHR_materials_transmission {
|
|
|
73
73
|
}
|
|
74
74
|
if (subSurface.refractionIntensityTexture) {
|
|
75
75
|
if (subSurface.useGltfStyleTextures) {
|
|
76
|
-
const transmissionTexture = await this._exporter._materialExporter.exportTextureAsync(subSurface.refractionIntensityTexture
|
|
76
|
+
const transmissionTexture = await this._exporter._materialExporter.exportTextureAsync(subSurface.refractionIntensityTexture);
|
|
77
77
|
if (transmissionTexture) {
|
|
78
78
|
volumeInfo.transmissionTexture = transmissionTexture;
|
|
79
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KHR_materials_transmission.js","sourceRoot":"","sources":["../../../../../../dev/serializers/src/glTF/2.0/Extensions/KHR_materials_transmission.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"KHR_materials_transmission.js","sourceRoot":"","sources":["../../../../../../dev/serializers/src/glTF/2.0/Extensions/KHR_materials_transmission.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IMaterial, IKHRMaterialsTransmission } from \"babylonjs-gltf2interface\";\r\nimport type { IGLTFExporterExtensionV2 } from \"../glTFExporterExtension\";\r\nimport { GLTFExporter } from \"../glTFExporter\";\r\nimport type { Material } from \"core/Materials/material\";\r\nimport { PBRMaterial } from \"core/Materials/PBR/pbrMaterial\";\r\nimport type { BaseTexture } from \"core/Materials/Textures/baseTexture\";\r\nimport { Logger } from \"core/Misc/logger\";\r\n\r\nconst NAME = \"KHR_materials_transmission\";\r\n\r\n/**\r\n * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_materials_transmission/README.md)\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport class KHR_materials_transmission implements IGLTFExporterExtensionV2 {\r\n /** Name of this extension */\r\n public readonly name = NAME;\r\n\r\n /** Defines whether this extension is enabled */\r\n public enabled = true;\r\n\r\n /** Defines whether this extension is required */\r\n public required = false;\r\n\r\n private _exporter: GLTFExporter;\r\n\r\n private _wasUsed = false;\r\n\r\n constructor(exporter: GLTFExporter) {\r\n this._exporter = exporter;\r\n }\r\n\r\n /** Dispose */\r\n public dispose() {}\r\n\r\n /** @internal */\r\n public get wasUsed() {\r\n return this._wasUsed;\r\n }\r\n\r\n /**\r\n * After exporting a material, deal with additional textures\r\n * @param context GLTF context of the material\r\n * @param node exported GLTF node\r\n * @param babylonMaterial corresponding babylon material\r\n * @returns array of additional textures to export\r\n */\r\n public postExportMaterialAdditionalTextures?(context: string, node: IMaterial, babylonMaterial: Material): BaseTexture[] {\r\n const additionalTextures: BaseTexture[] = [];\r\n\r\n if (babylonMaterial instanceof PBRMaterial) {\r\n if (this._isExtensionEnabled(babylonMaterial)) {\r\n if (babylonMaterial.subSurface.thicknessTexture) {\r\n additionalTextures.push(babylonMaterial.subSurface.thicknessTexture);\r\n }\r\n return additionalTextures;\r\n }\r\n }\r\n\r\n return additionalTextures;\r\n }\r\n\r\n private _isExtensionEnabled(mat: PBRMaterial): boolean {\r\n // This extension must not be used on a material that also uses KHR_materials_unlit\r\n if (mat.unlit) {\r\n return false;\r\n }\r\n const subs = mat.subSurface;\r\n return (subs.isRefractionEnabled && subs.refractionIntensity != undefined && subs.refractionIntensity != 0) || this._hasTexturesExtension(mat);\r\n }\r\n\r\n private _hasTexturesExtension(mat: PBRMaterial): boolean {\r\n return mat.subSurface.refractionIntensityTexture != null;\r\n }\r\n\r\n /**\r\n * After exporting a material\r\n * @param context GLTF context of the material\r\n * @param node exported GLTF node\r\n * @param babylonMaterial corresponding babylon material\r\n * @returns true if successful\r\n */\r\n public async postExportMaterialAsync?(context: string, node: IMaterial, babylonMaterial: Material): Promise<IMaterial> {\r\n if (babylonMaterial instanceof PBRMaterial && this._isExtensionEnabled(babylonMaterial)) {\r\n this._wasUsed = true;\r\n\r\n const subSurface = babylonMaterial.subSurface;\r\n const transmissionFactor = subSurface.refractionIntensity === 0 ? undefined : subSurface.refractionIntensity;\r\n\r\n const volumeInfo: IKHRMaterialsTransmission = {\r\n transmissionFactor: transmissionFactor,\r\n };\r\n\r\n if (this._hasTexturesExtension(babylonMaterial)) {\r\n this._exporter._materialNeedsUVsSet.add(babylonMaterial);\r\n }\r\n\r\n if (subSurface.refractionIntensityTexture) {\r\n if (subSurface.useGltfStyleTextures) {\r\n const transmissionTexture = await this._exporter._materialExporter.exportTextureAsync(subSurface.refractionIntensityTexture);\r\n if (transmissionTexture) {\r\n volumeInfo.transmissionTexture = transmissionTexture;\r\n }\r\n } else {\r\n Logger.Warn(`${context}: Exporting a subsurface refraction intensity texture without \\`useGltfStyleTextures\\` is not supported`);\r\n }\r\n }\r\n\r\n node.extensions ||= {};\r\n node.extensions[NAME] = volumeInfo;\r\n }\r\n\r\n return node;\r\n }\r\n}\r\n\r\nGLTFExporter.RegisterExtension(NAME, (exporter) => new KHR_materials_transmission(exporter));\r\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { IGLTFExporterExtensionV2 } from "../glTFExporterExtension.js";
|
|
2
|
+
import { GLTFExporter } from "../glTFExporter.js";
|
|
3
|
+
/**
|
|
4
|
+
* [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_texture_basisu/README.md)
|
|
5
|
+
*/
|
|
6
|
+
export declare class KHR_texture_basisu implements IGLTFExporterExtensionV2 {
|
|
7
|
+
readonly name = "KHR_texture_basisu";
|
|
8
|
+
enabled: boolean;
|
|
9
|
+
required: boolean;
|
|
10
|
+
private _wasUsed;
|
|
11
|
+
get wasUsed(): boolean;
|
|
12
|
+
private _exporter;
|
|
13
|
+
constructor(exporter: GLTFExporter);
|
|
14
|
+
dispose(): void;
|
|
15
|
+
postExportTexture(_: string, textureInfo: BABYLON.GLTF2.ITextureInfo): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { GLTFExporter } from "../glTFExporter.js";
|
|
2
|
+
import { GetMimeType } from "@onerjs/core/Misc/fileTools.js";
|
|
3
|
+
const NAME = "KHR_texture_basisu";
|
|
4
|
+
/**
|
|
5
|
+
* [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_texture_basisu/README.md)
|
|
6
|
+
*/
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
8
|
+
export class KHR_texture_basisu {
|
|
9
|
+
get wasUsed() {
|
|
10
|
+
return this._wasUsed;
|
|
11
|
+
}
|
|
12
|
+
constructor(exporter) {
|
|
13
|
+
this.name = NAME;
|
|
14
|
+
this.enabled = true;
|
|
15
|
+
this.required = true;
|
|
16
|
+
this._wasUsed = false;
|
|
17
|
+
this._exporter = exporter;
|
|
18
|
+
}
|
|
19
|
+
dispose() { }
|
|
20
|
+
postExportTexture(_, textureInfo) {
|
|
21
|
+
const texture = this._exporter._textures[textureInfo.index];
|
|
22
|
+
const imageIndex = texture.source;
|
|
23
|
+
if (imageIndex === undefined) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const image = this._exporter._images[imageIndex];
|
|
27
|
+
const sourceMimeType = image.mimeType || GetMimeType(image.uri);
|
|
28
|
+
if (sourceMimeType !== "image/ktx2" /* ImageMimeType.KTX2 */) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
texture.source = undefined;
|
|
32
|
+
texture.extensions || (texture.extensions = {});
|
|
33
|
+
texture.extensions[NAME] = {
|
|
34
|
+
source: imageIndex,
|
|
35
|
+
};
|
|
36
|
+
this._wasUsed = true;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
GLTFExporter.RegisterExtension(NAME, (exporter) => new KHR_texture_basisu(exporter));
|
|
40
|
+
//# sourceMappingURL=KHR_texture_basisu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KHR_texture_basisu.js","sourceRoot":"","sources":["../../../../../../dev/serializers/src/glTF/2.0/Extensions/KHR_texture_basisu.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,uCAA4B;AAGlD,MAAM,IAAI,GAAG,oBAAoB,CAAC;AAElC;;GAEG;AACH,gEAAgE;AAChE,MAAM,OAAO,kBAAkB;IAS3B,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAID,YAAY,QAAsB;QAdlB,SAAI,GAAG,IAAI,CAAC;QAErB,YAAO,GAAG,IAAI,CAAC;QAEf,aAAQ,GAAG,IAAI,CAAC;QAEf,aAAQ,GAAG,KAAK,CAAC;QASrB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9B,CAAC;IAEM,OAAO,KAAI,CAAC;IAEZ,iBAAiB,CAAC,CAAS,EAAE,WAAuC;QACvE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;QAClC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO;QACX,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,IAAI,WAAW,CAAC,KAAK,CAAC,GAAI,CAAC,CAAC;QACjE,IAAI,cAAc,0CAAuB,EAAE,CAAC;YACxC,OAAO;QACX,CAAC;QAED,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;QAC3B,OAAO,CAAC,UAAU,KAAlB,OAAO,CAAC,UAAU,GAAK,EAAE,EAAC;QAC1B,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG;YACvB,MAAM,EAAE,UAAU;SACrB,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;CACJ;AAED,YAAY,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC","sourcesContent":["/* eslint-disable jsdoc/require-jsdoc */\n/* eslint-disable babylonjs/available */\nimport type { IGLTFExporterExtensionV2 } from \"../glTFExporterExtension\";\nimport { GLTFExporter } from \"../glTFExporter\";\nimport { GetMimeType } from \"core/Misc/fileTools\";\nimport { ImageMimeType } from \"babylonjs-gltf2interface\";\n\nconst NAME = \"KHR_texture_basisu\";\n\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_texture_basisu/README.md)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class KHR_texture_basisu implements IGLTFExporterExtensionV2 {\n public readonly name = NAME;\n\n public enabled = true;\n\n public required = true;\n\n private _wasUsed = false;\n\n public get wasUsed() {\n return this._wasUsed;\n }\n\n private _exporter: GLTFExporter;\n\n constructor(exporter: GLTFExporter) {\n this._exporter = exporter;\n }\n\n public dispose() {}\n\n public postExportTexture(_: string, textureInfo: BABYLON.GLTF2.ITextureInfo): void {\n const texture = this._exporter._textures[textureInfo.index];\n const imageIndex = texture.source;\n if (imageIndex === undefined) {\n return;\n }\n\n const image = this._exporter._images[imageIndex];\n const sourceMimeType = image.mimeType || GetMimeType(image.uri!);\n if (sourceMimeType !== ImageMimeType.KTX2) {\n return;\n }\n\n texture.source = undefined;\n texture.extensions ||= {};\n texture.extensions[NAME] = {\n source: imageIndex,\n };\n\n this._wasUsed = true;\n }\n}\n\nGLTFExporter.RegisterExtension(NAME, (exporter) => new KHR_texture_basisu(exporter));\n"]}
|
|
@@ -15,3 +15,6 @@ export * from "./KHR_materials_unlit.js";
|
|
|
15
15
|
export * from "./KHR_materials_volume.js";
|
|
16
16
|
export * from "./EXT_materials_diffuse_roughness.js";
|
|
17
17
|
export * from "./KHR_texture_transform.js";
|
|
18
|
+
export * from "./KHR_texture_basisu.js";
|
|
19
|
+
export * from "./EXT_texture_webp.js";
|
|
20
|
+
export * from "./EXT_texture_avif.js";
|
|
@@ -15,4 +15,7 @@ export * from "./KHR_materials_unlit.js";
|
|
|
15
15
|
export * from "./KHR_materials_volume.js";
|
|
16
16
|
export * from "./EXT_materials_diffuse_roughness.js";
|
|
17
17
|
export * from "./KHR_texture_transform.js";
|
|
18
|
+
export * from "./KHR_texture_basisu.js";
|
|
19
|
+
export * from "./EXT_texture_webp.js";
|
|
20
|
+
export * from "./EXT_texture_avif.js";
|
|
18
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../dev/serializers/src/glTF/2.0/Extensions/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sCAAsC,CAAC;AACrD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mCAAmC,CAAC;AAClD,cAAc,yBAAyB,CAAC","sourcesContent":["export * from \"./EXT_mesh_gpu_instancing\";\r\nexport * from \"./KHR_draco_mesh_compression\";\r\nexport * from \"./KHR_lights_punctual\";\r\nexport * from \"./KHR_materials_anisotropy\";\r\nexport * from \"./KHR_materials_clearcoat\";\r\nexport * from \"./KHR_materials_diffuse_transmission\";\r\nexport * from \"./KHR_materials_dispersion\";\r\nexport * from \"./KHR_materials_emissive_strength\";\r\nexport * from \"./KHR_materials_ior\";\r\nexport * from \"./KHR_materials_iridescence\";\r\nexport * from \"./KHR_materials_sheen\";\r\nexport * from \"./KHR_materials_specular\";\r\nexport * from \"./KHR_materials_transmission\";\r\nexport * from \"./KHR_materials_unlit\";\r\nexport * from \"./KHR_materials_volume\";\r\nexport * from \"./EXT_materials_diffuse_roughness\";\r\nexport * from \"./KHR_texture_transform\";\r\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../dev/serializers/src/glTF/2.0/Extensions/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sCAAsC,CAAC;AACrD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mCAAmC,CAAC;AAClD,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC","sourcesContent":["export * from \"./EXT_mesh_gpu_instancing\";\r\nexport * from \"./KHR_draco_mesh_compression\";\r\nexport * from \"./KHR_lights_punctual\";\r\nexport * from \"./KHR_materials_anisotropy\";\r\nexport * from \"./KHR_materials_clearcoat\";\r\nexport * from \"./KHR_materials_diffuse_transmission\";\r\nexport * from \"./KHR_materials_dispersion\";\r\nexport * from \"./KHR_materials_emissive_strength\";\r\nexport * from \"./KHR_materials_ior\";\r\nexport * from \"./KHR_materials_iridescence\";\r\nexport * from \"./KHR_materials_sheen\";\r\nexport * from \"./KHR_materials_specular\";\r\nexport * from \"./KHR_materials_transmission\";\r\nexport * from \"./KHR_materials_unlit\";\r\nexport * from \"./KHR_materials_volume\";\r\nexport * from \"./EXT_materials_diffuse_roughness\";\r\nexport * from \"./KHR_texture_transform\";\r\nexport * from \"./KHR_texture_basisu\";\r\nexport * from \"./EXT_texture_webp\";\r\nexport * from \"./EXT_texture_avif\";\r\n"]}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import type { IBufferView, IAccessor, INode, IScene, IMesh, IMaterial, ITexture, IImage, ISampler, IAnimation, IMeshPrimitive, IGLTF, ITextureInfo, ISkin, ICamera } from "babylonjs-gltf2interface";
|
|
2
|
-
import { ImageMimeType } from "babylonjs-gltf2interface";
|
|
1
|
+
import type { IBufferView, IAccessor, INode, IScene, IMesh, IMaterial, ITexture, IImage, ISampler, IAnimation, IMeshPrimitive, IGLTF, ITextureInfo, ISkin, ICamera, ImageMimeType } from "babylonjs-gltf2interface";
|
|
3
2
|
import type { Nullable } from "@onerjs/core/types.js";
|
|
4
3
|
import type { Node } from "@onerjs/core/node.js";
|
|
5
4
|
import type { BaseTexture } from "@onerjs/core/Materials/Textures/baseTexture.js";
|
|
6
|
-
import type { Texture } from "@onerjs/core/Materials/Textures/texture.js";
|
|
7
5
|
import { Material } from "@onerjs/core/Materials/material.js";
|
|
8
6
|
import type { Scene } from "@onerjs/core/scene.js";
|
|
9
7
|
import type { IGLTFExporterExtensionV2 } from "./glTFExporterExtension.js";
|
|
@@ -55,7 +53,6 @@ export declare class GLTFExporter {
|
|
|
55
53
|
private static readonly _ExtensionFactories;
|
|
56
54
|
private _ApplyExtension;
|
|
57
55
|
private _ApplyExtensions;
|
|
58
|
-
_extensionsPreExportTextureAsync(context: string, babylonTexture: Texture, mimeType: ImageMimeType): Promise<Nullable<BaseTexture>>;
|
|
59
56
|
_extensionsPostExportNodeAsync(context: string, node: INode, babylonNode: Node, nodeMap: Map<Node, number>, convertToRightHanded: boolean): Promise<Nullable<INode>>;
|
|
60
57
|
_extensionsPostExportMaterialAsync(context: string, material: IMaterial, babylonMaterial: Material): Promise<Nullable<IMaterial>>;
|
|
61
58
|
_extensionsPostExportMaterialAdditionalTextures(context: string, material: IMaterial, babylonMaterial: Material): BaseTexture[];
|
package/glTF/2.0/glTFExporter.js
CHANGED
|
@@ -154,11 +154,6 @@ export class GLTFExporter {
|
|
|
154
154
|
return this._ApplyExtension(node, extensions, 0, actionAsync);
|
|
155
155
|
}
|
|
156
156
|
// eslint-disable-next-line no-restricted-syntax, @typescript-eslint/promise-function-async
|
|
157
|
-
_extensionsPreExportTextureAsync(context, babylonTexture, mimeType) {
|
|
158
|
-
// eslint-disable-next-line @typescript-eslint/promise-function-async
|
|
159
|
-
return this._ApplyExtensions(babylonTexture, (extension, node) => extension.preExportTextureAsync && extension.preExportTextureAsync(context, node, mimeType));
|
|
160
|
-
}
|
|
161
|
-
// eslint-disable-next-line no-restricted-syntax, @typescript-eslint/promise-function-async
|
|
162
157
|
_extensionsPostExportNodeAsync(context, node, babylonNode, nodeMap, convertToRightHanded) {
|
|
163
158
|
return this._ApplyExtensions(node,
|
|
164
159
|
// eslint-disable-next-line @typescript-eslint/promise-function-async
|
|
@@ -1057,10 +1052,10 @@ export class GLTFExporter {
|
|
|
1057
1052
|
const hasUVs = vertexBuffers && Object.keys(vertexBuffers).some((kind) => kind.startsWith("uv"));
|
|
1058
1053
|
babylonMaterial = babylonMaterial instanceof MultiMaterial ? babylonMaterial.subMaterials[subMesh.materialIndex] : babylonMaterial;
|
|
1059
1054
|
if (babylonMaterial instanceof PBRBaseMaterial) {
|
|
1060
|
-
materialIndex = await this._materialExporter.exportPBRMaterialAsync(babylonMaterial,
|
|
1055
|
+
materialIndex = await this._materialExporter.exportPBRMaterialAsync(babylonMaterial, hasUVs);
|
|
1061
1056
|
}
|
|
1062
1057
|
else if (babylonMaterial instanceof StandardMaterial) {
|
|
1063
|
-
materialIndex = await this._materialExporter.exportStandardMaterialAsync(babylonMaterial,
|
|
1058
|
+
materialIndex = await this._materialExporter.exportStandardMaterialAsync(babylonMaterial, hasUVs);
|
|
1064
1059
|
}
|
|
1065
1060
|
else {
|
|
1066
1061
|
Logger.Warn(`Unsupported material '${babylonMaterial.name}' with type ${babylonMaterial.getClassName()}`);
|