@babylonjs/serializers 5.20.0 → 5.22.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/OBJ/objSerializer.js +35 -39
- package/OBJ/objSerializer.js.map +1 -1
- package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.js +44 -52
- package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_lights_punctual.js +49 -56
- package/glTF/2.0/Extensions/KHR_lights_punctual.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_materials_clearcoat.js +31 -38
- package/glTF/2.0/Extensions/KHR_materials_clearcoat.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_materials_ior.js +18 -25
- package/glTF/2.0/Extensions/KHR_materials_ior.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_materials_iridescence.js +25 -32
- package/glTF/2.0/Extensions/KHR_materials_iridescence.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_materials_sheen.js +24 -32
- package/glTF/2.0/Extensions/KHR_materials_sheen.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_materials_specular.js +29 -37
- package/glTF/2.0/Extensions/KHR_materials_specular.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_materials_transmission.js +29 -37
- package/glTF/2.0/Extensions/KHR_materials_transmission.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_materials_unlit.js +15 -22
- package/glTF/2.0/Extensions/KHR_materials_unlit.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_materials_volume.js +31 -39
- package/glTF/2.0/Extensions/KHR_materials_volume.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_texture_transform.js +33 -42
- package/glTF/2.0/Extensions/KHR_texture_transform.js.map +1 -1
- package/glTF/2.0/glTFAnimation.js +171 -187
- package/glTF/2.0/glTFAnimation.js.map +1 -1
- package/glTF/2.0/glTFData.js +9 -11
- package/glTF/2.0/glTFData.js.map +1 -1
- package/glTF/2.0/glTFExporter.js +498 -544
- package/glTF/2.0/glTFExporter.js.map +1 -1
- package/glTF/2.0/glTFMaterialExporter.js +385 -423
- package/glTF/2.0/glTFMaterialExporter.js.map +1 -1
- package/glTF/2.0/glTFSerializer.js +20 -25
- package/glTF/2.0/glTFSerializer.js.map +1 -1
- package/glTF/2.0/glTFUtilities.js +45 -49
- package/glTF/2.0/glTFUtilities.js.map +1 -1
- package/glTF/2.0/shaders/textureTransform.fragment.js +7 -3
- package/glTF/2.0/shaders/textureTransform.fragment.js.map +1 -1
- package/legacy/legacy-glTF2Serializer.js +16 -16
- package/legacy/legacy-glTF2Serializer.js.map +1 -1
- package/legacy/legacy-objSerializer.js +2 -2
- package/legacy/legacy-objSerializer.js.map +1 -1
- package/legacy/legacy-stlSerializer.js +2 -2
- package/legacy/legacy-stlSerializer.js.map +1 -1
- package/package.json +5 -8
- package/stl/stlSerializer.js +29 -38
- package/stl/stlSerializer.js.map +1 -1
@@ -1,12 +1,12 @@
|
|
1
1
|
import { _Exporter } from "../glTFExporter.js";
|
2
2
|
import { PBRBaseMaterial } from "@babylonjs/core/Materials/PBR/pbrBaseMaterial.js";
|
3
|
-
|
3
|
+
const NAME = "KHR_materials_iridescence";
|
4
4
|
/**
|
5
5
|
* @hidden
|
6
6
|
*/
|
7
7
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
8
|
-
|
9
|
-
|
8
|
+
export class KHR_materials_iridescence {
|
9
|
+
constructor(exporter) {
|
10
10
|
/** Name of this extension */
|
11
11
|
this.name = NAME;
|
12
12
|
/** Defines whether this extension is enabled */
|
@@ -16,17 +16,13 @@ var KHR_materials_iridescence = /** @class */ (function () {
|
|
16
16
|
this._wasUsed = false;
|
17
17
|
this._exporter = exporter;
|
18
18
|
}
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
configurable: true
|
27
|
-
});
|
28
|
-
KHR_materials_iridescence.prototype.postExportMaterialAdditionalTextures = function (context, node, babylonMaterial) {
|
29
|
-
var additionalTextures = [];
|
19
|
+
dispose() { }
|
20
|
+
/** @hidden */
|
21
|
+
get wasUsed() {
|
22
|
+
return this._wasUsed;
|
23
|
+
}
|
24
|
+
postExportMaterialAdditionalTextures(context, node, babylonMaterial) {
|
25
|
+
const additionalTextures = [];
|
30
26
|
if (babylonMaterial instanceof PBRBaseMaterial) {
|
31
27
|
if (babylonMaterial.iridescence.isEnabled) {
|
32
28
|
if (babylonMaterial.iridescence.texture) {
|
@@ -39,37 +35,34 @@ var KHR_materials_iridescence = /** @class */ (function () {
|
|
39
35
|
}
|
40
36
|
}
|
41
37
|
return [];
|
42
|
-
}
|
43
|
-
|
44
|
-
|
45
|
-
return new Promise(function (resolve) {
|
38
|
+
}
|
39
|
+
postExportMaterialAsync(context, node, babylonMaterial) {
|
40
|
+
return new Promise((resolve) => {
|
46
41
|
if (babylonMaterial instanceof PBRBaseMaterial) {
|
47
42
|
if (!babylonMaterial.iridescence.isEnabled) {
|
48
43
|
resolve(node);
|
49
44
|
return;
|
50
45
|
}
|
51
|
-
|
46
|
+
this._wasUsed = true;
|
52
47
|
node.extensions = node.extensions || {};
|
53
|
-
|
54
|
-
|
55
|
-
|
48
|
+
const iridescenceTextureInfo = this._exporter._glTFMaterialExporter._getTextureInfo(babylonMaterial.iridescence.texture);
|
49
|
+
const iridescenceThicknessTextureInfo = this._exporter._glTFMaterialExporter._getTextureInfo(babylonMaterial.iridescence.thicknessTexture);
|
50
|
+
const iridescenceInfo = {
|
56
51
|
iridescenceFactor: babylonMaterial.iridescence.intensity,
|
57
52
|
iridescenceIor: babylonMaterial.iridescence.indexOfRefraction,
|
58
53
|
iridescenceThicknessMinimum: babylonMaterial.iridescence.minimumThickness,
|
59
54
|
iridescenceThicknessMaximum: babylonMaterial.iridescence.maximumThickness,
|
60
|
-
iridescenceTexture: iridescenceTextureInfo
|
61
|
-
iridescenceThicknessTexture: iridescenceThicknessTextureInfo
|
62
|
-
hasTextures:
|
63
|
-
return
|
55
|
+
iridescenceTexture: iridescenceTextureInfo ?? undefined,
|
56
|
+
iridescenceThicknessTexture: iridescenceThicknessTextureInfo ?? undefined,
|
57
|
+
hasTextures: () => {
|
58
|
+
return iridescenceInfo.iridescenceTexture !== null || iridescenceInfo.iridescenceThicknessTexture !== null;
|
64
59
|
},
|
65
60
|
};
|
66
|
-
node.extensions[NAME] =
|
61
|
+
node.extensions[NAME] = iridescenceInfo;
|
67
62
|
}
|
68
63
|
resolve(node);
|
69
64
|
});
|
70
|
-
}
|
71
|
-
|
72
|
-
|
73
|
-
export { KHR_materials_iridescence };
|
74
|
-
_Exporter.RegisterExtension(NAME, function (exporter) { return new KHR_materials_iridescence(exporter); });
|
65
|
+
}
|
66
|
+
}
|
67
|
+
_Exporter.RegisterExtension(NAME, (exporter) => new KHR_materials_iridescence(exporter));
|
75
68
|
//# sourceMappingURL=KHR_materials_iridescence.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"KHR_materials_iridescence.js","sourceRoot":"","sources":["../../../../../../../lts/serializers/generated/glTF/2.0/Extensions/KHR_materials_iridescence.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,yDAA2C;AAGrE,
|
1
|
+
{"version":3,"file":"KHR_materials_iridescence.js","sourceRoot":"","sources":["../../../../../../../lts/serializers/generated/glTF/2.0/Extensions/KHR_materials_iridescence.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IMaterial, IKHRMaterialsIridescence } from \"babylonjs-gltf2interface\";\r\nimport type { IGLTFExporterExtensionV2 } from \"../glTFExporterExtension\";\r\nimport { _Exporter } from \"../glTFExporter\";\r\nimport type { Material } from \"core/Materials/material\";\r\nimport { PBRBaseMaterial } from \"core/Materials/PBR/pbrBaseMaterial\";\r\nimport type { BaseTexture } from \"core/Materials/Textures/baseTexture\";\r\n\r\nconst NAME = \"KHR_materials_iridescence\";\r\n\r\n/**\r\n * @hidden\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport class KHR_materials_iridescence 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: _Exporter;\r\n\r\n private _wasUsed = false;\r\n\r\n constructor(exporter: _Exporter) {\r\n this._exporter = exporter;\r\n }\r\n\r\n public dispose() {}\r\n\r\n /** @hidden */\r\n public get wasUsed() {\r\n return this._wasUsed;\r\n }\r\n\r\n public postExportMaterialAdditionalTextures?(context: string, node: IMaterial, babylonMaterial: Material): BaseTexture[] {\r\n const additionalTextures: BaseTexture[] = [];\r\n if (babylonMaterial instanceof PBRBaseMaterial) {\r\n if (babylonMaterial.iridescence.isEnabled) {\r\n if (babylonMaterial.iridescence.texture) {\r\n additionalTextures.push(babylonMaterial.iridescence.texture);\r\n }\r\n if (babylonMaterial.iridescence.thicknessTexture && babylonMaterial.iridescence.thicknessTexture !== babylonMaterial.iridescence.texture) {\r\n additionalTextures.push(babylonMaterial.iridescence.thicknessTexture);\r\n }\r\n return additionalTextures;\r\n }\r\n }\r\n\r\n return [];\r\n }\r\n\r\n public postExportMaterialAsync?(context: string, node: IMaterial, babylonMaterial: Material): Promise<IMaterial> {\r\n return new Promise((resolve) => {\r\n if (babylonMaterial instanceof PBRBaseMaterial) {\r\n if (!babylonMaterial.iridescence.isEnabled) {\r\n resolve(node);\r\n return;\r\n }\r\n\r\n this._wasUsed = true;\r\n\r\n node.extensions = node.extensions || {};\r\n\r\n const iridescenceTextureInfo = this._exporter._glTFMaterialExporter._getTextureInfo(babylonMaterial.iridescence.texture);\r\n const iridescenceThicknessTextureInfo = this._exporter._glTFMaterialExporter._getTextureInfo(babylonMaterial.iridescence.thicknessTexture);\r\n\r\n const iridescenceInfo: IKHRMaterialsIridescence = {\r\n iridescenceFactor: babylonMaterial.iridescence.intensity,\r\n iridescenceIor: babylonMaterial.iridescence.indexOfRefraction,\r\n iridescenceThicknessMinimum: babylonMaterial.iridescence.minimumThickness,\r\n iridescenceThicknessMaximum: babylonMaterial.iridescence.maximumThickness,\r\n\r\n iridescenceTexture: iridescenceTextureInfo ?? undefined,\r\n iridescenceThicknessTexture: iridescenceThicknessTextureInfo ?? undefined,\r\n hasTextures: () => {\r\n return iridescenceInfo.iridescenceTexture !== null || iridescenceInfo.iridescenceThicknessTexture !== null;\r\n },\r\n };\r\n\r\n node.extensions[NAME] = iridescenceInfo;\r\n }\r\n resolve(node);\r\n });\r\n }\r\n}\r\n\r\n_Exporter.RegisterExtension(NAME, (exporter) => new KHR_materials_iridescence(exporter));\r\n"]}
|
@@ -1,12 +1,12 @@
|
|
1
1
|
import { _Exporter } from "../glTFExporter.js";
|
2
2
|
import { PBRMaterial } from "@babylonjs/core/Materials/PBR/pbrMaterial.js";
|
3
|
-
|
3
|
+
const NAME = "KHR_materials_sheen";
|
4
4
|
/**
|
5
5
|
* @hidden
|
6
6
|
*/
|
7
7
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
8
|
-
|
9
|
-
|
8
|
+
export class KHR_materials_sheen {
|
9
|
+
constructor(exporter) {
|
10
10
|
/** Name of this extension */
|
11
11
|
this.name = NAME;
|
12
12
|
/** Defines whether this extension is enabled */
|
@@ -16,59 +16,51 @@ var KHR_materials_sheen = /** @class */ (function () {
|
|
16
16
|
this._wasUsed = false;
|
17
17
|
this._exporter = exporter;
|
18
18
|
}
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
enumerable: false,
|
26
|
-
configurable: true
|
27
|
-
});
|
28
|
-
KHR_materials_sheen.prototype.postExportMaterialAdditionalTextures = function (context, node, babylonMaterial) {
|
19
|
+
dispose() { }
|
20
|
+
/** @hidden */
|
21
|
+
get wasUsed() {
|
22
|
+
return this._wasUsed;
|
23
|
+
}
|
24
|
+
postExportMaterialAdditionalTextures(context, node, babylonMaterial) {
|
29
25
|
if (babylonMaterial instanceof PBRMaterial) {
|
30
26
|
if (babylonMaterial.sheen.isEnabled && babylonMaterial.sheen.texture) {
|
31
27
|
return [babylonMaterial.sheen.texture];
|
32
28
|
}
|
33
29
|
}
|
34
30
|
return [];
|
35
|
-
}
|
36
|
-
|
37
|
-
|
38
|
-
return new Promise(function (resolve) {
|
39
|
-
var _a, _b, _c, _d;
|
31
|
+
}
|
32
|
+
postExportMaterialAsync(context, node, babylonMaterial) {
|
33
|
+
return new Promise((resolve) => {
|
40
34
|
if (babylonMaterial instanceof PBRMaterial) {
|
41
35
|
if (!babylonMaterial.sheen.isEnabled) {
|
42
36
|
resolve(node);
|
43
37
|
return;
|
44
38
|
}
|
45
|
-
|
39
|
+
this._wasUsed = true;
|
46
40
|
if (node.extensions == null) {
|
47
41
|
node.extensions = {};
|
48
42
|
}
|
49
|
-
|
43
|
+
const sheenInfo = {
|
50
44
|
sheenColorFactor: babylonMaterial.sheen.color.asArray(),
|
51
|
-
sheenRoughnessFactor:
|
52
|
-
hasTextures:
|
53
|
-
return
|
45
|
+
sheenRoughnessFactor: babylonMaterial.sheen.roughness ?? 0,
|
46
|
+
hasTextures: () => {
|
47
|
+
return sheenInfo.sheenColorTexture !== null || sheenInfo.sheenRoughnessTexture !== null;
|
54
48
|
},
|
55
49
|
};
|
56
50
|
if (babylonMaterial.sheen.texture) {
|
57
|
-
|
51
|
+
sheenInfo.sheenColorTexture = this._exporter._glTFMaterialExporter._getTextureInfo(babylonMaterial.sheen.texture) ?? undefined;
|
58
52
|
}
|
59
53
|
if (babylonMaterial.sheen.textureRoughness && !babylonMaterial.sheen.useRoughnessFromMainTexture) {
|
60
|
-
|
54
|
+
sheenInfo.sheenRoughnessTexture = this._exporter._glTFMaterialExporter._getTextureInfo(babylonMaterial.sheen.textureRoughness) ?? undefined;
|
61
55
|
}
|
62
56
|
else if (babylonMaterial.sheen.texture && babylonMaterial.sheen.useRoughnessFromMainTexture) {
|
63
|
-
|
57
|
+
sheenInfo.sheenRoughnessTexture = this._exporter._glTFMaterialExporter._getTextureInfo(babylonMaterial.sheen.texture) ?? undefined;
|
64
58
|
}
|
65
|
-
node.extensions[NAME] =
|
59
|
+
node.extensions[NAME] = sheenInfo;
|
66
60
|
}
|
67
61
|
resolve(node);
|
68
62
|
});
|
69
|
-
}
|
70
|
-
|
71
|
-
|
72
|
-
export { KHR_materials_sheen };
|
73
|
-
_Exporter.RegisterExtension(NAME, function (exporter) { return new KHR_materials_sheen(exporter); });
|
63
|
+
}
|
64
|
+
}
|
65
|
+
_Exporter.RegisterExtension(NAME, (exporter) => new KHR_materials_sheen(exporter));
|
74
66
|
//# sourceMappingURL=KHR_materials_sheen.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"KHR_materials_sheen.js","sourceRoot":"","sources":["../../../../../../../lts/serializers/generated/glTF/2.0/Extensions/KHR_materials_sheen.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,qDAAuC;AAG7D,
|
1
|
+
{"version":3,"file":"KHR_materials_sheen.js","sourceRoot":"","sources":["../../../../../../../lts/serializers/generated/glTF/2.0/Extensions/KHR_materials_sheen.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IMaterial, IKHRMaterialsSheen } from \"babylonjs-gltf2interface\";\r\nimport type { IGLTFExporterExtensionV2 } from \"../glTFExporterExtension\";\r\nimport { _Exporter } 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\n\r\nconst NAME = \"KHR_materials_sheen\";\r\n\r\n/**\r\n * @hidden\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport class KHR_materials_sheen 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 _wasUsed = false;\r\n\r\n private _exporter: _Exporter;\r\n\r\n constructor(exporter: _Exporter) {\r\n this._exporter = exporter;\r\n }\r\n\r\n public dispose() {}\r\n\r\n /** @hidden */\r\n public get wasUsed() {\r\n return this._wasUsed;\r\n }\r\n\r\n public postExportMaterialAdditionalTextures(context: string, node: IMaterial, babylonMaterial: Material): BaseTexture[] {\r\n if (babylonMaterial instanceof PBRMaterial) {\r\n if (babylonMaterial.sheen.isEnabled && babylonMaterial.sheen.texture) {\r\n return [babylonMaterial.sheen.texture];\r\n }\r\n }\r\n\r\n return [];\r\n }\r\n\r\n public postExportMaterialAsync(context: string, node: IMaterial, babylonMaterial: Material): Promise<IMaterial> {\r\n return new Promise((resolve) => {\r\n if (babylonMaterial instanceof PBRMaterial) {\r\n if (!babylonMaterial.sheen.isEnabled) {\r\n resolve(node);\r\n return;\r\n }\r\n\r\n this._wasUsed = true;\r\n\r\n if (node.extensions == null) {\r\n node.extensions = {};\r\n }\r\n const sheenInfo: IKHRMaterialsSheen = {\r\n sheenColorFactor: babylonMaterial.sheen.color.asArray(),\r\n sheenRoughnessFactor: babylonMaterial.sheen.roughness ?? 0,\r\n hasTextures: () => {\r\n return sheenInfo.sheenColorTexture !== null || sheenInfo.sheenRoughnessTexture !== null;\r\n },\r\n };\r\n\r\n if (babylonMaterial.sheen.texture) {\r\n sheenInfo.sheenColorTexture = this._exporter._glTFMaterialExporter._getTextureInfo(babylonMaterial.sheen.texture) ?? undefined;\r\n }\r\n\r\n if (babylonMaterial.sheen.textureRoughness && !babylonMaterial.sheen.useRoughnessFromMainTexture) {\r\n sheenInfo.sheenRoughnessTexture = this._exporter._glTFMaterialExporter._getTextureInfo(babylonMaterial.sheen.textureRoughness) ?? undefined;\r\n } else if (babylonMaterial.sheen.texture && babylonMaterial.sheen.useRoughnessFromMainTexture) {\r\n sheenInfo.sheenRoughnessTexture = this._exporter._glTFMaterialExporter._getTextureInfo(babylonMaterial.sheen.texture) ?? undefined;\r\n }\r\n\r\n node.extensions[NAME] = sheenInfo;\r\n }\r\n resolve(node);\r\n });\r\n }\r\n}\r\n\r\n_Exporter.RegisterExtension(NAME, (exporter) => new KHR_materials_sheen(exporter));\r\n"]}
|
@@ -1,12 +1,12 @@
|
|
1
1
|
import { _Exporter } from "../glTFExporter.js";
|
2
2
|
import { PBRMaterial } from "@babylonjs/core/Materials/PBR/pbrMaterial.js";
|
3
|
-
|
3
|
+
const NAME = "KHR_materials_specular";
|
4
4
|
/**
|
5
5
|
* [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_materials_specular/README.md)
|
6
6
|
*/
|
7
7
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
8
|
-
|
9
|
-
|
8
|
+
export class KHR_materials_specular {
|
9
|
+
constructor(exporter) {
|
10
10
|
/** Name of this extension */
|
11
11
|
this.name = NAME;
|
12
12
|
/** Defines whether this extension is enabled */
|
@@ -16,17 +16,13 @@ var KHR_materials_specular = /** @class */ (function () {
|
|
16
16
|
this._wasUsed = false;
|
17
17
|
this._exporter = exporter;
|
18
18
|
}
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
configurable: true
|
27
|
-
});
|
28
|
-
KHR_materials_specular.prototype.postExportMaterialAdditionalTextures = function (context, node, babylonMaterial) {
|
29
|
-
var additionalTextures = [];
|
19
|
+
dispose() { }
|
20
|
+
/** @hidden */
|
21
|
+
get wasUsed() {
|
22
|
+
return this._wasUsed;
|
23
|
+
}
|
24
|
+
postExportMaterialAdditionalTextures(context, node, babylonMaterial) {
|
25
|
+
const additionalTextures = [];
|
30
26
|
if (babylonMaterial instanceof PBRMaterial) {
|
31
27
|
if (this._isExtensionEnabled(babylonMaterial)) {
|
32
28
|
if (babylonMaterial.metallicReflectanceTexture) {
|
@@ -39,8 +35,8 @@ var KHR_materials_specular = /** @class */ (function () {
|
|
39
35
|
}
|
40
36
|
}
|
41
37
|
return additionalTextures;
|
42
|
-
}
|
43
|
-
|
38
|
+
}
|
39
|
+
_isExtensionEnabled(mat) {
|
44
40
|
// This extension must not be used on a material that also uses KHR_materials_unlit
|
45
41
|
if (mat.unlit) {
|
46
42
|
return false;
|
@@ -48,39 +44,35 @@ var KHR_materials_specular = /** @class */ (function () {
|
|
48
44
|
return ((mat.metallicF0Factor != undefined && mat.metallicF0Factor != 1.0) ||
|
49
45
|
(mat.metallicReflectanceColor != undefined && !mat.metallicReflectanceColor.equalsFloats(1.0, 1.0, 1.0)) ||
|
50
46
|
this._hasTexturesExtension(mat));
|
51
|
-
}
|
52
|
-
|
47
|
+
}
|
48
|
+
_hasTexturesExtension(mat) {
|
53
49
|
return mat.metallicReflectanceTexture != null || mat.reflectanceTexture != null;
|
54
|
-
}
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
if (babylonMaterial instanceof PBRMaterial && _this._isExtensionEnabled(babylonMaterial)) {
|
60
|
-
_this._wasUsed = true;
|
50
|
+
}
|
51
|
+
postExportMaterialAsync(context, node, babylonMaterial) {
|
52
|
+
return new Promise((resolve) => {
|
53
|
+
if (babylonMaterial instanceof PBRMaterial && this._isExtensionEnabled(babylonMaterial)) {
|
54
|
+
this._wasUsed = true;
|
61
55
|
node.extensions = node.extensions || {};
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
56
|
+
const metallicReflectanceTexture = this._exporter._glTFMaterialExporter._getTextureInfo(babylonMaterial.metallicReflectanceTexture) ?? undefined;
|
57
|
+
const reflectanceTexture = this._exporter._glTFMaterialExporter._getTextureInfo(babylonMaterial.reflectanceTexture) ?? undefined;
|
58
|
+
const metallicF0Factor = babylonMaterial.metallicF0Factor == 1.0 ? undefined : babylonMaterial.metallicF0Factor;
|
59
|
+
const metallicReflectanceColor = babylonMaterial.metallicReflectanceColor.equalsFloats(1.0, 1.0, 1.0)
|
66
60
|
? undefined
|
67
61
|
: babylonMaterial.metallicReflectanceColor.asArray();
|
68
|
-
|
62
|
+
const specularInfo = {
|
69
63
|
specularFactor: metallicF0Factor,
|
70
64
|
specularTexture: metallicReflectanceTexture,
|
71
65
|
specularColorFactor: metallicReflectanceColor,
|
72
66
|
specularColorTexture: reflectanceTexture,
|
73
|
-
hasTextures:
|
74
|
-
return
|
67
|
+
hasTextures: () => {
|
68
|
+
return this._hasTexturesExtension(babylonMaterial);
|
75
69
|
},
|
76
70
|
};
|
77
71
|
node.extensions[NAME] = specularInfo;
|
78
72
|
}
|
79
73
|
resolve(node);
|
80
74
|
});
|
81
|
-
}
|
82
|
-
|
83
|
-
|
84
|
-
export { KHR_materials_specular };
|
85
|
-
_Exporter.RegisterExtension(NAME, function (exporter) { return new KHR_materials_specular(exporter); });
|
75
|
+
}
|
76
|
+
}
|
77
|
+
_Exporter.RegisterExtension(NAME, (exporter) => new KHR_materials_specular(exporter));
|
86
78
|
//# sourceMappingURL=KHR_materials_specular.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"KHR_materials_specular.js","sourceRoot":"","sources":["../../../../../../../lts/serializers/generated/glTF/2.0/Extensions/KHR_materials_specular.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,qDAAuC;AAG7D,
|
1
|
+
{"version":3,"file":"KHR_materials_specular.js","sourceRoot":"","sources":["../../../../../../../lts/serializers/generated/glTF/2.0/Extensions/KHR_materials_specular.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IMaterial, IKHRMaterialsSpecular } from \"babylonjs-gltf2interface\";\r\nimport type { IGLTFExporterExtensionV2 } from \"../glTFExporterExtension\";\r\nimport { _Exporter } 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\n\r\nconst NAME = \"KHR_materials_specular\";\r\n\r\n/**\r\n * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_materials_specular/README.md)\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport class KHR_materials_specular 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: _Exporter;\r\n\r\n private _wasUsed = false;\r\n\r\n constructor(exporter: _Exporter) {\r\n this._exporter = exporter;\r\n }\r\n\r\n public dispose() {}\r\n\r\n /** @hidden */\r\n public get wasUsed() {\r\n return this._wasUsed;\r\n }\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.metallicReflectanceTexture) {\r\n additionalTextures.push(babylonMaterial.metallicReflectanceTexture);\r\n }\r\n if (babylonMaterial.reflectanceTexture) {\r\n additionalTextures.push(babylonMaterial.reflectanceTexture);\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 return (\r\n (mat.metallicF0Factor != undefined && mat.metallicF0Factor != 1.0) ||\r\n (mat.metallicReflectanceColor != undefined && !mat.metallicReflectanceColor.equalsFloats(1.0, 1.0, 1.0)) ||\r\n this._hasTexturesExtension(mat)\r\n );\r\n }\r\n\r\n private _hasTexturesExtension(mat: PBRMaterial): boolean {\r\n return mat.metallicReflectanceTexture != null || mat.reflectanceTexture != null;\r\n }\r\n\r\n public postExportMaterialAsync?(context: string, node: IMaterial, babylonMaterial: Material): Promise<IMaterial> {\r\n return new Promise((resolve) => {\r\n if (babylonMaterial instanceof PBRMaterial && this._isExtensionEnabled(babylonMaterial)) {\r\n this._wasUsed = true;\r\n\r\n node.extensions = node.extensions || {};\r\n\r\n const metallicReflectanceTexture = this._exporter._glTFMaterialExporter._getTextureInfo(babylonMaterial.metallicReflectanceTexture) ?? undefined;\r\n const reflectanceTexture = this._exporter._glTFMaterialExporter._getTextureInfo(babylonMaterial.reflectanceTexture) ?? undefined;\r\n const metallicF0Factor = babylonMaterial.metallicF0Factor == 1.0 ? undefined : babylonMaterial.metallicF0Factor;\r\n const metallicReflectanceColor = babylonMaterial.metallicReflectanceColor.equalsFloats(1.0, 1.0, 1.0)\r\n ? undefined\r\n : babylonMaterial.metallicReflectanceColor.asArray();\r\n\r\n const specularInfo: IKHRMaterialsSpecular = {\r\n specularFactor: metallicF0Factor,\r\n specularTexture: metallicReflectanceTexture,\r\n specularColorFactor: metallicReflectanceColor,\r\n specularColorTexture: reflectanceTexture,\r\n hasTextures: () => {\r\n return this._hasTexturesExtension(babylonMaterial);\r\n },\r\n };\r\n node.extensions[NAME] = specularInfo;\r\n }\r\n resolve(node);\r\n });\r\n }\r\n}\r\n\r\n_Exporter.RegisterExtension(NAME, (exporter) => new KHR_materials_specular(exporter));\r\n"]}
|
@@ -1,12 +1,12 @@
|
|
1
1
|
import { _Exporter } from "../glTFExporter.js";
|
2
2
|
import { PBRMaterial } from "@babylonjs/core/Materials/PBR/pbrMaterial.js";
|
3
|
-
|
3
|
+
const NAME = "KHR_materials_transmission";
|
4
4
|
/**
|
5
5
|
* [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_materials_transmission/README.md)
|
6
6
|
*/
|
7
7
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
8
|
-
|
9
|
-
|
8
|
+
export class KHR_materials_transmission {
|
9
|
+
constructor(exporter) {
|
10
10
|
/** Name of this extension */
|
11
11
|
this.name = NAME;
|
12
12
|
/** Defines whether this extension is enabled */
|
@@ -16,17 +16,13 @@ var KHR_materials_transmission = /** @class */ (function () {
|
|
16
16
|
this._wasUsed = false;
|
17
17
|
this._exporter = exporter;
|
18
18
|
}
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
configurable: true
|
27
|
-
});
|
28
|
-
KHR_materials_transmission.prototype.postExportMaterialAdditionalTextures = function (context, node, babylonMaterial) {
|
29
|
-
var additionalTextures = [];
|
19
|
+
dispose() { }
|
20
|
+
/** @hidden */
|
21
|
+
get wasUsed() {
|
22
|
+
return this._wasUsed;
|
23
|
+
}
|
24
|
+
postExportMaterialAdditionalTextures(context, node, babylonMaterial) {
|
25
|
+
const additionalTextures = [];
|
30
26
|
if (babylonMaterial instanceof PBRMaterial) {
|
31
27
|
if (this._isExtensionEnabled(babylonMaterial)) {
|
32
28
|
if (babylonMaterial.subSurface.thicknessTexture) {
|
@@ -36,32 +32,30 @@ var KHR_materials_transmission = /** @class */ (function () {
|
|
36
32
|
}
|
37
33
|
}
|
38
34
|
return additionalTextures;
|
39
|
-
}
|
40
|
-
|
35
|
+
}
|
36
|
+
_isExtensionEnabled(mat) {
|
41
37
|
// This extension must not be used on a material that also uses KHR_materials_unlit
|
42
38
|
if (mat.unlit) {
|
43
39
|
return false;
|
44
40
|
}
|
45
|
-
|
41
|
+
const subs = mat.subSurface;
|
46
42
|
return (subs.isRefractionEnabled && subs.refractionIntensity != undefined && subs.refractionIntensity != 0) || this._hasTexturesExtension(mat);
|
47
|
-
}
|
48
|
-
|
43
|
+
}
|
44
|
+
_hasTexturesExtension(mat) {
|
49
45
|
return mat.subSurface.refractionIntensityTexture != null;
|
50
|
-
}
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
var transmissionTexture = (_a = _this._exporter._glTFMaterialExporter._getTextureInfo(subs.refractionIntensityTexture)) !== null && _a !== void 0 ? _a : undefined;
|
60
|
-
var volumeInfo = {
|
46
|
+
}
|
47
|
+
postExportMaterialAsync(context, node, babylonMaterial) {
|
48
|
+
return new Promise((resolve) => {
|
49
|
+
if (babylonMaterial instanceof PBRMaterial && this._isExtensionEnabled(babylonMaterial)) {
|
50
|
+
this._wasUsed = true;
|
51
|
+
const subs = babylonMaterial.subSurface;
|
52
|
+
const transmissionFactor = subs.refractionIntensity === 0 ? undefined : subs.refractionIntensity;
|
53
|
+
const transmissionTexture = this._exporter._glTFMaterialExporter._getTextureInfo(subs.refractionIntensityTexture) ?? undefined;
|
54
|
+
const volumeInfo = {
|
61
55
|
transmissionFactor: transmissionFactor,
|
62
56
|
transmissionTexture: transmissionTexture,
|
63
|
-
hasTextures:
|
64
|
-
return
|
57
|
+
hasTextures: () => {
|
58
|
+
return this._hasTexturesExtension(babylonMaterial);
|
65
59
|
},
|
66
60
|
};
|
67
61
|
node.extensions = node.extensions || {};
|
@@ -69,9 +63,7 @@ var KHR_materials_transmission = /** @class */ (function () {
|
|
69
63
|
}
|
70
64
|
resolve(node);
|
71
65
|
});
|
72
|
-
}
|
73
|
-
|
74
|
-
|
75
|
-
export { KHR_materials_transmission };
|
76
|
-
_Exporter.RegisterExtension(NAME, function (exporter) { return new KHR_materials_transmission(exporter); });
|
66
|
+
}
|
67
|
+
}
|
68
|
+
_Exporter.RegisterExtension(NAME, (exporter) => new KHR_materials_transmission(exporter));
|
77
69
|
//# sourceMappingURL=KHR_materials_transmission.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"KHR_materials_transmission.js","sourceRoot":"","sources":["../../../../../../../lts/serializers/generated/glTF/2.0/Extensions/KHR_materials_transmission.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,qDAAuC;AAG7D,
|
1
|
+
{"version":3,"file":"KHR_materials_transmission.js","sourceRoot":"","sources":["../../../../../../../lts/serializers/generated/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 { _Exporter } 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\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: _Exporter;\r\n\r\n private _wasUsed = false;\r\n\r\n constructor(exporter: _Exporter) {\r\n this._exporter = exporter;\r\n }\r\n\r\n public dispose() {}\r\n\r\n /** @hidden */\r\n public get wasUsed() {\r\n return this._wasUsed;\r\n }\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 public postExportMaterialAsync?(context: string, node: IMaterial, babylonMaterial: Material): Promise<IMaterial> {\r\n return new Promise((resolve) => {\r\n if (babylonMaterial instanceof PBRMaterial && this._isExtensionEnabled(babylonMaterial)) {\r\n this._wasUsed = true;\r\n\r\n const subs = babylonMaterial.subSurface;\r\n const transmissionFactor = subs.refractionIntensity === 0 ? undefined : subs.refractionIntensity;\r\n\r\n const transmissionTexture = this._exporter._glTFMaterialExporter._getTextureInfo(subs.refractionIntensityTexture) ?? undefined;\r\n\r\n const volumeInfo: IKHRMaterialsTransmission = {\r\n transmissionFactor: transmissionFactor,\r\n transmissionTexture: transmissionTexture,\r\n hasTextures: () => {\r\n return this._hasTexturesExtension(babylonMaterial);\r\n },\r\n };\r\n node.extensions = node.extensions || {};\r\n node.extensions[NAME] = volumeInfo;\r\n }\r\n resolve(node);\r\n });\r\n }\r\n}\r\n\r\n_Exporter.RegisterExtension(NAME, (exporter) => new KHR_materials_transmission(exporter));\r\n"]}
|
@@ -1,13 +1,13 @@
|
|
1
1
|
import { _Exporter } from "../glTFExporter.js";
|
2
2
|
import { PBRMaterial } from "@babylonjs/core/Materials/PBR/pbrMaterial.js";
|
3
3
|
import { StandardMaterial } from "@babylonjs/core/Materials/standardMaterial.js";
|
4
|
-
|
4
|
+
const NAME = "KHR_materials_unlit";
|
5
5
|
/**
|
6
6
|
* @hidden
|
7
7
|
*/
|
8
8
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
9
|
-
|
10
|
-
|
9
|
+
export class KHR_materials_unlit {
|
10
|
+
constructor() {
|
11
11
|
/** Name of this extension */
|
12
12
|
this.name = NAME;
|
13
13
|
/** Defines whether this extension is enabled */
|
@@ -16,19 +16,14 @@ var KHR_materials_unlit = /** @class */ (function () {
|
|
16
16
|
this.required = false;
|
17
17
|
this._wasUsed = false;
|
18
18
|
}
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
KHR_materials_unlit.prototype.dispose = function () { };
|
28
|
-
KHR_materials_unlit.prototype.postExportMaterialAsync = function (context, node, babylonMaterial) {
|
29
|
-
var _this = this;
|
30
|
-
return new Promise(function (resolve) {
|
31
|
-
var unlitMaterial = false;
|
19
|
+
/** @hidden */
|
20
|
+
get wasUsed() {
|
21
|
+
return this._wasUsed;
|
22
|
+
}
|
23
|
+
dispose() { }
|
24
|
+
postExportMaterialAsync(context, node, babylonMaterial) {
|
25
|
+
return new Promise((resolve) => {
|
26
|
+
let unlitMaterial = false;
|
32
27
|
if (babylonMaterial instanceof PBRMaterial) {
|
33
28
|
unlitMaterial = babylonMaterial.unlit;
|
34
29
|
}
|
@@ -36,7 +31,7 @@ var KHR_materials_unlit = /** @class */ (function () {
|
|
36
31
|
unlitMaterial = babylonMaterial.disableLighting;
|
37
32
|
}
|
38
33
|
if (unlitMaterial) {
|
39
|
-
|
34
|
+
this._wasUsed = true;
|
40
35
|
if (node.extensions == null) {
|
41
36
|
node.extensions = {};
|
42
37
|
}
|
@@ -44,9 +39,7 @@ var KHR_materials_unlit = /** @class */ (function () {
|
|
44
39
|
}
|
45
40
|
resolve(node);
|
46
41
|
});
|
47
|
-
}
|
48
|
-
|
49
|
-
|
50
|
-
export { KHR_materials_unlit };
|
51
|
-
_Exporter.RegisterExtension(NAME, function () { return new KHR_materials_unlit(); });
|
42
|
+
}
|
43
|
+
}
|
44
|
+
_Exporter.RegisterExtension(NAME, () => new KHR_materials_unlit());
|
52
45
|
//# sourceMappingURL=KHR_materials_unlit.js.map
|