babylonjs-loaders 8.33.4 → 8.34.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.
@@ -1093,6 +1093,11 @@ export class PBRMaterialLoadingAdapter implements IMaterialLoadingAdapter {
1093
1093
  * @param value The sheen weight value
1094
1094
  */
1095
1095
  set fuzzWeight(value: number);
1096
+ /**
1097
+ * Sets the fuzz weight texture.
1098
+ * @param value The fuzz weight texture or null
1099
+ */
1100
+ set fuzzWeightTexture(value: Nullable<BaseTexture>);
1096
1101
  /**
1097
1102
  * Sets the sheen color (mapped to PBR sheen.color).
1098
1103
  * Automatically enables sheen.
@@ -1698,6 +1703,11 @@ export class OpenPBRMaterialLoadingAdapter implements IMaterialLoadingAdapter {
1698
1703
  * @param value The fuzz weight value
1699
1704
  */
1700
1705
  set fuzzWeight(value: number);
1706
+ /**
1707
+ * Sets the fuzz weight texture.
1708
+ * @param value The fuzz weight texture or null
1709
+ */
1710
+ set fuzzWeightTexture(value: Nullable<BaseTexture>);
1701
1711
  /**
1702
1712
  * Sets the fuzz color.
1703
1713
  * @param value The fuzz color as a Color3
@@ -1868,27 +1878,27 @@ export interface IMaterialLoadingAdapter {
1868
1878
  */
1869
1879
  transparencyAsAlphaCoverage: boolean;
1870
1880
  /**
1871
- * Sets/gets the base color (OpenPBR: baseColor, PBR: albedoColor)
1881
+ * Sets/gets the base color
1872
1882
  */
1873
1883
  baseColor: Color3;
1874
1884
  /**
1875
- * Sets/gets the base color texture (OpenPBR: baseColorTexture, PBR: albedoTexture)
1885
+ * Sets/gets the base color texture
1876
1886
  */
1877
1887
  baseColorTexture: Nullable<BaseTexture>;
1878
1888
  /**
1879
- * Sets/gets the base diffuse roughness (OpenPBR: baseDiffuseRoughness, PBR: baseDiffuseRoughness)
1889
+ * Sets/gets the base diffuse roughness
1880
1890
  */
1881
1891
  baseDiffuseRoughness: number;
1882
1892
  /**
1883
- * Sets/gets the base diffuse roughness texture (OpenPBR: baseDiffuseRoughnessTexture, PBR: baseDiffuseRoughnessTexture)
1893
+ * Sets/gets the base diffuse roughness texture
1884
1894
  */
1885
1895
  baseDiffuseRoughnessTexture: Nullable<BaseTexture>;
1886
1896
  /**
1887
- * Sets/gets the base metalness (OpenPBR: baseMetalness, PBR: metallic)
1897
+ * Sets/gets the base metalness
1888
1898
  */
1889
1899
  baseMetalness: number;
1890
1900
  /**
1891
- * Sets/gets the base metalness texture (OpenPBR: baseMetalnessTexture, PBR: metallicTexture)
1901
+ * Sets/gets the base metalness texture
1892
1902
  */
1893
1903
  baseMetalnessTexture: Nullable<BaseTexture>;
1894
1904
  /**
@@ -1905,23 +1915,23 @@ export interface IMaterialLoadingAdapter {
1905
1915
  */
1906
1916
  enableSpecularEdgeColor(enableEdgeColor?: boolean): void;
1907
1917
  /**
1908
- * Sets/gets the specular weight (OpenPBR: specularWeight, PBR: metallicF0Factor)
1918
+ * Sets/gets the specular weight
1909
1919
  */
1910
1920
  specularWeight: number;
1911
1921
  /**
1912
- * Sets/gets the specular weight texture (OpenPBR: specularWeightTexture, PBR: metallicReflectanceTexture)
1922
+ * Sets/gets the specular weight texture
1913
1923
  */
1914
1924
  specularWeightTexture: Nullable<BaseTexture>;
1915
1925
  /**
1916
- * Sets/gets the specular color (OpenPBR: specularColor, PBR: reflectance)
1926
+ * Sets/gets the specular color
1917
1927
  */
1918
1928
  specularColor: Color3;
1919
1929
  /**
1920
- * Sets/gets the specular color texture (OpenPBR: specularColorTexture, PBR: reflectanceTexture)
1930
+ * Sets/gets the specular color texture
1921
1931
  */
1922
1932
  specularColorTexture: Nullable<BaseTexture>;
1923
1933
  /**
1924
- * Sets/gets the specular roughness (OpenPBR: specularRoughness, PBR: roughness)
1934
+ * Sets/gets the specular roughness
1925
1935
  */
1926
1936
  specularRoughness: number;
1927
1937
  /**
@@ -1929,15 +1939,15 @@ export interface IMaterialLoadingAdapter {
1929
1939
  */
1930
1940
  specularRoughnessTexture: Nullable<BaseTexture>;
1931
1941
  /**
1932
- * Sets/gets the specular IOR (OpenPBR: specularIor, PBR: indexOfRefraction)
1942
+ * Sets/gets the specular IOR
1933
1943
  */
1934
1944
  specularIor: number;
1935
1945
  /**
1936
- * Sets/gets the emissive color (OpenPBR: emissionColor, PBR: emissiveColor)
1946
+ * Sets/gets the emissive color
1937
1947
  */
1938
1948
  emissionColor: Color3;
1939
1949
  /**
1940
- * Sets/gets the emissive luminance (OpenPBR: emissionLuminance, PBR: emissiveIntensity)
1950
+ * Sets/gets the emissive luminance
1941
1951
  */
1942
1952
  emissionLuminance: number;
1943
1953
  /**
@@ -1945,7 +1955,7 @@ export interface IMaterialLoadingAdapter {
1945
1955
  */
1946
1956
  emissionColorTexture: Nullable<BaseTexture>;
1947
1957
  /**
1948
- * Sets/gets the ambient occlusion texture (OpenPBR: ambientOcclusionTexture, PBR: ambientTexture)
1958
+ * Sets/gets the ambient occlusion texture
1949
1959
  */
1950
1960
  ambientOcclusionTexture: Nullable<BaseTexture>;
1951
1961
  /**
@@ -1957,27 +1967,27 @@ export interface IMaterialLoadingAdapter {
1957
1967
  */
1958
1968
  configureCoat(): void;
1959
1969
  /**
1960
- * Sets/gets the coat weight (OpenPBR: coatWeight, PBR: clearCoat.intensity)
1970
+ * Sets/gets the coat weight
1961
1971
  */
1962
1972
  coatWeight: number;
1963
1973
  /**
1964
- * Sets/gets the coat weight texture (OpenPBR: coatWeightTexture, PBR: clearCoat.texture)
1974
+ * Sets/gets the coat weight texture
1965
1975
  */
1966
1976
  coatWeightTexture: Nullable<BaseTexture>;
1967
1977
  /**
1968
- * Sets the coat color (OpenPBR: coatColor, no PBR equivalent)
1978
+ * Sets the coat color
1969
1979
  */
1970
1980
  coatColor: Color3;
1971
1981
  /**
1972
- * Sets the coat color texture (OpenPBR: coatColorTexture, no PBR equivalent)
1982
+ * Sets the coat color texture
1973
1983
  */
1974
1984
  coatColorTexture: Nullable<BaseTexture>;
1975
1985
  /**
1976
- * Sets/gets the coat roughness (OpenPBR: coatRoughness, PBR: clearCoat.roughness)
1986
+ * Sets/gets the coat roughness
1977
1987
  */
1978
1988
  coatRoughness: number;
1979
1989
  /**
1980
- * Sets/gets the coat roughness texture (OpenPBR: coatRoughnessTexture, PBR: clearCoat.textureRoughness)
1990
+ * Sets/gets the coat roughness texture
1981
1991
  */
1982
1992
  coatRoughnessTexture: Nullable<BaseTexture>;
1983
1993
  /**
@@ -1985,39 +1995,39 @@ export interface IMaterialLoadingAdapter {
1985
1995
  */
1986
1996
  coatIor: number;
1987
1997
  /**
1988
- * Sets the coat darkening (OpenPBR: coatDarkening, no PBR equivalent)
1998
+ * Sets the coat darkening
1989
1999
  */
1990
2000
  coatDarkening: number;
1991
2001
  /**
1992
- * Sets the coat darkening texture (OpenPBR: coatDarkeningTexture, no PBR equivalent)
2002
+ * Sets the coat darkening texture
1993
2003
  */
1994
2004
  coatDarkeningTexture: Nullable<BaseTexture>;
1995
2005
  /**
1996
- * Sets/gets the coat roughness anisotropy (OpenPBR: coatRoughnessAnisotropy, PBR: clearCoat.anisotropy.intensity)
2006
+ * Sets/gets the coat roughness anisotropy
1997
2007
  */
1998
2008
  coatRoughnessAnisotropy: number;
1999
2009
  /**
2000
- * Sets the coat tangent angle for anisotropy (OpenPBR: geometryCoatTangentAngle, PBR: clearCoat.anisotropy.angle)
2010
+ * Sets the coat tangent angle for anisotropy
2001
2011
  */
2002
2012
  geometryCoatTangentAngle: number;
2003
2013
  /**
2004
- * Sets the coat tangent texture for anisotropy (OpenPBR: geometryCoatTangentTexture, PBR: clearCoat.anisotropy.texture)
2014
+ * Sets the coat tangent texture for anisotropy
2005
2015
  */
2006
2016
  geometryCoatTangentTexture: Nullable<BaseTexture>;
2007
2017
  /**
2008
- * Sets the transmission weight (OpenPBR: transmissionWeight, PBR: subSurface.refractionIntensity)
2018
+ * Sets the transmission weight
2009
2019
  */
2010
2020
  transmissionWeight: number;
2011
2021
  /**
2012
- * Sets the transmission weight texture (OpenPBR: transmissionWeightTexture, PBR: subSurface.refractionIntensityTexture)
2022
+ * Sets the transmission weight texture
2013
2023
  */
2014
2024
  transmissionWeightTexture: Nullable<BaseTexture>;
2015
2025
  /**
2016
- * Sets the attenuation distance (OpenPBR: attenuationDistance, PBR: subSurface.volumeIndexOfRefraction)
2026
+ * Sets the attenuation distance
2017
2027
  */
2018
2028
  transmissionDepth: number;
2019
2029
  /**
2020
- * Sets the attenuation color (OpenPBR: attenuationColor, PBR: subSurface.tintColor)
2030
+ * Sets the attenuation color
2021
2031
  */
2022
2032
  transmissionColor: Color3;
2023
2033
  /**
@@ -2029,11 +2039,11 @@ export interface IMaterialLoadingAdapter {
2029
2039
  */
2030
2040
  configureTransmission(): void;
2031
2041
  /**
2032
- * Sets the thickness texture (OpenPBR: thicknessTexture, PBR: subSurface.thicknessTexture)
2042
+ * Sets the thickness texture
2033
2043
  */
2034
2044
  volumeThicknessTexture: Nullable<BaseTexture>;
2035
2045
  /**
2036
- * Sets the thickness factor (OpenPBR: thickness, PBR: subSurface.maximumThickness)
2046
+ * Sets the thickness factor
2037
2047
  */
2038
2048
  volumeThickness: number;
2039
2049
  /**
@@ -2049,11 +2059,11 @@ export interface IMaterialLoadingAdapter {
2049
2059
  */
2050
2060
  subsurfaceWeightTexture: Nullable<BaseTexture>;
2051
2061
  /**
2052
- * Sets/gets the subsurface color (OpenPBR: subsurfaceColor, PBR: subSurface.tintColor)
2062
+ * Sets/gets the subsurface color
2053
2063
  */
2054
2064
  subsurfaceColor: Color3;
2055
2065
  /**
2056
- * Sets/gets the subsurface color texture (OpenPBR: subsurfaceColorTexture, PBR: subSurface.tintColorTexture)
2066
+ * Sets/gets the subsurface color texture
2057
2067
  */
2058
2068
  subsurfaceColorTexture: Nullable<BaseTexture>;
2059
2069
  /**
@@ -2061,35 +2071,39 @@ export interface IMaterialLoadingAdapter {
2061
2071
  */
2062
2072
  configureFuzz(): void;
2063
2073
  /**
2064
- * Sets the fuzz weight (OpenPBR: fuzzWeight, PBR: fuzz.intensity)
2074
+ * Sets the fuzz weight
2065
2075
  */
2066
2076
  fuzzWeight: number;
2067
2077
  /**
2068
- * Sets the fuzz color (OpenPBR: fuzzColor, PBR: fuzz.color)
2078
+ * Sets the fuzz weight texture
2079
+ */
2080
+ fuzzWeightTexture: Nullable<BaseTexture>;
2081
+ /**
2082
+ * Sets the fuzz color
2069
2083
  */
2070
2084
  fuzzColor: Color3;
2071
2085
  /**
2072
- * Sets the fuzz color texture (OpenPBR: fuzzColorTexture, PBR: fuzz.texture)
2086
+ * Sets the fuzz color texture
2073
2087
  */
2074
2088
  fuzzColorTexture: Nullable<BaseTexture>;
2075
2089
  /**
2076
- * Sets the fuzz roughness (OpenPBR: fuzzRoughness, PBR: fuzz.roughness)
2090
+ * Sets the fuzz roughness
2077
2091
  */
2078
2092
  fuzzRoughness: number;
2079
2093
  /**
2080
- * Sets the fuzz roughness texture (OpenPBR: fuzzRoughnessTexture, PBR: fuzz.textureRoughness)
2094
+ * Sets the fuzz roughness texture
2081
2095
  */
2082
2096
  fuzzRoughnessTexture: Nullable<BaseTexture>;
2083
2097
  /**
2084
- * Sets/gets the specular roughness anisotropy (OpenPBR: specularRoughnessAnisotropy, PBR: anisotropy.intensity)
2098
+ * Sets/gets the specular roughness anisotropy
2085
2099
  */
2086
2100
  specularRoughnessAnisotropy: number;
2087
2101
  /**
2088
- * Sets the anisotropy rotation (OpenPBR: anisotropyRotation, PBR: anisotropy.angle)
2102
+ * Sets the anisotropy rotation
2089
2103
  */
2090
2104
  geometryTangentAngle: number;
2091
2105
  /**
2092
- * Sets/gets the anisotropy texture (OpenPBR: geometryTangentTexture, PBR: anisotropy.texture)
2106
+ * Sets/gets the anisotropy texture
2093
2107
  */
2094
2108
  geometryTangentTexture: Nullable<BaseTexture>;
2095
2109
  /**
@@ -2122,15 +2136,15 @@ export interface IMaterialLoadingAdapter {
2122
2136
  */
2123
2137
  thinFilmThicknessTexture: Nullable<BaseTexture>;
2124
2138
  /**
2125
- * Sets the unlit flag (OpenPBR: unlit, PBR: unlit)
2139
+ * Sets the unlit flag
2126
2140
  */
2127
2141
  unlit: boolean;
2128
2142
  /**
2129
- * Sets/gets the geometry opacity (OpenPBR: geometryOpacity, PBR: alpha)
2143
+ * Sets/gets the geometry opacity
2130
2144
  */
2131
2145
  geometryOpacity: number;
2132
2146
  /**
2133
- * Sets/gets the geometry normal texture (OpenPBR: geometryNormalTexture, PBR: bumpTexture)
2147
+ * Sets/gets the geometry normal texture
2134
2148
  */
2135
2149
  geometryNormalTexture: Nullable<BaseTexture>;
2136
2150
  /**
@@ -2140,7 +2154,7 @@ export interface IMaterialLoadingAdapter {
2140
2154
  */
2141
2155
  setNormalMapInversions(invertX: boolean, invertY: boolean): void;
2142
2156
  /**
2143
- * Sets/gets the coat normal texture (OpenPBR: geometryCoatNormalTexture, PBR: clearCoat.bumpTexture)
2157
+ * Sets/gets the coat normal texture
2144
2158
  */
2145
2159
  geometryCoatNormalTexture: Nullable<BaseTexture>;
2146
2160
  /**
@@ -3116,7 +3130,7 @@ export class GLTFLoader implements IGLTFLoader {
3116
3130
  }
3117
3131
  declare module "babylonjs-loaders/glTF/2.0/Extensions/objectModelMapping" {
3118
3132
  import { TransformNode } from "babylonjs/Meshes/transformNode";
3119
- import { IAnimation, ICamera, IGLTF, IKHRLightsPunctual_Light, IMaterial, IMesh, INode } from "babylonjs-loaders/glTF/2.0/glTFLoaderInterfaces";
3133
+ import { IAnimation, ICamera, IGLTF, IKHRLightsPunctual_Light, IEXTLightsArea_Light, IMaterial, IMesh, INode } from "babylonjs-loaders/glTF/2.0/glTFLoaderInterfaces";
3120
3134
  import { Vector3 } from "babylonjs/Maths/math.vector";
3121
3135
  import { Matrix, Quaternion, Vector2 } from "babylonjs/Maths/math.vector";
3122
3136
  import { Color3 } from "babylonjs/Maths/math.color";
@@ -3364,6 +3378,20 @@ export interface IGLTFObjectModelTreeExtensionsObject {
3364
3378
  };
3365
3379
  };
3366
3380
  };
3381
+ EXT_lights_area: {
3382
+ lights: {
3383
+ length: IObjectAccessor<IEXTLightsArea_Light[], Light[], number>;
3384
+ __array__: {
3385
+ __target__: boolean;
3386
+ color: IObjectAccessor<IEXTLightsArea_Light, Light, Color3>;
3387
+ intensity: IObjectAccessor<IEXTLightsArea_Light, Light, number>;
3388
+ size: IObjectAccessor<IEXTLightsArea_Light, Light, number>;
3389
+ rect: {
3390
+ aspect: IObjectAccessor<IEXTLightsArea_Light, Light, number>;
3391
+ };
3392
+ };
3393
+ };
3394
+ };
3367
3395
  EXT_lights_ies: {
3368
3396
  lights: {
3369
3397
  length: IObjectAccessor<IKHRLightsPunctual_Light[], Light[], number>;
@@ -3411,7 +3439,6 @@ export {};
3411
3439
  }
3412
3440
  declare module "babylonjs-loaders/glTF/2.0/Extensions/index" {
3413
3441
  export * from "babylonjs-loaders/glTF/2.0/Extensions/objectModelMapping";
3414
- export * from "babylonjs-loaders/glTF/2.0/Extensions/EXT_lights_area";
3415
3442
  export * from "babylonjs-loaders/glTF/2.0/Extensions/EXT_lights_image_based";
3416
3443
  export * from "babylonjs-loaders/glTF/2.0/Extensions/EXT_mesh_gpu_instancing";
3417
3444
  export * from "babylonjs-loaders/glTF/2.0/Extensions/EXT_meshopt_compression";
@@ -3420,13 +3447,16 @@ export * from "babylonjs-loaders/glTF/2.0/Extensions/EXT_texture_avif";
3420
3447
  export * from "babylonjs-loaders/glTF/2.0/Extensions/EXT_lights_ies";
3421
3448
  export * from "babylonjs-loaders/glTF/2.0/Extensions/KHR_draco_mesh_compression";
3422
3449
  export * from "babylonjs-loaders/glTF/2.0/Extensions/KHR_lights_punctual";
3450
+ export * from "babylonjs-loaders/glTF/2.0/Extensions/EXT_lights_area";
3423
3451
  export * from "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness";
3424
3452
  export * from "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_unlit";
3425
3453
  export * from "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_clearcoat";
3454
+ export * from "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_coat";
3426
3455
  export * from "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_iridescence";
3427
3456
  export * from "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_anisotropy";
3428
3457
  export * from "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_emissive_strength";
3429
3458
  export * from "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_sheen";
3459
+ export * from "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_fuzz";
3430
3460
  export * from "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_specular";
3431
3461
  export * from "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_ior";
3432
3462
  export * from "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_variants";
@@ -4463,6 +4493,51 @@ export class KHR_materials_ior implements IGLTFLoaderExtension {
4463
4493
  private _loadIorPropertiesAsync;
4464
4494
  }
4465
4495
 
4496
+ }
4497
+ declare module "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_fuzz" {
4498
+ import { Nullable } from "babylonjs/types";
4499
+ import { Material } from "babylonjs/Materials/material";
4500
+ import { IMaterial } from "babylonjs-loaders/glTF/2.0/glTFLoaderInterfaces";
4501
+ import { IGLTFLoaderExtension } from "babylonjs-loaders/glTF/2.0/glTFLoaderExtension";
4502
+ import { GLTFLoader } from "babylonjs-loaders/glTF/2.0/glTFLoader";
4503
+ module "babylonjs-loaders/glTF/glTFFileLoader" {
4504
+ interface GLTFLoaderExtensionOptions {
4505
+ /**
4506
+ * Defines options for the KHR_materials_fuzz extension.
4507
+ */
4508
+ ["KHR_materials_fuzz"]: {};
4509
+ }
4510
+ }
4511
+ /**
4512
+ * [Specification]
4513
+ */
4514
+ export class KHR_materials_fuzz implements IGLTFLoaderExtension {
4515
+ /**
4516
+ * The name of this extension.
4517
+ */
4518
+ readonly name: string;
4519
+ /**
4520
+ * Defines whether this extension is enabled.
4521
+ */
4522
+ enabled: boolean;
4523
+ /**
4524
+ * Defines a number that determines the order the extensions are applied.
4525
+ */
4526
+ order: number;
4527
+ private _loader;
4528
+ /**
4529
+ * @internal
4530
+ */
4531
+ constructor(loader: GLTFLoader);
4532
+ /** @internal */
4533
+ dispose(): void;
4534
+ /**
4535
+ * @internal
4536
+ */
4537
+ loadMaterialPropertiesAsync(context: string, material: IMaterial, babylonMaterial: Material): Nullable<Promise<void>>;
4538
+ private _loadFuzzPropertiesAsync;
4539
+ }
4540
+
4466
4541
  }
