92344ab2dfd5bff5677b2684ef7103a8355fbf36806859c5ec3fe2eaa9ba3cc3.json 10 KB

1
  1. {"ast":null,"code":"import { Color3 } from \"@babylonjs/core/Maths/math.color.js\";\nimport { PBRMaterial } from \"@babylonjs/core/Materials/PBR/pbrMaterial.js\";\nimport { GLTFLoader } from \"../glTFLoader.js\";\nconst NAME = \"KHR_materials_pbrSpecularGlossiness\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Archived/KHR_materials_pbrSpecularGlossiness/README.md)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class KHR_materials_pbrSpecularGlossiness {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n /**\n * Defines a number that determines the order the extensions are applied.\n */\n this.order = 200;\n this._loader = loader;\n this.enabled = this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n }\n /**\n * @internal\n */\n loadMaterialPropertiesAsync(context, material, babylonMaterial) {\n return GLTFLoader.LoadExtensionAsync(context, material, this.name, (extensionContext, extension) => {\n const promises = new Array();\n promises.push(this._loader.loadMaterialBasePropertiesAsync(context, material, babylonMaterial));\n promises.push(this._loadSpecularGlossinessPropertiesAsync(extensionContext, extension, babylonMaterial));\n this._loader.loadMaterialAlphaProperties(context, material, babylonMaterial);\n return Promise.all(promises).then(() => {});\n });\n }\n _loadSpecularGlossinessPropertiesAsync(context, properties, babylonMaterial) {\n if (!(babylonMaterial instanceof PBRMaterial)) {\n throw new Error(`${context}: Material type not supported`);\n }\n const promises = new Array();\n babylonMaterial.metallic = null;\n babylonMaterial.roughness = null;\n if (properties.diffuseFactor) {\n babylonMaterial.albedoColor = Color3.FromArray(properties.diffuseFactor);\n babylonMaterial.alpha = properties.diffuseFactor[3];\n } else {\n babylonMaterial.albedoColor = Color3.White();\n }\n babylonMaterial.reflectivityColor = properties.specularFactor ? Color3.FromArray(properties.specularFactor) : Color3.White();\n babylonMaterial.microSurface = properties.glossinessFactor == undefined ? 1 : properties.glossinessFactor;\n if (properties.diffuseTexture) {\n promises.push(this._loader.loadTextureInfoAsync(`${context}/diffuseTexture`, properties.diffuseTexture, texture => {\n texture.name = `${babylonMaterial.name} (Diffuse)`;\n babylonMaterial.albedoTexture = texture;\n }));\n }\n if (properties.specularGlossinessTexture) {\n promises.push(this._loader.loadTextureInfoAsync(`${context}/specularGlossinessTexture`, properties.specularGlossinessTexture, texture => {\n texture.name = `${babylonMaterial.name} (Specular Glossiness)`;\n babylonMaterial.reflectivityTexture = texture;\n babylonMaterial.reflectivityTexture.hasAlpha = true;\n }));\n babylonMaterial.useMicroSurfaceFromReflectivityMapAlpha = true;\n }\n return Promise.all(promises).then(() => {});\n }\n}\nGLTFLoader.RegisterExtension(NAME, loader => new KHR_materials_pbrSpecularGlossiness(loader));","map":{"version":3,"names":["Color3","PBRMaterial","GLTFLoader","NAME","KHR_materials_pbrSpecularGlossiness","constructor","loader","name","order","_loader","enabled","isExtensionUsed","dispose","loadMaterialPropertiesAsync","context","material","babylonMaterial","LoadExtensionAsync","extensionContext","extension","promises","Array","push","loadMaterialBasePropertiesAsync","_loadSpecularGlossinessPropertiesAsync","loadMaterialAlphaProperties","Promise","all","then","properties","Error","metallic","roughness","diffuseFactor","albedoColor","FromArray","alpha","White","reflectivityColor","specularFactor","microSurface","glossinessFactor","undefined","diffuseTexture","loadTextureInfoAsync","texture","albedoTexture","specularGlossinessTexture","reflectivityTexture","hasAlpha","useMicroSurfaceFromReflectivityMapAlpha","RegisterExtension"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.js"],"sourcesContent":["import { Color3 } from \"@babylonjs/core/Maths/math.color.js\";\nimport { PBRMaterial } from \"@babylonjs/core/Materials/PBR/pbrMaterial.js\";\nimport { GLTFLoader } from \"../glTFLoader.js\";\nconst NAME = \"KHR_materials_pbrSpecularGlossiness\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Archived/KHR_materials_pbrSpecularGlossiness/README.md)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class KHR_materials_pbrSpecularGlossiness {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n /**\n * Defines a number that determines the order the extensions are applied.\n */\n this.order = 200;\n this._loader = loader;\n this.enabled = this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n }\n /**\n * @internal\n */\n loadMaterialPropertiesAsync(context, material, babylonMaterial) {\n return GLTFLoader.LoadExtensionAsync(context, material, this.name, (extensionContext, extension) => {\n const promises = new Array();\n promises.push(this._loader.loadMaterialBasePropertiesAsync(context, material, babylonMaterial));\n promises.push(this._loadSpecularGlossinessPropertiesAsync(extensionContext, extension, babylonMaterial));\n this._loader.loadMaterialAlphaProperties(context, material, babylonMaterial);\n return Promise.all(promises).then(() => { });\n });\n }\n _loadSpecularGlossinessPropertiesAsync(context, properties, babylonMaterial) {\n if (!(babylonMaterial instanceof PBRMaterial)) {\n throw new Error(`${context}: Material type not supported`);\n }\n const promises = new Array();\n babylonMaterial.metallic = null;\n babylonMaterial.roughness = null;\n if (properties.diffuseFactor) {\n babylonMaterial.albedoColor = Color3.FromArray(properties.diffuseFactor);\n babylonMaterial.alpha = properties.diffuseFactor[3];\n }\n else {\n babylonMaterial.albedoColor = Color3.White();\n }\n babylonMaterial.reflectivityColor = properties.specularFactor ? Color3.FromArray(properties.specularFactor) : Color3.White();\n babylonMaterial.microSurface = properties.glossinessFactor == undefined ? 1 : properties.glossinessFactor;\n if (properties.diffuseTexture) {\n promises.push(this._loader.loadTextureInfoAsync(`${context}/diffuseTexture`, properties.diffuseTexture, (texture) => {\n texture.name = `${babylonMaterial.name} (Diffuse)`;\n babylonMaterial.albedoTexture = texture;\n }));\n }\n if (properties.specularGlossinessTexture) {\n promises.push(this._loader.loadTextureInfoAsync(`${context}/specularGlossinessTexture`, properties.specularGlossinessTexture, (texture) => {\n texture.name = `${babylonMaterial.name} (Specular Glossiness)`;\n babylonMaterial.reflectivityTexture = texture;\n babylonMaterial.reflectivityTexture.hasAlpha = true;\n }));\n babylonMaterial.useMicroSurfaceFromReflectivityMapAlpha = true;\n }\n return Promise.all(promises).then(() => { });\n }\n}\nGLTFLoader.RegisterExtension(NAME, (loader) => new KHR_materials_pbrSpecularGlossiness(loader));\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}