@babylonjs/loaders 5.0.0-rc.5 → 5.0.0-rc.9

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.
Files changed (115) hide show
  1. package/OBJ/index.d.ts +4 -4
  2. package/OBJ/index.js +4 -4
  3. package/OBJ/mtlFileLoader.d.ts +41 -41
  4. package/OBJ/mtlFileLoader.js +232 -232
  5. package/OBJ/objFileLoader.d.ts +126 -126
  6. package/OBJ/objFileLoader.js +296 -296
  7. package/OBJ/objLoadingOptions.d.ts +43 -43
  8. package/OBJ/objLoadingOptions.js +1 -1
  9. package/OBJ/solidParser.d.ts +154 -154
  10. package/OBJ/solidParser.js +693 -693
  11. package/STL/index.d.ts +1 -1
  12. package/STL/index.js +1 -1
  13. package/STL/stlFileLoader.d.ts +64 -64
  14. package/STL/stlFileLoader.js +233 -233
  15. package/glTF/1.0/glTFBinaryExtension.d.ts +13 -13
  16. package/glTF/1.0/glTFBinaryExtension.js +60 -60
  17. package/glTF/1.0/glTFLoader.d.ts +136 -136
  18. package/glTF/1.0/glTFLoader.js +1815 -1815
  19. package/glTF/1.0/glTFLoaderInterfaces.d.ts +412 -412
  20. package/glTF/1.0/glTFLoaderInterfaces.js +95 -95
  21. package/glTF/1.0/glTFLoaderUtils.d.ts +62 -62
  22. package/glTF/1.0/glTFLoaderUtils.js +250 -250
  23. package/glTF/1.0/glTFMaterialsCommonExtension.d.ts +10 -10
  24. package/glTF/1.0/glTFMaterialsCommonExtension.js +129 -129
  25. package/glTF/1.0/index.d.ts +5 -5
  26. package/glTF/1.0/index.js +5 -5
  27. package/glTF/2.0/Extensions/EXT_lights_image_based.d.ts +43 -43
  28. package/glTF/2.0/Extensions/EXT_lights_image_based.js +117 -117
  29. package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.d.ts +36 -36
  30. package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.js +88 -88
  31. package/glTF/2.0/Extensions/EXT_meshopt_compression.d.ts +34 -34
  32. package/glTF/2.0/Extensions/EXT_meshopt_compression.js +49 -49
  33. package/glTF/2.0/Extensions/EXT_texture_webp.d.ts +29 -29
  34. package/glTF/2.0/Extensions/EXT_texture_webp.js +40 -40
  35. package/glTF/2.0/Extensions/ExtrasAsMetadata.d.ts +50 -50
  36. package/glTF/2.0/Extensions/ExtrasAsMetadata.js +73 -73
  37. package/glTF/2.0/Extensions/KHR_draco_mesh_compression.d.ts +39 -39
  38. package/glTF/2.0/Extensions/KHR_draco_mesh_compression.js +112 -112
  39. package/glTF/2.0/Extensions/KHR_lights_punctual.d.ts +36 -36
  40. package/glTF/2.0/Extensions/KHR_lights_punctual.js +89 -89
  41. package/glTF/2.0/Extensions/KHR_materials_clearcoat.d.ts +39 -39
  42. package/glTF/2.0/Extensions/KHR_materials_clearcoat.js +94 -94
  43. package/glTF/2.0/Extensions/KHR_materials_emissive_strength.d.ts +38 -38
  44. package/glTF/2.0/Extensions/KHR_materials_emissive_strength.js +53 -53
  45. package/glTF/2.0/Extensions/KHR_materials_ior.d.ts +42 -42
  46. package/glTF/2.0/Extensions/KHR_materials_ior.js +62 -62
  47. package/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.d.ts +38 -38
  48. package/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.js +80 -80
  49. package/glTF/2.0/Extensions/KHR_materials_sheen.d.ts +39 -39
  50. package/glTF/2.0/Extensions/KHR_materials_sheen.js +84 -84
  51. package/glTF/2.0/Extensions/KHR_materials_specular.d.ts +38 -38
  52. package/glTF/2.0/Extensions/KHR_materials_specular.js +74 -74
  53. package/glTF/2.0/Extensions/KHR_materials_translucency.d.ts +39 -39
  54. package/glTF/2.0/Extensions/KHR_materials_translucency.js +83 -83
  55. package/glTF/2.0/Extensions/KHR_materials_transmission.d.ts +38 -38
  56. package/glTF/2.0/Extensions/KHR_materials_transmission.js +288 -288
  57. package/glTF/2.0/Extensions/KHR_materials_unlit.d.ts +38 -38
  58. package/glTF/2.0/Extensions/KHR_materials_unlit.js +73 -73
  59. package/glTF/2.0/Extensions/KHR_materials_variants.d.ts +87 -87
  60. package/glTF/2.0/Extensions/KHR_materials_variants.js +254 -254
  61. package/glTF/2.0/Extensions/KHR_materials_volume.d.ts +39 -39
  62. package/glTF/2.0/Extensions/KHR_materials_volume.js +85 -85
  63. package/glTF/2.0/Extensions/KHR_mesh_quantization.d.ts +22 -22
  64. package/glTF/2.0/Extensions/KHR_mesh_quantization.js +23 -23
  65. package/glTF/2.0/Extensions/KHR_texture_basisu.d.ts +29 -29
  66. package/glTF/2.0/Extensions/KHR_texture_basisu.js +40 -40
  67. package/glTF/2.0/Extensions/KHR_texture_transform.d.ts +33 -33
  68. package/glTF/2.0/Extensions/KHR_texture_transform.js +61 -61
  69. package/glTF/2.0/Extensions/KHR_xmp_json_ld.d.ts +32 -32
  70. package/glTF/2.0/Extensions/KHR_xmp_json_ld.js +49 -49
  71. package/glTF/2.0/Extensions/MSFT_audio_emitter.d.ts +54 -54
  72. package/glTF/2.0/Extensions/MSFT_audio_emitter.js +240 -240
  73. package/glTF/2.0/Extensions/MSFT_lod.d.ts +109 -109
  74. package/glTF/2.0/Extensions/MSFT_lod.js +369 -369
  75. package/glTF/2.0/Extensions/MSFT_minecraftMesh.d.ts +14 -14
  76. package/glTF/2.0/Extensions/MSFT_minecraftMesh.js +36 -36
  77. package/glTF/2.0/Extensions/MSFT_sRGBFactors.d.ts +14 -14
  78. package/glTF/2.0/Extensions/MSFT_sRGBFactors.js +36 -36
  79. package/glTF/2.0/Extensions/index.d.ts +26 -26
  80. package/glTF/2.0/Extensions/index.js +26 -26
  81. package/glTF/2.0/glTFLoader.d.ts +405 -405
  82. package/glTF/2.0/glTFLoader.js +2366 -2366
  83. package/glTF/2.0/glTFLoaderExtension.d.ts +152 -152
  84. package/glTF/2.0/glTFLoaderExtension.js +1 -1
  85. package/glTF/2.0/glTFLoaderInterfaces.d.ts +211 -211
  86. package/glTF/2.0/glTFLoaderInterfaces.js +1 -1
  87. package/glTF/2.0/index.d.ts +4 -4
  88. package/glTF/2.0/index.js +4 -4
  89. package/glTF/glTFFileLoader.d.ts +433 -433
  90. package/glTF/glTFFileLoader.js +927 -927
  91. package/glTF/glTFValidation.d.ts +29 -29
  92. package/glTF/glTFValidation.js +123 -123
  93. package/glTF/index.d.ts +5 -5
  94. package/glTF/index.js +5 -5
  95. package/index.d.ts +3 -3
  96. package/index.js +3 -3
  97. package/legacy/legacy-glTF.d.ts +2 -2
  98. package/legacy/legacy-glTF.js +18 -18
  99. package/legacy/legacy-glTF1.d.ts +2 -2
  100. package/legacy/legacy-glTF1.js +14 -14
  101. package/legacy/legacy-glTF1FileLoader.d.ts +2 -2
  102. package/legacy/legacy-glTF1FileLoader.js +3 -3
  103. package/legacy/legacy-glTF2.d.ts +2 -2
  104. package/legacy/legacy-glTF2.js +32 -32
  105. package/legacy/legacy-glTF2FileLoader.d.ts +2 -2
  106. package/legacy/legacy-glTF2FileLoader.js +3 -3
  107. package/legacy/legacy-glTFFileLoader.d.ts +3 -3
  108. package/legacy/legacy-glTFFileLoader.js +4 -4
  109. package/legacy/legacy-objFileLoader.d.ts +1 -1
  110. package/legacy/legacy-objFileLoader.js +12 -12
  111. package/legacy/legacy-stlFileLoader.d.ts +1 -1
  112. package/legacy/legacy-stlFileLoader.js +12 -12
  113. package/legacy/legacy.d.ts +6 -6
  114. package/legacy/legacy.js +7 -7
  115. package/package.json +3 -3