4467
4542
  declare module "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_emissive_strength" {
4468
4543
  import { Nullable } from "babylonjs/types";
@@ -4646,6 +4721,58 @@ export class KHR_materials_diffuse_roughness implements IGLTFLoaderExtension {
4646
4721
  private _loadDiffuseRoughnessPropertiesAsync;
4647
4722
  }
4648
4723
 
4724
+ }
4725
+ declare module "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_coat" {
4726
+ import { Nullable } from "babylonjs/types";
4727
+ import { Material } from "babylonjs/Materials/material";
4728
+ import { IMaterial } from "babylonjs-loaders/glTF/2.0/glTFLoaderInterfaces";
4729
+ import { IGLTFLoaderExtension } from "babylonjs-loaders/glTF/2.0/glTFLoaderExtension";
4730
+ import { GLTFLoader } from "babylonjs-loaders/glTF/2.0/glTFLoader";
4731
+ module "babylonjs-loaders/glTF/glTFFileLoader" {
4732
+ interface GLTFLoaderExtensionOptions {
4733
+ /**
4734
+ * Defines options for the KHR_materials_coat extension.
4735
+ */
4736
+ ["KHR_materials_coat"]: {};
4737
+ }
4738
+ }
4739
+ /**
4740
+ * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_materials_coat/README.md)
4741
+ * [Playground Sample](https://www.babylonjs-playground.com/frame.html#7F7PN6#8)
4742
+ */
4743
+ export class KHR_materials_coat implements IGLTFLoaderExtension {
4744
+ /**
4745
+ * The name of this extension.
4746
+ */
4747
+ readonly name: string;
4748
+ /**
4749
+ * Defines whether this extension is enabled.
4750
+ */
4751
+ enabled: boolean;
4752
+ /**
4753
+ * Defines a number that determines the order the extensions are applied.
4754
+ */
4755
+ order: number;
4756
+ private _loader;
4757
+ /**
4758
+ * Defines whether the KHR_materials_openpbr extension is used, indicating that
4759
+ * the material should be interpreted as OpenPBR (for coat, this might be necessary
4760
+ * to interpret anisotropy correctly).
4761
+ */
4762
+ private useOpenPBR;
4763
+ /**
4764
+ * @internal
4765
+ */
4766
+ constructor(loader: GLTFLoader);
4767
+ /** @internal */
4768
+ dispose(): void;
4769
+ /**
4770
+ * @internal
4771
+ */
4772
+ loadMaterialPropertiesAsync(context: string, material: IMaterial, babylonMaterial: Material): Nullable<Promise<void>>;
4773
+ private _loadCoatPropertiesAsync;
4774
+ }
4775
+
4649
4776
  }
