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.

41 lines (39 loc) 916 B
const applyToneMapping = ({ toneMapping = "Khronos" } = {}) => { let toneMappingOutput = ( /* wgsl */ ` let exposure: f32 = 1.0; // TODO outputColor *= exposure; ` ); toneMappingOutput += (() => { switch (toneMapping) { case "Khronos": return ( /* wgsl */ ` outputColor = vec4(KhronosToneMapping(outputColor.rgb), outputColor.a); ` ); case "Reinhard": return ` outputColor = vec4(ReinhardToneMapping(outputColor.rgb), outputColor.a); `; case "Cineon": return ` outputColor = vec4(CineonToneMapping(outputColor.rgb), outputColor.a); `; case false: default: return ` outputColor = saturate(outputColor); `; } })(); toneMappingOutput += /* wgsl */ ` outputColor = linearTosRGB_4(outputColor); `; return toneMappingOutput; }; export { applyToneMapping };