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.
21 lines (20 loc) • 923 B
JavaScript
//#region src/core/shaders/chunks/fragment/body/get-volume-multi-scatter.ts
/**
* Set the `singleVolumeScatter` (`vec3f`) value from the material volume scatter.
*
* @param parameters - Parameters used to set the `singleVolumeScatter` (`vec3f`) value.
* @param parameters.extensionsUsed - {@link PBRFragmentShaderInputParams.extensionsUsed | extensionsUsed} to check if volume scatter transmission is enabled.
* @returns - String with the `singleVolumeScatter` (`vec3f`) value set.
*/
const getVolumeMultiScatter = ({ extensionsUsed = [] }) => {
let volumeScatter = `
// var singleVolumeScatter: vec3f = vec3(0.0);
var singleVolumeScatter: vec3f = vec3(1.0);
`;
if (!extensionsUsed.includes("KHR_materials_volume_scatter")) return volumeScatter;
volumeScatter += `
singleVolumeScatter = getVolumeMultiToSingleScatter(multiscatterColor);`;
return volumeScatter;
};
//#endregion
export { getVolumeMultiScatter };