4650
4777
  declare module "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_clearcoat" {
4651
4778
  import { Nullable } from "babylonjs/types";
@@ -4690,9 +4817,6 @@ export class KHR_materials_clearcoat implements IGLTFLoaderExtension {
4690
4817
  */
4691
4818
  loadMaterialPropertiesAsync(context: string, material: IMaterial, babylonMaterial: Material): Nullable<Promise<void>>;
4692
4819
  private _loadClearCoatPropertiesAsync;
4693
- private _loadClearCoatDarkeningPropertiesAsync;
4694
- private _loadClearCoatColorPropertiesAsync;
4695
- private _loadClearCoatAnisotropyPropertiesAsync;
4696
4820
  }
4697
4821
 
4698
4822
  }
@@ -8456,6 +8580,11 @@ declare module BABYLON.GLTF2 {
8456
8580
  * @param value The sheen weight value
8457
8581
  */
8458
8582
  set fuzzWeight(value: number);
8583
+ /**
8584
+ * Sets the fuzz weight texture.
8585
+ * @param value The fuzz weight texture or null
8586
+ */
8587
+ set fuzzWeightTexture(value: Nullable<BaseTexture>);
8459
8588
  /**
8460
8589
  * Sets the sheen color (mapped to PBR sheen.color).
8461
8590
  * Automatically enables sheen.
@@ -9061,6 +9190,11 @@ declare module BABYLON.GLTF2 {
9061
9190
  * @param value The fuzz weight value
9062
9191
  */
9063
9192
  set fuzzWeight(value: number);
9193
+ /**
9194
+ * Sets the fuzz weight texture.
9195
+ * @param value The fuzz weight texture or null
9196
+ */
9197
+ set fuzzWeightTexture(value: Nullable<BaseTexture>);
9064
9198
  /**
9065
9199
  * Sets the fuzz color.
9066
9200
  * @param value The fuzz color as a Color3
@@ -9233,27 +9367,27 @@ declare module BABYLON.GLTF2 {
9233
9367
  */
9234
9368
  transparencyAsAlphaCoverage: boolean;
9235
9369
  /**
9236
- * Sets/gets the base color (OpenPBR: baseColor, PBR: albedoColor)
9370
+ * Sets/gets the base color
9237
9371
  */
9238
9372
  baseColor: Color3;
9239
9373
  /**
9240
- * Sets/gets the base color texture (OpenPBR: baseColorTexture, PBR: albedoTexture)
9374
+ * Sets/gets the base color texture
9241
9375
  */
9242
9376
  baseColorTexture: Nullable<BaseTexture>;
9243
9377
  /**
9244
- * Sets/gets the base diffuse roughness (OpenPBR: baseDiffuseRoughness, PBR: baseDiffuseRoughness)
9378
+ * Sets/gets the base diffuse roughness
9245
9379
  */
9246
9380
  baseDiffuseRoughness: number;
9247
9381
  /**
9248
- * Sets/gets the base diffuse roughness texture (OpenPBR: baseDiffuseRoughnessTexture, PBR: baseDiffuseRoughnessTexture)
9382
+ * Sets/gets the base diffuse roughness texture
9249
9383
  */
9250
9384
  baseDiffuseRoughnessTexture: Nullable<BaseTexture>;
9251
9385
  /**
9252
- * Sets/gets the base metalness (OpenPBR: baseMetalness, PBR: metallic)
9386
+ * Sets/gets the base metalness
9253
9387
  */
9254
9388
  baseMetalness: number;
9255
9389
  /**
9256
- * Sets/gets the base metalness texture (OpenPBR: baseMetalnessTexture, PBR: metallicTexture)
9390
+ * Sets/gets the base metalness texture
9257
9391
  */
9258
9392
  baseMetalnessTexture: Nullable<BaseTexture>;
9259
9393
  /**
@@ -9270,23 +9404,23 @@ declare module BABYLON.GLTF2 {
9270
9404
  */
9271
9405
  enableSpecularEdgeColor(enableEdgeColor?: boolean): void;
9272
9406
  /**
9273
- * Sets/gets the specular weight (OpenPBR: specularWeight, PBR: metallicF0Factor)
9407
+ * Sets/gets the specular weight
9274
9408
  */
9275
9409
  specularWeight: number;
9276
9410
  /**
9277
- * Sets/gets the specular weight texture (OpenPBR: specularWeightTexture, PBR: metallicReflectanceTexture)
9411
+ * Sets/gets the specular weight texture
9278
9412
  */
9279
9413
  specularWeightTexture: Nullable<BaseTexture>;
9280
9414
  /**
9281
- * Sets/gets the specular color (OpenPBR: specularColor, PBR: reflectance)
9415
+ * Sets/gets the specular color
9282
9416
  */
9283
9417
  specularColor: Color3;
9284
9418
  /**
9285
- * Sets/gets the specular color texture (OpenPBR: specularColorTexture, PBR: reflectanceTexture)
9419
+ * Sets/gets the specular color texture
9286
9420
  */
9287
9421
  specularColorTexture: Nullable<BaseTexture>;
9288
9422
  /**
9289
- * Sets/gets the specular roughness (OpenPBR: specularRoughness, PBR: roughness)
9423
+ * Sets/gets the specular roughness
9290
9424
  */
9291
9425
  specularRoughness: number;
9292
9426
  /**
@@ -9294,15 +9428,15 @@ declare module BABYLON.GLTF2 {
9294
9428
  */
9295
9429
  specularRoughnessTexture: Nullable<BaseTexture>;
9296
9430
  /**
9297
- * Sets/gets the specular IOR (OpenPBR: specularIor, PBR: indexOfRefraction)
9431
+ * Sets/gets the specular IOR
9298
9432
  */
9299
9433
  specularIor: number;
9300
9434
  /**
9301
- * Sets/gets the emissive color (OpenPBR: emissionColor, PBR: emissiveColor)
9435
+ * Sets/gets the emissive color
9302
9436
  */
9303
9437
  emissionColor: Color3;
9304
9438
  /**
9305
- * Sets/gets the emissive luminance (OpenPBR: emissionLuminance, PBR: emissiveIntensity)
9439
+ * Sets/gets the emissive luminance
9306
9440
  */
9307
9441
  emissionLuminance: number;
9308
9442
  /**
@@ -9310,7 +9444,7 @@ declare module BABYLON.GLTF2 {
9310
9444
  */
9311
9445
  emissionColorTexture: Nullable<BaseTexture>;
9312
9446
  /**
9313
- * Sets/gets the ambient occlusion texture (OpenPBR: ambientOcclusionTexture, PBR: ambientTexture)
9447
+ * Sets/gets the ambient occlusion texture
9314
9448
  */
9315
9449
  ambientOcclusionTexture: Nullable<BaseTexture>;
9316
9450
  /**
@@ -9322,27 +9456,27 @@ declare module BABYLON.GLTF2 {
9322
9456
  */
9323
9457
  configureCoat(): void;
9324
9458
  /**
9325
- * Sets/gets the coat weight (OpenPBR: coatWeight, PBR: clearCoat.intensity)
9459
+ * Sets/gets the coat weight
9326
9460
  */
9327
9461
  coatWeight: number;
9328
9462
  /**
9329
- * Sets/gets the coat weight texture (OpenPBR: coatWeightTexture, PBR: clearCoat.texture)
9463
+ * Sets/gets the coat weight texture
9330
9464
  */
9331
9465
  coatWeightTexture: Nullable<BaseTexture>;
9332
9466
  /**
9333
- * Sets the coat color (OpenPBR: coatColor, no PBR equivalent)
9467
+ * Sets the coat color
9334
9468
  */
9335
9469
  coatColor: Color3;
9336
9470
  /**
9337
- * Sets the coat color texture (OpenPBR: coatColorTexture, no PBR equivalent)
9471
+ * Sets the coat color texture
9338
9472
  */
9339
9473
  coatColorTexture: Nullable<BaseTexture>;
9340
9474
  /**
9341
- * Sets/gets the coat roughness (OpenPBR: coatRoughness, PBR: clearCoat.roughness)
9475
+ * Sets/gets the coat roughness
9342
9476
  */
9343
9477
  coatRoughness: number;
9344
9478
  /**
9345
- * Sets/gets the coat roughness texture (OpenPBR: coatRoughnessTexture, PBR: clearCoat.textureRoughness)
9479
+ * Sets/gets the coat roughness texture
9346
9480
  */
9347
9481
  coatRoughnessTexture: Nullable<BaseTexture>;
9348
9482
  /**
@@ -9350,39 +9484,39 @@ declare module BABYLON.GLTF2 {
9350
9484
  */
9351
9485
  coatIor: number;
9352
9486
  /**
9353
- * Sets the coat darkening (OpenPBR: coatDarkening, no PBR equivalent)
9487
+ * Sets the coat darkening
9354
9488
  */
9355
9489
  coatDarkening: number;
9356
9490
  /**
9357
- * Sets the coat darkening texture (OpenPBR: coatDarkeningTexture, no PBR equivalent)
9491
+ * Sets the coat darkening texture
9358
9492
  */
9359
9493
  coatDarkeningTexture: Nullable<BaseTexture>;
9360
9494
  /**
9361
- * Sets/gets the coat roughness anisotropy (OpenPBR: coatRoughnessAnisotropy, PBR: clearCoat.anisotropy.intensity)
9495
+ * Sets/gets the coat roughness anisotropy
9362
9496
  */
9363
9497
  coatRoughnessAnisotropy: number;
9364
9498
  /**
9365
- * Sets the coat tangent angle for anisotropy (OpenPBR: geometryCoatTangentAngle, PBR: clearCoat.anisotropy.angle)
9499
+ * Sets the coat tangent angle for anisotropy
9366
9500
  */
9367
9501
  geometryCoatTangentAngle: number;
9368
9502
  /**
9369
- * Sets the coat tangent texture for anisotropy (OpenPBR: geometryCoatTangentTexture, PBR: clearCoat.anisotropy.texture)
9503
+ * Sets the coat tangent texture for anisotropy
9370
9504
  */
9371
9505
  geometryCoatTangentTexture: Nullable<BaseTexture>;
9372
9506
  /**
9373
- * Sets the transmission weight (OpenPBR: transmissionWeight, PBR: subSurface.refractionIntensity)
9507
+ * Sets the transmission weight
9374
9508
  */
9375
9509
  transmissionWeight: number;
9376
9510
  /**
9377
- * Sets the transmission weight texture (OpenPBR: transmissionWeightTexture, PBR: subSurface.refractionIntensityTexture)
9511
+ * Sets the transmission weight texture
9378
9512
  */
9379
9513
  transmissionWeightTexture: Nullable<BaseTexture>;
9380
9514
  /**
9381
- * Sets the attenuation distance (OpenPBR: attenuationDistance, PBR: subSurface.volumeIndexOfRefraction)
9515
+ * Sets the attenuation distance
9382
9516
  */
9383
9517
  transmissionDepth: number;
9384
9518
  /**
9385
- * Sets the attenuation color (OpenPBR: attenuationColor, PBR: subSurface.tintColor)
9519
+ * Sets the attenuation color
9386
9520
  */
9387
9521
  transmissionColor: Color3;
9388
9522
  /**
@@ -9394,11 +9528,11 @@ declare module BABYLON.GLTF2 {
9394
9528
  */
9395
9529
  configureTransmission(): void;
9396
9530
  /**
9397
- * Sets the thickness texture (OpenPBR: thicknessTexture, PBR: subSurface.thicknessTexture)
9531
+ * Sets the thickness texture
9398
9532
  */
9399
9533
  volumeThicknessTexture: Nullable<BaseTexture>;
9400
9534
  /**
9401
- * Sets the thickness factor (OpenPBR: thickness, PBR: subSurface.maximumThickness)
9535
+ * Sets the thickness factor
9402
9536
  */
9403
9537
  volumeThickness: number;
9404
9538
  /**
@@ -9414,11 +9548,11 @@ declare module BABYLON.GLTF2 {
9414
9548
  */
9415
9549
  subsurfaceWeightTexture: Nullable<BaseTexture>;
9416
9550
  /**
9417
- * Sets/gets the subsurface color (OpenPBR: subsurfaceColor, PBR: subSurface.tintColor)
9551
+ * Sets/gets the subsurface color
9418
9552
  */
9419
9553
  subsurfaceColor: Color3;
9420
9554
  /**
9421
- * Sets/gets the subsurface color texture (OpenPBR: subsurfaceColorTexture, PBR: subSurface.tintColorTexture)
9555
+ * Sets/gets the subsurface color texture
9422
9556
  */
9423
9557
  subsurfaceColorTexture: Nullable<BaseTexture>;
9424
9558
  /**
@@ -9426,35 +9560,39 @@ declare module BABYLON.GLTF2 {
9426
9560
  */
9427
9561
  configureFuzz(): void;
9428
9562
  /**
9429
- * Sets the fuzz weight (OpenPBR: fuzzWeight, PBR: fuzz.intensity)
9563
+ * Sets the fuzz weight
9430
9564
  */
9431
9565
  fuzzWeight: number;
9432
9566
  /**
9433
- * Sets the fuzz color (OpenPBR: fuzzColor, PBR: fuzz.color)
9567
+ * Sets the fuzz weight texture
9568
+ */
9569
+ fuzzWeightTexture: Nullable<BaseTexture>;
9570
+ /**
9571
+ * Sets the fuzz color
9434
9572
  */
9435
9573
  fuzzColor: Color3;
9436
9574
  /**
9437
- * Sets the fuzz color texture (OpenPBR: fuzzColorTexture, PBR: fuzz.texture)
9575
+ * Sets the fuzz color texture
9438
9576
  */
9439
9577
  fuzzColorTexture: Nullable<BaseTexture>;
9440
9578
  /**
9441
- * Sets the fuzz roughness (OpenPBR: fuzzRoughness, PBR: fuzz.roughness)
9579
+ * Sets the fuzz roughness
9442
9580
  */
9443
9581
  fuzzRoughness: number;
9444
9582
  /**
9445
- * Sets the fuzz roughness texture (OpenPBR: fuzzRoughnessTexture, PBR: fuzz.textureRoughness)
9583
+ * Sets the fuzz roughness texture
9446
9584
  */
9447
9585
  fuzzRoughnessTexture: Nullable<BaseTexture>;
9448
9586
  /**
9449
- * Sets/gets the specular roughness anisotropy (OpenPBR: specularRoughnessAnisotropy, PBR: anisotropy.intensity)
9587
+ * Sets/gets the specular roughness anisotropy
9450
9588
  */
9451
9589
  specularRoughnessAnisotropy: number;
9452
9590
  /**
9453
- * Sets the anisotropy rotation (OpenPBR: anisotropyRotation, PBR: anisotropy.angle)
9591
+ * Sets the anisotropy rotation
9454
9592
  */
9455
9593
  geometryTangentAngle: number;
9456
9594
  /**
9457
- * Sets/gets the anisotropy texture (OpenPBR: geometryTangentTexture, PBR: anisotropy.texture)
9595
+ * Sets/gets the anisotropy texture
9458
9596
  */
9459
9597
  geometryTangentTexture: Nullable<BaseTexture>;
9460
9598
  /**
@@ -9487,15 +9625,15 @@ declare module BABYLON.GLTF2 {
9487
9625
  */
9488
9626
  thinFilmThicknessTexture: Nullable<BaseTexture>;
9489
9627
  /**
9490
- * Sets the unlit flag (OpenPBR: unlit, PBR: unlit)
9628
+ * Sets the unlit flag
9491
9629
  */
9492
9630
  unlit: boolean;
9493
9631
  /**
9494
- * Sets/gets the geometry opacity (OpenPBR: geometryOpacity, PBR: alpha)
9632
+ * Sets/gets the geometry opacity
9495
9633
  */
9496
9634
  geometryOpacity: number;
9497
9635
  /**
9498
- * Sets/gets the geometry normal texture (OpenPBR: geometryNormalTexture, PBR: bumpTexture)
9636
+ * Sets/gets the geometry normal texture
9499
9637
  */
9500
9638
  geometryNormalTexture: Nullable<BaseTexture>;
9501
9639
  /**
@@ -9505,7 +9643,7 @@ declare module BABYLON.GLTF2 {
9505
9643
  */
9506
9644
  setNormalMapInversions(invertX: boolean, invertY: boolean): void;
9507
9645
  /**
9508
- * Sets/gets the coat normal texture (OpenPBR: geometryCoatNormalTexture, PBR: clearCoat.bumpTexture)
9646
+ * Sets/gets the coat normal texture
9509
9647
  */
9510
9648
  geometryCoatNormalTexture: Nullable<BaseTexture>;
9511
9649
  /**
@@ -10689,6 +10827,20 @@ declare module BABYLON.GLTF2.Loader.Extensions {
10689
10827
  };
10690
10828
  };
10691
10829
  };
10830
+ EXT_lights_area: {
10831
+ lights: {
10832
+ length: IObjectAccessor<BABYLON.GLTF2.Loader.IEXTLightsArea_Light[], Light[], number>;
10833
+ __array__: {
10834
+ __target__: boolean;
10835
+ color: IObjectAccessor<BABYLON.GLTF2.Loader.IEXTLightsArea_Light, Light, Color3>;
10836
+ intensity: IObjectAccessor<BABYLON.GLTF2.Loader.IEXTLightsArea_Light, Light, number>;
10837
+ size: IObjectAccessor<BABYLON.GLTF2.Loader.IEXTLightsArea_Light, Light, number>;
10838
+ rect: {
10839
+ aspect: IObjectAccessor<BABYLON.GLTF2.Loader.IEXTLightsArea_Light, Light, number>;
10840
+ };
10841
+ };
10842
+ };
10843
+ };
10692
10844
  EXT_lights_ies: {
10693
10845
  lights: {
10694
10846
  length: IObjectAccessor<BABYLON.GLTF2.Loader.IKHRLightsPunctual_Light[], Light[], number>;
@@ -11734,6 +11886,49 @@ declare module BABYLON {
11734
11886
  ["KHR_materials_ior"]: {};
11735
11887
  }
11736
11888
 
11889
+ }
11890
+ declare module BABYLON.GLTF2.Loader.Extensions {
11891
+ /**
11892
+ * [Specification]
11893
+ */
11894
+ export class KHR_materials_fuzz implements BABYLON.GLTF2.IGLTFLoaderExtension {
11895
+ /**
11896
+ * The name of this extension.
11897
+ */
11898
+ readonly name = "KHR_materials_fuzz";
11899
+ /**
11900
+ * Defines whether this extension is enabled.
11901
+ */
11902
+ enabled: boolean;
11903
+ /**
11904
+ * Defines a number that determines the order the extensions are applied.
11905
+ */
11906
+ order: number;
11907
+ private _loader;
11908
+ /**
11909
+ * @internal
11910
+ */
11911
+ constructor(loader: BABYLON.GLTF2.GLTFLoader);
11912
+ /** @internal */
11913
+ dispose(): void;
11914
+ /**
11915
+ * @internal
11916
+ */
11917
+ loadMaterialPropertiesAsync(context: string, material: BABYLON.GLTF2.Loader.IMaterial, babylonMaterial: Material): Nullable<Promise<void>>;
11918
+ private _loadFuzzPropertiesAsync;
11919
+ }
11920
+
11921
+
11922
+
11923
+ }
11924
+ declare module BABYLON {
11925
+ interface GLTFLoaderExtensionOptions {
11926
+ /**
11927
+ * Defines options for the KHR_materials_fuzz extension.
11928
+ */
11929
+ ["KHR_materials_fuzz"]: {};
11930
+ }
11931
+
11737
11932
  }