@@ -1,42 +1,42 @@
1
- import { Nullable } from "@babylonjs/core/types.js";
2
- import { Material } from "@babylonjs/core/Materials/material.js";
3
- import { IMaterial } from "../glTFLoaderInterfaces";
4
- import { IGLTFLoaderExtension } from "../glTFLoaderExtension";
5
- import { GLTFLoader } from "../glTFLoader";
6
- /**
7
- * [Specification](https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_ior)
8
- */
9
- export declare class KHR_materials_ior implements IGLTFLoaderExtension {
10
- /**
11
- * Default ior Value from the spec.
12
- */
13
- private static readonly _DEFAULT_IOR;
14
- /**
15
- * The name of this extension.
16
- */
17
- readonly name = "KHR_materials_ior";
18
- /**
19
- * Defines whether this extension is enabled.
20
- */
21
- enabled: boolean;
22
- /**
23
- * Defines a number that determines the order the extensions are applied.
24
- */
25
- order: number;
26
- private _loader;
27
- /**
28
- * @param loader
29
- * @hidden
30
- */
31
- constructor(loader: GLTFLoader);
32
- /** @hidden */
33
- dispose(): void;
34
- /**
35
- * @param context
36
- * @param material
37
- * @param babylonMaterial
38
- * @hidden
39
- */
40
- loadMaterialPropertiesAsync(context: string, material: IMaterial, babylonMaterial: Material): Nullable<Promise<void>>;
41
- private _loadIorPropertiesAsync;
42
- }
1
+ import { Nullable } from "@babylonjs/core/types.js";
2
+ import { Material } from "@babylonjs/core/Materials/material.js";
3
+ import { IMaterial } from "../glTFLoaderInterfaces";
4
+ import { IGLTFLoaderExtension } from "../glTFLoaderExtension";
5
+ import { GLTFLoader } from "../glTFLoader";
6
+ /**
7
+ * [Specification](https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_ior)
8
+ */
9
+ export declare class KHR_materials_ior implements IGLTFLoaderExtension {
10
+ /**
11
+ * Default ior Value from the spec.
12
+ */
13
+ private static readonly _DEFAULT_IOR;
14
+ /**
15
+ * The name of this extension.
16
+ */
17
+ readonly name = "KHR_materials_ior";
18
+ /**
19
+ * Defines whether this extension is enabled.
20
+ */
21
+ enabled: boolean;
22
+ /**
23
+ * Defines a number that determines the order the extensions are applied.
24
+ */
25
+ order: number;
26
+ private _loader;
27
+ /**
28
+ * @param loader
29
+ * @hidden
30
+ */
31
+ constructor(loader: GLTFLoader);
32
+ /** @hidden */
33
+ dispose(): void;
34
+ /**
35
+ * @param context
36
+ * @param material
37
+ * @param babylonMaterial
38
+ * @hidden
39
+ */
40
+ loadMaterialPropertiesAsync(context: string, material: IMaterial, babylonMaterial: Material): Nullable<Promise<void>>;
41
+ private _loadIorPropertiesAsync;
42
+ }
@@ -1,63 +1,63 @@
1
- import { PBRMaterial } from "@babylonjs/core/Materials/PBR/pbrMaterial.js";
2
- import { GLTFLoader } from "../glTFLoader.js";
3
- var NAME = "KHR_materials_ior";
4
- /**
5
- * [Specification](https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_ior)
6
- */
7
- var KHR_materials_ior = /** @class */ (function () {
8
- /**
9
- * @param loader
10
- * @hidden
11
- */
12
- function KHR_materials_ior(loader) {
13
- /**
14
- * The name of this extension.
15
- */
16
- this.name = NAME;
17
- /**
18
- * Defines a number that determines the order the extensions are applied.
19
- */
20
- this.order = 180;
21
- this._loader = loader;
22
- this.enabled = this._loader.isExtensionUsed(NAME);
23
- }
24
- /** @hidden */
25
- KHR_materials_ior.prototype.dispose = function () {
26
- this._loader = null;
27
- };
28
- /**
29
- * @param context
30
- * @param material
31
- * @param babylonMaterial
32
- * @hidden
33
- */
34
- KHR_materials_ior.prototype.loadMaterialPropertiesAsync = function (context, material, babylonMaterial) {
35
- var _this = this;
36
- return GLTFLoader.LoadExtensionAsync(context, material, this.name, function (extensionContext, extension) {
37
- var promises = new Array();
38
- promises.push(_this._loader.loadMaterialPropertiesAsync(context, material, babylonMaterial));
39
- promises.push(_this._loadIorPropertiesAsync(extensionContext, extension, babylonMaterial));
40
- return Promise.all(promises).then(function () { });
41
- });
42
- };
43
- KHR_materials_ior.prototype._loadIorPropertiesAsync = function (context, properties, babylonMaterial) {
44
- if (!(babylonMaterial instanceof PBRMaterial)) {
45
- throw new Error("".concat(context, ": Material type not supported"));
46
- }
47
- if (properties.ior !== undefined) {
48
- babylonMaterial.indexOfRefraction = properties.ior;
49
- }
50
- else {
51
- babylonMaterial.indexOfRefraction = KHR_materials_ior._DEFAULT_IOR;
52
- }
53
- return Promise.resolve();
54
- };
55
- /**
56
- * Default ior Value from the spec.
57
- */
58
- KHR_materials_ior._DEFAULT_IOR = 1.5;
59
- return KHR_materials_ior;
60
- }());
61
- export { KHR_materials_ior };
62
- GLTFLoader.RegisterExtension(NAME, function (loader) { return new KHR_materials_ior(loader); });
1
+ import { PBRMaterial } from "@babylonjs/core/Materials/PBR/pbrMaterial.js";
2
+ import { GLTFLoader } from "../glTFLoader";
3
+ var NAME = "KHR_materials_ior";
4
+ /**
5
+ * [Specification](https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_ior)
6
+ */
7
+ var KHR_materials_ior = /** @class */ (function () {
8
+ /**
9
+ * @param loader
10
+ * @hidden
11
+ */
12
+ function KHR_materials_ior(loader) {
13
+ /**
14
+ * The name of this extension.
15
+ */
16
+ this.name = NAME;
17
+ /**
18
+ * Defines a number that determines the order the extensions are applied.
19
+ */
20
+ this.order = 180;
21
+ this._loader = loader;
22
+ this.enabled = this._loader.isExtensionUsed(NAME);
23
+ }
24
+ /** @hidden */
25
+ KHR_materials_ior.prototype.dispose = function () {
26
+ this._loader = null;
27
+ };
28
+ /**
29
+ * @param context
30
+ * @param material
31
+ * @param babylonMaterial
32
+ * @hidden
33
+ */
34
+ KHR_materials_ior.prototype.loadMaterialPropertiesAsync = function (context, material, babylonMaterial) {
35
+ var _this = this;
36
+ return GLTFLoader.LoadExtensionAsync(context, material, this.name, function (extensionContext, extension) {
37
+ var promises = new Array();
38
+ promises.push(_this._loader.loadMaterialPropertiesAsync(context, material, babylonMaterial));
39
+ promises.push(_this._loadIorPropertiesAsync(extensionContext, extension, babylonMaterial));
40
+ return Promise.all(promises).then(function () { });
41
+ });
42
+ };
43
+ KHR_materials_ior.prototype._loadIorPropertiesAsync = function (context, properties, babylonMaterial) {
44
+ if (!(babylonMaterial instanceof PBRMaterial)) {
45
+ throw new Error("".concat(context, ": Material type not supported"));
46
+ }
47
+ if (properties.ior !== undefined) {
48
+ babylonMaterial.indexOfRefraction = properties.ior;
49
+ }
50
+ else {
51
+ babylonMaterial.indexOfRefraction = KHR_materials_ior._DEFAULT_IOR;
52
+ }
53
+ return Promise.resolve();
54
+ };
55
+ /**
56
+ * Default ior Value from the spec.
57
+ */
58
+ KHR_materials_ior._DEFAULT_IOR = 1.5;
59
+ return KHR_materials_ior;
60
+ }());
61
+ export { KHR_materials_ior };
62
+ GLTFLoader.RegisterExtension(NAME, function (loader) { return new KHR_materials_ior(loader); });
63
63
  //# sourceMappingURL=KHR_materials_ior.js.map
