UNPKG

gpu-curtains

Version:

gpu-curtains is a 3D WebGPU rendering engine. It can be used as a standalone 3D engine, but also includes extra classes focused on mapping 3d objects to DOM elements; It allows users to synchronize values such as position, sizing, or scale between them.

31 lines (30 loc) 1.31 kB
//#region src/core/shaders/chunks/fragment/body/get-IBL-clearcoat-indirect-radiance.ts /** * Get the environment map clearcoat indirect radiance (specular) contribution as `clearcoatRadiance` (`vec3f`). * * @param parameters - Parameters used to create the shader chunk. * @param parameters.extensionsUsed - {@link PBRFragmentShaderInputParams.extensionsUsed | extensionsUsed} to check if clearcoat is enabled. * @param parameters.environmentMap - {@link extras/environmentMap/EnvironmentMap.EnvironmentMap | EnvironmentMap} to use for indirect irradiance if any. * @returns - String with the `clearcoatRadiance` (`vec3f`) value set. */ const getIBLClearcoatIndirectRadiance = ({ extensionsUsed = [], environmentMap = null }) => { let iblClearcoatIndirectSpecular = ""; if (extensionsUsed.includes("KHR_materials_clearcoat")) { iblClearcoatIndirectSpecular += ` var clearcoatRadiance = vec3(0.0); `; if (environmentMap) iblClearcoatIndirectSpecular += ` clearcoatRadiance += getIBLIndirectRadiance( clearcoatNormal, viewDirection, clearcoatRoughness, ${environmentMap.sampler.name}, ${environmentMap.specularTexture.options.name}, envRotation, envSpecularIntensity, );`; } return iblClearcoatIndirectSpecular; }; //#endregion export { getIBLClearcoatIndirectRadiance };