11738
11933
  declare module BABYLON.GLTF2.Loader.Extensions {
11739
11934
  /**
@@ -11909,6 +12104,56 @@ declare module BABYLON {
11909
12104
  ["KHR_materials_diffuse_roughness"]: {};
11910
12105
  }
11911
12106
 
12107
+ }
12108
+ declare module BABYLON.GLTF2.Loader.Extensions {
12109
+ /**
12110
+ * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_materials_coat/README.md)
12111
+ * [Playground Sample](https://www.babylonjs-playground.com/frame.html#7F7PN6#8)
12112
+ */
12113
+ export class KHR_materials_coat implements BABYLON.GLTF2.IGLTFLoaderExtension {
12114
+ /**
12115
+ * The name of this extension.
12116
+ */
12117
+ readonly name = "KHR_materials_coat";
12118
+ /**
12119
+ * Defines whether this extension is enabled.
12120
+ */
12121
+ enabled: boolean;
12122
+ /**
12123
+ * Defines a number that determines the order the extensions are applied.
12124
+ */
12125
+ order: number;
12126
+ private _loader;
12127
+ /**
12128
+ * Defines whether the KHR_materials_openpbr extension is used, indicating that
12129
+ * the material should be interpreted as OpenPBR (for coat, this might be necessary
12130
+ * to interpret anisotropy correctly).
12131
+ */
12132
+ private useOpenPBR;
12133
+ /**
12134
+ * @internal
12135
+ */
12136
+ constructor(loader: BABYLON.GLTF2.GLTFLoader);
12137
+ /** @internal */
12138
+ dispose(): void;
12139
+ /**
12140
+ * @internal
12141
+ */
12142
+ loadMaterialPropertiesAsync(context: string, material: BABYLON.GLTF2.Loader.IMaterial, babylonMaterial: Material): Nullable<Promise<void>>;
12143
+ private _loadCoatPropertiesAsync;
12144
+ }
12145
+
12146
+
12147
+
12148
+ }
12149
+ declare module BABYLON {
12150
+ interface GLTFLoaderExtensionOptions {
12151
+ /**
12152
+ * Defines options for the KHR_materials_coat extension.
12153
+ */
12154
+ ["KHR_materials_coat"]: {};
12155
+ }
12156
+
11912
12157
  }
11913
12158
  declare module BABYLON.GLTF2.Loader.Extensions {
11914
12159
  /**
@@ -11940,9 +12185,6 @@ declare module BABYLON.GLTF2.Loader.Extensions {
11940
12185
  */
11941
12186
  loadMaterialPropertiesAsync(context: string, material: BABYLON.GLTF2.Loader.IMaterial, babylonMaterial: Material): Nullable<Promise<void>>;
11942
12187
  private _loadClearCoatPropertiesAsync;
11943
- private _loadClearCoatDarkeningPropertiesAsync;
11944
- private _loadClearCoatColorPropertiesAsync;
11945
- private _loadClearCoatAnisotropyPropertiesAsync;
11946
12188
  }
11947
12189
 
11948
12190