@@ -1,38 +1,38 @@
1
- import { Nullable } from "@babylonjs/core/types.js";
2
- import { Material } from "@babylonjs/core/Materials/material.js";
3
- import { IMaterial } from "../glTFLoaderInterfaces";
4
- import { IGLTFLoaderExtension } from "../glTFLoaderExtension";
5
- import { GLTFLoader } from "../glTFLoader";
6
- /**
7
- * [Specification](https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_pbrSpecularGlossiness)
8
- */
9
- export declare class KHR_materials_pbrSpecularGlossiness implements IGLTFLoaderExtension {
10
- /**
11
- * The name of this extension.
12
- */
13
- readonly name = "KHR_materials_pbrSpecularGlossiness";
14
- /**
15
- * Defines whether this extension is enabled.
16
- */
17
- enabled: boolean;
18
- /**
19
- * Defines a number that determines the order the extensions are applied.
20
- */
21
- order: number;
22
- private _loader;
23
- /**
24
- * @param loader
25
- * @hidden
26
- */
27
- constructor(loader: GLTFLoader);
28
- /** @hidden */
29
- dispose(): void;
30
- /**
31
- * @param context
32
- * @param material
33
- * @param babylonMaterial
34
- * @hidden
35
- */
36
- loadMaterialPropertiesAsync(context: string, material: IMaterial, babylonMaterial: Material): Nullable<Promise<void>>;
37
- private _loadSpecularGlossinessPropertiesAsync;
38
- }
1
+ import { Nullable } from "@babylonjs/core/types.js";
2
+ import { Material } from "@babylonjs/core/Materials/material.js";
3
+ import { IMaterial } from "../glTFLoaderInterfaces";
4
+ import { IGLTFLoaderExtension } from "../glTFLoaderExtension";
5
+ import { GLTFLoader } from "../glTFLoader";
6
+ /**
7
+ * [Specification](https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_pbrSpecularGlossiness)
8
+ */
9
+ export declare class KHR_materials_pbrSpecularGlossiness implements IGLTFLoaderExtension {
10
+ /**
11
+ * The name of this extension.
12
+ */
13
+ readonly name = "KHR_materials_pbrSpecularGlossiness";
14
+ /**
15
+ * Defines whether this extension is enabled.
16
+ */
17
+ enabled: boolean;
18
+ /**
19
+ * Defines a number that determines the order the extensions are applied.
20
+ */
21
+ order: number;
22
+ private _loader;
23
+ /**
24
+ * @param loader
25
+ * @hidden
26
+ */
27
+ constructor(loader: GLTFLoader);
28
+ /** @hidden */
29
+ dispose(): void;
30
+ /**
31
+ * @param context
32
+ * @param material
33
+ * @param babylonMaterial
34
+ * @hidden
35
+ */
36
+ loadMaterialPropertiesAsync(context: string, material: IMaterial, babylonMaterial: Material): Nullable<Promise<void>>;
37
+ private _loadSpecularGlossinessPropertiesAsync;
38
+ }
@@ -1,81 +1,81 @@
1
- import { Color3 } from "@babylonjs/core/Maths/math.color.js";
2
- import { PBRMaterial } from "@babylonjs/core/Materials/PBR/pbrMaterial.js";
3
- import { GLTFLoader } from "../glTFLoader.js";
4
- var NAME = "KHR_materials_pbrSpecularGlossiness";
5
- /**
6
- * [Specification](https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_pbrSpecularGlossiness)
7
- */
8
- var KHR_materials_pbrSpecularGlossiness = /** @class */ (function () {
9
- /**
10
- * @param loader
11
- * @hidden
12
- */
13
- function KHR_materials_pbrSpecularGlossiness(loader) {
14
- /**
15
- * The name of this extension.
16
- */
17
- this.name = NAME;
18
- /**
19
- * Defines a number that determines the order the extensions are applied.
20
- */
21
- this.order = 200;
22
- this._loader = loader;
23
- this.enabled = this._loader.isExtensionUsed(NAME);
24
- }
25
- /** @hidden */
26
- KHR_materials_pbrSpecularGlossiness.prototype.dispose = function () {
27
- this._loader = null;
28
- };
29
- /**
30
- * @param context
31
- * @param material
32
- * @param babylonMaterial
33
- * @hidden
34
- */
35
- KHR_materials_pbrSpecularGlossiness.prototype.loadMaterialPropertiesAsync = function (context, material, babylonMaterial) {
36
- var _this = this;
37
- return GLTFLoader.LoadExtensionAsync(context, material, this.name, function (extensionContext, extension) {
38
- var promises = new Array();
39
- promises.push(_this._loader.loadMaterialBasePropertiesAsync(context, material, babylonMaterial));
40
- promises.push(_this._loadSpecularGlossinessPropertiesAsync(extensionContext, material, extension, babylonMaterial));
41
- _this._loader.loadMaterialAlphaProperties(context, material, babylonMaterial);
42
- return Promise.all(promises).then(function () { });
43
- });
44
- };
45
- KHR_materials_pbrSpecularGlossiness.prototype._loadSpecularGlossinessPropertiesAsync = function (context, material, properties, babylonMaterial) {
46
- if (!(babylonMaterial instanceof PBRMaterial)) {
47
- throw new Error("".concat(context, ": Material type not supported"));
48
- }
49
- var promises = new Array();
50
- babylonMaterial.metallic = null;
51
- babylonMaterial.roughness = null;
52
- if (properties.diffuseFactor) {
53
- babylonMaterial.albedoColor = Color3.FromArray(properties.diffuseFactor);
54
- babylonMaterial.alpha = properties.diffuseFactor[3];
55
- }
56
- else {
57
- babylonMaterial.albedoColor = Color3.White();
58
- }
59
- babylonMaterial.reflectivityColor = properties.specularFactor ? Color3.FromArray(properties.specularFactor) : Color3.White();
60
- babylonMaterial.microSurface = properties.glossinessFactor == undefined ? 1 : properties.glossinessFactor;
61
- if (properties.diffuseTexture) {
62
- promises.push(this._loader.loadTextureInfoAsync("".concat(context, "/diffuseTexture"), properties.diffuseTexture, function (texture) {
63
- texture.name = "".concat(babylonMaterial.name, " (Diffuse)");
64
- babylonMaterial.albedoTexture = texture;
65
- }));
66
- }
67
- if (properties.specularGlossinessTexture) {
68
- promises.push(this._loader.loadTextureInfoAsync("".concat(context, "/specularGlossinessTexture"), properties.specularGlossinessTexture, function (texture) {
69
- texture.name = "".concat(babylonMaterial.name, " (Specular Glossiness)");
70
- babylonMaterial.reflectivityTexture = texture;
71
- }));
72
- babylonMaterial.reflectivityTexture.hasAlpha = true;
73
- babylonMaterial.useMicroSurfaceFromReflectivityMapAlpha = true;
74
- }
75
- return Promise.all(promises).then(function () { });
76
- };
77
- return KHR_materials_pbrSpecularGlossiness;
78
- }());
79
- export { KHR_materials_pbrSpecularGlossiness };
80
- GLTFLoader.RegisterExtension(NAME, function (loader) { return new KHR_materials_pbrSpecularGlossiness(loader); });
1
+ import { Color3 } from "@babylonjs/core/Maths/math.color.js";
2
+ import { PBRMaterial } from "@babylonjs/core/Materials/PBR/pbrMaterial.js";
3
+ import { GLTFLoader } from "../glTFLoader";
4
+ var NAME = "KHR_materials_pbrSpecularGlossiness";
5
+ /**
6
+ * [Specification](https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_pbrSpecularGlossiness)
7
+ */
8
+ var KHR_materials_pbrSpecularGlossiness = /** @class */ (function () {
9
+ /**
10
+ * @param loader
11
+ * @hidden
12
+ */
13
+ function KHR_materials_pbrSpecularGlossiness(loader) {
14
+ /**
15
+ * The name of this extension.
16
+ */
17
+ this.name = NAME;
18
+ /**
19
+ * Defines a number that determines the order the extensions are applied.
20
+ */
21
+ this.order = 200;
22
+ this._loader = loader;
23
+ this.enabled = this._loader.isExtensionUsed(NAME);
24
+ }
25
+ /** @hidden */
26
+ KHR_materials_pbrSpecularGlossiness.prototype.dispose = function () {
27
+ this._loader = null;
28
+ };
29
+ /**
30
+ * @param context
31
+ * @param material
32
+ * @param babylonMaterial
33
+ * @hidden
34
+ */
35
+ KHR_materials_pbrSpecularGlossiness.prototype.loadMaterialPropertiesAsync = function (context, material, babylonMaterial) {
36
+ var _this = this;
37
+ return GLTFLoader.LoadExtensionAsync(context, material, this.name, function (extensionContext, extension) {
38
+ var promises = new Array();
39
+ promises.push(_this._loader.loadMaterialBasePropertiesAsync(context, material, babylonMaterial));
40
+ promises.push(_this._loadSpecularGlossinessPropertiesAsync(extensionContext, material, extension, babylonMaterial));
41
+ _this._loader.loadMaterialAlphaProperties(context, material, babylonMaterial);
42
+ return Promise.all(promises).then(function () { });
43
+ });
44
+ };
45
+ KHR_materials_pbrSpecularGlossiness.prototype._loadSpecularGlossinessPropertiesAsync = function (context, material, properties, babylonMaterial) {
46
+ if (!(babylonMaterial instanceof PBRMaterial)) {
47
+ throw new Error("".concat(context, ": Material type not supported"));
48
+ }
49
+ var promises = new Array();
50
+ babylonMaterial.metallic = null;
51
+ babylonMaterial.roughness = null;
52
+ if (properties.diffuseFactor) {
53
+ babylonMaterial.albedoColor = Color3.FromArray(properties.diffuseFactor);
54
+ babylonMaterial.alpha = properties.diffuseFactor[3];
55
+ }
56
+ else {
57
+ babylonMaterial.albedoColor = Color3.White();
58
+ }
59
+ babylonMaterial.reflectivityColor = properties.specularFactor ? Color3.FromArray(properties.specularFactor) : Color3.White();
60
+ babylonMaterial.microSurface = properties.glossinessFactor == undefined ? 1 : properties.glossinessFactor;
61
+ if (properties.diffuseTexture) {
62
+ promises.push(this._loader.loadTextureInfoAsync("".concat(context, "/diffuseTexture"), properties.diffuseTexture, function (texture) {
63
+ texture.name = "".concat(babylonMaterial.name, " (Diffuse)");
64
+ babylonMaterial.albedoTexture = texture;
65
+ }));
66
+ }
67
+ if (properties.specularGlossinessTexture) {
68
+ promises.push(this._loader.loadTextureInfoAsync("".concat(context, "/specularGlossinessTexture"), properties.specularGlossinessTexture, function (texture) {
69
+ texture.name = "".concat(babylonMaterial.name, " (Specular Glossiness)");
70
+ babylonMaterial.reflectivityTexture = texture;
71
+ }));
72
+ babylonMaterial.reflectivityTexture.hasAlpha = true;
73
+ babylonMaterial.useMicroSurfaceFromReflectivityMapAlpha = true;
74
+ }
75
+ return Promise.all(promises).then(function () { });
76
+ };
77
+ return KHR_materials_pbrSpecularGlossiness;
78
+ }());
79
+ export { KHR_materials_pbrSpecularGlossiness };
80
+ GLTFLoader.RegisterExtension(NAME, function (loader) { return new KHR_materials_pbrSpecularGlossiness(loader); });
81
81
  //# sourceMappingURL=KHR_materials_pbrSpecularGlossiness.js.map
