babylonjs-loaders 8.34.0 → 8.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
  /**
@@ -3437,10 +3451,12 @@ export * from "babylonjs-loaders/glTF/2.0/Extensions/EXT_lights_area";
3437
3451
  export * from "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness";
3438
3452
  export * from "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_unlit";
3439
3453
  export * from "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_clearcoat";
3454
+ export * from "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_coat";
3440
3455
  export * from "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_iridescence";
3441
3456
  export * from "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_anisotropy";
3442
3457
  export * from "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_emissive_strength";
3443
3458
  export * from "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_sheen";
3459
+ export * from "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_fuzz";
3444
3460
  export * from "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_specular";
3445
3461
  export * from "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_ior";
3446
3462
  export * from "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_variants";
@@ -4477,6 +4493,51 @@ export class KHR_materials_ior implements IGLTFLoaderExtension {
4477
4493
  private _loadIorPropertiesAsync;
4478
4494
  }
4479
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
+
4480
4541
  }
4481
4542
  declare module "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_emissive_strength" {
4482
4543
  import { Nullable } from "babylonjs/types";
@@ -4660,6 +4721,58 @@ export class KHR_materials_diffuse_roughness implements IGLTFLoaderExtension {
4660
4721
  private _loadDiffuseRoughnessPropertiesAsync;
4661
4722
  }
4662
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
+
4663
4776
  }
4664
4777
  declare module "babylonjs-loaders/glTF/2.0/Extensions/KHR_materials_clearcoat" {
4665
4778
  import { Nullable } from "babylonjs/types";
@@ -4704,9 +4817,6 @@ export class KHR_materials_clearcoat implements IGLTFLoaderExtension {
4704
4817
  */
4705
4818
  loadMaterialPropertiesAsync(context: string, material: IMaterial, babylonMaterial: Material): Nullable<Promise<void>>;
4706
4819
  private _loadClearCoatPropertiesAsync;
4707
- private _loadClearCoatDarkeningPropertiesAsync;
4708
- private _loadClearCoatColorPropertiesAsync;
4709
- private _loadClearCoatAnisotropyPropertiesAsync;
4710
4820
  }
4711
4821
 
4712
4822
  }
@@ -8470,6 +8580,11 @@ declare module BABYLON.GLTF2 {
8470
8580
  * @param value The sheen weight value
8471
8581
  */
8472
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>);
8473
8588
  /**
8474
8589
  * Sets the sheen color (mapped to PBR sheen.color).
8475
8590
  * Automatically enables sheen.
@@ -9075,6 +9190,11 @@ declare module BABYLON.GLTF2 {
9075
9190
  * @param value The fuzz weight value
9076
9191
  */
9077
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>);
9078
9198
  /**
9079
9199
  * Sets the fuzz color.
9080
9200
  * @param value The fuzz color as a Color3
@@ -9247,27 +9367,27 @@ declare module BABYLON.GLTF2 {
9247
9367
  */
9248
9368
  transparencyAsAlphaCoverage: boolean;
9249
9369
  /**
9250
- * Sets/gets the base color (OpenPBR: baseColor, PBR: albedoColor)
9370
+ * Sets/gets the base color
9251
9371
  */
9252
9372
  baseColor: Color3;
9253
9373
  /**
9254
- * Sets/gets the base color texture (OpenPBR: baseColorTexture, PBR: albedoTexture)
9374
+ * Sets/gets the base color texture
9255
9375
  */
9256
9376
  baseColorTexture: Nullable<BaseTexture>;
9257
9377
  /**
9258
- * Sets/gets the base diffuse roughness (OpenPBR: baseDiffuseRoughness, PBR: baseDiffuseRoughness)
9378
+ * Sets/gets the base diffuse roughness
9259
9379
  */
9260
9380
  baseDiffuseRoughness: number;
9261
9381
  /**
9262
- * Sets/gets the base diffuse roughness texture (OpenPBR: baseDiffuseRoughnessTexture, PBR: baseDiffuseRoughnessTexture)
9382
+ * Sets/gets the base diffuse roughness texture
9263
9383
  */
9264
9384
  baseDiffuseRoughnessTexture: Nullable<BaseTexture>;
9265
9385
  /**
9266
- * Sets/gets the base metalness (OpenPBR: baseMetalness, PBR: metallic)
9386
+ * Sets/gets the base metalness
9267
9387
  */
9268
9388
  baseMetalness: number;
9269
9389
  /**
9270
- * Sets/gets the base metalness texture (OpenPBR: baseMetalnessTexture, PBR: metallicTexture)
9390
+ * Sets/gets the base metalness texture
9271
9391
  */
9272
9392
  baseMetalnessTexture: Nullable<BaseTexture>;
