UNPKG

playcanvas

Version:

Open-source WebGL/WebGPU 3D engine for the web

42 lines (41 loc) 1.59 kB
import { extractTextureTransform } from "./khr-texture-transform.js"; const KHR_materials_clearcoat = { apply(data, material, textures) { if (data.hasOwnProperty("clearcoatFactor")) { material.clearCoat = data.clearcoatFactor * 0.25; } else { material.clearCoat = 0; } if (data.hasOwnProperty("clearcoatTexture")) { const clearcoatTexture = data.clearcoatTexture; material.clearCoatMap = textures[clearcoatTexture.index]; material.clearCoatMapChannel = "r"; extractTextureTransform(clearcoatTexture, material, ["clearCoat"]); } if (data.hasOwnProperty("clearcoatRoughnessFactor")) { material.clearCoatGloss = data.clearcoatRoughnessFactor; } else { material.clearCoatGloss = 0; } if (data.hasOwnProperty("clearcoatRoughnessTexture")) { const clearcoatRoughnessTexture = data.clearcoatRoughnessTexture; material.clearCoatGlossMap = textures[clearcoatRoughnessTexture.index]; material.clearCoatGlossMapChannel = "g"; extractTextureTransform(clearcoatRoughnessTexture, material, ["clearCoatGloss"]); } if (data.hasOwnProperty("clearcoatNormalTexture")) { const clearcoatNormalTexture = data.clearcoatNormalTexture; material.clearCoatNormalMap = textures[clearcoatNormalTexture.index]; extractTextureTransform(clearcoatNormalTexture, material, ["clearCoatNormal"]); if (clearcoatNormalTexture.hasOwnProperty("scale")) { material.clearCoatBumpiness = clearcoatNormalTexture.scale; } else { material.clearCoatBumpiness = 1; } } material.clearCoatGlossInvert = true; } }; export { KHR_materials_clearcoat };