@@ -1,39 +1,39 @@
1
- import { Nullable } from "@babylonjs/core/types.js";
2
- import { Material } from "@babylonjs/core/Materials/material.js";
3
- import { IMaterial } from "../glTFLoaderInterfaces";
4
- import { IGLTFLoaderExtension } from "../glTFLoaderExtension";
5
- import { GLTFLoader } from "../glTFLoader";
6
- /**
7
- * [Specification](https://github.com/KhronosGroup/glTF/blob/master/extensions/2.0/Khronos/KHR_materials_sheen/README.md)
8
- * [Playground Sample](https://www.babylonjs-playground.com/frame.html#BNIZX6#4)
9
- */
10
- export declare class KHR_materials_sheen implements IGLTFLoaderExtension {
11
- /**
12
- * The name of this extension.
13
- */
14
- readonly name = "KHR_materials_sheen";
15
- /**
16
- * Defines whether this extension is enabled.
17
- */
18
- enabled: boolean;
19
- /**
20
- * Defines a number that determines the order the extensions are applied.
21
- */
22
- order: number;
23
- private _loader;
24
- /**
25
- * @param loader
26
- * @hidden
27
- */
28
- constructor(loader: GLTFLoader);
29
- /** @hidden */
30
- dispose(): void;
31
- /**
32
- * @param context
33
- * @param material
34
- * @param babylonMaterial
35
- * @hidden
36
- */
37
- loadMaterialPropertiesAsync(context: string, material: IMaterial, babylonMaterial: Material): Nullable<Promise<void>>;
38
- private _loadSheenPropertiesAsync;
39
- }
1
+ import { Nullable } from "@babylonjs/core/types.js";
2
+ import { Material } from "@babylonjs/core/Materials/material.js";
3
+ import { IMaterial } from "../glTFLoaderInterfaces";
4
+ import { IGLTFLoaderExtension } from "../glTFLoaderExtension";
5
+ import { GLTFLoader } from "../glTFLoader";
6
+ /**
7
+ * [Specification](https://github.com/KhronosGroup/glTF/blob/master/extensions/2.0/Khronos/KHR_materials_sheen/README.md)
8
+ * [Playground Sample](https://www.babylonjs-playground.com/frame.html#BNIZX6#4)
9
+ */
10
+ export declare class KHR_materials_sheen implements IGLTFLoaderExtension {
11
+ /**
12
+ * The name of this extension.
13
+ */
14
+ readonly name = "KHR_materials_sheen";
15
+ /**
16
+ * Defines whether this extension is enabled.
17
+ */
18
+ enabled: boolean;
19
+ /**
20
+ * Defines a number that determines the order the extensions are applied.
21
+ */
22
+ order: number;
23
+ private _loader;
24
+ /**
25
+ * @param loader
26
+ * @hidden
27
+ */
28
+ constructor(loader: GLTFLoader);
29
+ /** @hidden */
30
+ dispose(): void;
31
+ /**
32
+ * @param context
33
+ * @param material
34
+ * @param babylonMaterial
35
+ * @hidden
36
+ */
37
+ loadMaterialPropertiesAsync(context: string, material: IMaterial, babylonMaterial: Material): Nullable<Promise<void>>;
38
+ private _loadSheenPropertiesAsync;
39
+ }