9273
9393
  /**
@@ -9284,23 +9404,23 @@ declare module BABYLON.GLTF2 {
9284
9404
  */
9285
9405
  enableSpecularEdgeColor(enableEdgeColor?: boolean): void;
9286
9406
  /**
9287
- * Sets/gets the specular weight (OpenPBR: specularWeight, PBR: metallicF0Factor)
9407
+ * Sets/gets the specular weight
9288
9408
  */
9289
9409
  specularWeight: number;
9290
9410
  /**
9291
- * Sets/gets the specular weight texture (OpenPBR: specularWeightTexture, PBR: metallicReflectanceTexture)
9411
+ * Sets/gets the specular weight texture
9292
9412
  */
9293
9413
  specularWeightTexture: Nullable<BaseTexture>;
9294
9414
  /**
9295
- * Sets/gets the specular color (OpenPBR: specularColor, PBR: reflectance)
9415
+ * Sets/gets the specular color
9296
9416
  */
9297
9417
  specularColor: Color3;
9298
9418
  /**
9299
- * Sets/gets the specular color texture (OpenPBR: specularColorTexture, PBR: reflectanceTexture)
9419
+ * Sets/gets the specular color texture
9300
9420
  */
9301
9421
  specularColorTexture: Nullable<BaseTexture>;
9302
9422
  /**
9303
- * Sets/gets the specular roughness (OpenPBR: specularRoughness, PBR: roughness)
9423
+ * Sets/gets the specular roughness
9304
9424
  */
9305
9425
  specularRoughness: number;
9306
9426
  /**
@@ -9308,15 +9428,15 @@ declare module BABYLON.GLTF2 {
9308
9428
  */
9309
9429
  specularRoughnessTexture: Nullable<BaseTexture>;
9310
9430
  /**
9311
- * Sets/gets the specular IOR (OpenPBR: specularIor, PBR: indexOfRefraction)
9431
+ * Sets/gets the specular IOR
9312
9432
  */
9313
9433
  specularIor: number;
9314
9434
  /**
9315
- * Sets/gets the emissive color (OpenPBR: emissionColor, PBR: emissiveColor)
9435
+ * Sets/gets the emissive color
9316
9436
  */
9317
9437
  emissionColor: Color3;
9318
9438
  /**
9319
- * Sets/gets the emissive luminance (OpenPBR: emissionLuminance, PBR: emissiveIntensity)
9439
+ * Sets/gets the emissive luminance
9320
9440
  */
9321
9441
  emissionLuminance: number;
9322
9442
  /**
@@ -9324,7 +9444,7 @@ declare module BABYLON.GLTF2 {
9324
9444
  */
9325
9445
  emissionColorTexture: Nullable<BaseTexture>;
9326
9446
  /**
9327
- * Sets/gets the ambient occlusion texture (OpenPBR: ambientOcclusionTexture, PBR: ambientTexture)
9447
+ * Sets/gets the ambient occlusion texture
9328
9448
  */
9329
9449
  ambientOcclusionTexture: Nullable<BaseTexture>;
9330
9450
  /**
@@ -9336,27 +9456,27 @@ declare module BABYLON.GLTF2 {
9336
9456
  */
9337
9457
  configureCoat(): void;
9338
9458
  /**
9339
- * Sets/gets the coat weight (OpenPBR: coatWeight, PBR: clearCoat.intensity)
9459
+ * Sets/gets the coat weight
9340
9460
  */
9341
9461
  coatWeight: number;
9342
9462
  /**
9343
- * Sets/gets the coat weight texture (OpenPBR: coatWeightTexture, PBR: clearCoat.texture)
9463
+ * Sets/gets the coat weight texture
9344
9464
  */
9345
9465
  coatWeightTexture: Nullable<BaseTexture>;
9346
9466
  /**
9347
- * Sets the coat color (OpenPBR: coatColor, no PBR equivalent)
9467
+ * Sets the coat color
9348
9468
  */
9349
9469
  coatColor: Color3;
9350
9470
  /**
9351
- * Sets the coat color texture (OpenPBR: coatColorTexture, no PBR equivalent)
9471
+ * Sets the coat color texture
9352
9472
  */
9353
9473
  coatColorTexture: Nullable<BaseTexture>;
9354
9474
  /**
9355
- * Sets/gets the coat roughness (OpenPBR: coatRoughness, PBR: clearCoat.roughness)
9475
+ * Sets/gets the coat roughness
9356
9476
  */
9357
9477
  coatRoughness: number;
9358
9478
  /**
9359
- * Sets/gets the coat roughness texture (OpenPBR: coatRoughnessTexture, PBR: clearCoat.textureRoughness)
9479
+ * Sets/gets the coat roughness texture
9360
9480
  */
9361
9481
  coatRoughnessTexture: Nullable<BaseTexture>;
9362
9482
  /**
@@ -9364,39 +9484,39 @@ declare module BABYLON.GLTF2 {
9364
9484
  */
9365
9485
  coatIor: number;
9366
9486
  /**
9367
- * Sets the coat darkening (OpenPBR: coatDarkening, no PBR equivalent)
9487
+ * Sets the coat darkening
9368
9488
  */
9369
9489
  coatDarkening: number;
9370
9490
  /**
9371
- * Sets the coat darkening texture (OpenPBR: coatDarkeningTexture, no PBR equivalent)
9491
+ * Sets the coat darkening texture
9372
9492
  */
9373
9493
  coatDarkeningTexture: Nullable<BaseTexture>;
9374
9494
  /**
9375
- * Sets/gets the coat roughness anisotropy (OpenPBR: coatRoughnessAnisotropy, PBR: clearCoat.anisotropy.intensity)
9495
+ * Sets/gets the coat roughness anisotropy
9376
9496
  */
9377
9497
  coatRoughnessAnisotropy: number;
9378
9498
  /**
9379
- * Sets the coat tangent angle for anisotropy (OpenPBR: geometryCoatTangentAngle, PBR: clearCoat.anisotropy.angle)
9499
+ * Sets the coat tangent angle for anisotropy
9380
9500
  */
9381
9501
  geometryCoatTangentAngle: number;
9382
9502
  /**
9383
- * Sets the coat tangent texture for anisotropy (OpenPBR: geometryCoatTangentTexture, PBR: clearCoat.anisotropy.texture)
9503
+ * Sets the coat tangent texture for anisotropy
9384
9504
  */
9385
9505
  geometryCoatTangentTexture: Nullable<BaseTexture>;
9386
9506
  /**
9387
- * Sets the transmission weight (OpenPBR: transmissionWeight, PBR: subSurface.refractionIntensity)
9507
+ * Sets the transmission weight
9388
9508
  */
9389
9509
  transmissionWeight: number;
9390
9510
  /**
9391
- * Sets the transmission weight texture (OpenPBR: transmissionWeightTexture, PBR: subSurface.refractionIntensityTexture)
9511
+ * Sets the transmission weight texture
9392
9512
  */
9393
9513
  transmissionWeightTexture: Nullable<BaseTexture>;
9394
9514
  /**
9395
- * Sets the attenuation distance (OpenPBR: attenuationDistance, PBR: subSurface.volumeIndexOfRefraction)
9515
+ * Sets the attenuation distance
9396
9516
  */
9397
9517
  transmissionDepth: number;
9398
9518
  /**
9399
- * Sets the attenuation color (OpenPBR: attenuationColor, PBR: subSurface.tintColor)
9519
+ * Sets the attenuation color
9400
9520
  */
9401
9521
  transmissionColor: Color3;
9402
9522
  /**
@@ -9408,11 +9528,11 @@ declare module BABYLON.GLTF2 {
9408
9528
  */
9409
9529
  configureTransmission(): void;
9410
9530
  /**
9411
- * Sets the thickness texture (OpenPBR: thicknessTexture, PBR: subSurface.thicknessTexture)
9531
+ * Sets the thickness texture
9412
9532
  */
9413
9533
  volumeThicknessTexture: Nullable<BaseTexture>;
9414
9534
  /**
9415
- * Sets the thickness factor (OpenPBR: thickness, PBR: subSurface.maximumThickness)
9535
+ * Sets the thickness factor
9416
9536
  */
9417
9537
  volumeThickness: number;
9418
9538
  /**
@@ -9428,11 +9548,11 @@ declare module BABYLON.GLTF2 {
9428
9548
  */
9429
9549
  subsurfaceWeightTexture: Nullable<BaseTexture>;
9430
9550
  /**
9431
- * Sets/gets the subsurface color (OpenPBR: subsurfaceColor, PBR: subSurface.tintColor)
9551
+ * Sets/gets the subsurface color
9432
9552
  */
9433
9553
  subsurfaceColor: Color3;
9434
9554
  /**
9435
- * Sets/gets the subsurface color texture (OpenPBR: subsurfaceColorTexture, PBR: subSurface.tintColorTexture)
9555
+ * Sets/gets the subsurface color texture
9436
9556
  */
9437
9557
  subsurfaceColorTexture: Nullable<BaseTexture>;
9438
9558
  /**
@@ -9440,35 +9560,39 @@ declare module BABYLON.GLTF2 {
9440
9560
  */
9441
9561
  configureFuzz(): void;
9442
9562
  /**
9443
- * Sets the fuzz weight (OpenPBR: fuzzWeight, PBR: fuzz.intensity)
9563
+ * Sets the fuzz weight
9444
9564
  */
9445
9565
  fuzzWeight: number;
9446
9566
  /**
9447
- * 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
9448
9572
  */
9449
9573
  fuzzColor: Color3;
9450
9574
  /**
9451
- * Sets the fuzz color texture (OpenPBR: fuzzColorTexture, PBR: fuzz.texture)
9575
+ * Sets the fuzz color texture
9452
9576
  */
9453
9577
  fuzzColorTexture: Nullable<BaseTexture>;
9454
9578
  /**
9455
- * Sets the fuzz roughness (OpenPBR: fuzzRoughness, PBR: fuzz.roughness)
9579
+ * Sets the fuzz roughness
9456
9580
  */
9457
9581
  fuzzRoughness: number;
9458
9582
  /**
9459
- * Sets the fuzz roughness texture (OpenPBR: fuzzRoughnessTexture, PBR: fuzz.textureRoughness)
9583
+ * Sets the fuzz roughness texture
9460
9584
  */
9461
9585
  fuzzRoughnessTexture: Nullable<BaseTexture>;
9462
9586
  /**
9463
- * Sets/gets the specular roughness anisotropy (OpenPBR: specularRoughnessAnisotropy, PBR: anisotropy.intensity)
9587
+ * Sets/gets the specular roughness anisotropy
9464
9588
  */
9465
9589
  specularRoughnessAnisotropy: number;
9466
9590
  /**
9467
- * Sets the anisotropy rotation (OpenPBR: anisotropyRotation, PBR: anisotropy.angle)
9591
+ * Sets the anisotropy rotation
9468
9592
  */
9469
9593
  geometryTangentAngle: number;
9470
9594
  /**
9471
- * Sets/gets the anisotropy texture (OpenPBR: geometryTangentTexture, PBR: anisotropy.texture)
9595
+ * Sets/gets the anisotropy texture
9472
9596
  */
9473
9597
  geometryTangentTexture: Nullable<BaseTexture>;
9474
9598
  /**
@@ -9501,15 +9625,15 @@ declare module BABYLON.GLTF2 {
9501
9625
  */
9502
9626
  thinFilmThicknessTexture: Nullable<BaseTexture>;
9503
9627
  /**
9504
- * Sets the unlit flag (OpenPBR: unlit, PBR: unlit)
9628
+ * Sets the unlit flag
9505
9629
  */
9506
9630
  unlit: boolean;
9507
9631
  /**
9508
- * Sets/gets the geometry opacity (OpenPBR: geometryOpacity, PBR: alpha)
9632
+ * Sets/gets the geometry opacity
9509
9633
  */
9510
9634
  geometryOpacity: number;
9511
9635
  /**
9512
- * Sets/gets the geometry normal texture (OpenPBR: geometryNormalTexture, PBR: bumpTexture)
9636
+ * Sets/gets the geometry normal texture
9513
9637
  */
9514
9638
  geometryNormalTexture: Nullable<BaseTexture>;
9515
9639
  /**
@@ -9519,7 +9643,7 @@ declare module BABYLON.GLTF2 {
9519
9643
  */
9520
9644
  setNormalMapInversions(invertX: boolean, invertY: boolean): void;
9521
9645
  /**
9522
- * Sets/gets the coat normal texture (OpenPBR: geometryCoatNormalTexture, PBR: clearCoat.bumpTexture)
9646
+ * Sets/gets the coat normal texture
9523
9647
  */
9524
9648
  geometryCoatNormalTexture: Nullable<BaseTexture>;
9525
9649
  /**
@@ -11762,6 +11886,49 @@ declare module BABYLON {
11762
11886
  ["KHR_materials_ior"]: {};
11763
11887
  }
11764
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
+
11765
11932
  }
11766
11933
  declare module BABYLON.GLTF2.Loader.Extensions {
11767
11934
  /**
@@ -11937,6 +12104,56 @@ declare module BABYLON {
11937
12104
  ["KHR_materials_diffuse_roughness"]: {};
11938
12105
  }
11939
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
+
11940
12157
  }
11941
12158
  declare module BABYLON.GLTF2.Loader.Extensions {
11942
12159
  /**
@@ -11968,9 +12185,6 @@ declare module BABYLON.GLTF2.Loader.Extensions {
11968
12185
  */
11969
12186
  loadMaterialPropertiesAsync(context: string, material: BABYLON.GLTF2.Loader.IMaterial, babylonMaterial: Material): Nullable<Promise<void>>;
11970
12187
  private _loadClearCoatPropertiesAsync;
11971
- private _loadClearCoatDarkeningPropertiesAsync;
11972
- private _loadClearCoatColorPropertiesAsync;
11973
- private _loadClearCoatAnisotropyPropertiesAsync;
11974
12188
  }
11975
12189
 
11976
12190