UNPKG

playcanvas

Version:

PlayCanvas WebGL game engine

21 lines (19 loc) 659 B
var tonemappingNeutralPS = ` uniform float exposure; vec3 toneMap(vec3 color) { color *= exposure; float startCompression = 0.8 - 0.04; float desaturation = 0.15; float x = min(color.r, min(color.g, color.b)); float offset = x < 0.08 ? x - 6.25 * x * x : 0.04; color -= offset; float peak = max(color.r, max(color.g, color.b)); if (peak < startCompression) return color; float d = 1. - startCompression; float newPeak = 1. - d * d / (peak + d - startCompression); color *= newPeak / peak; float g = 1. - 1. / (desaturation * (peak - newPeak) + 1.); return mix(color, newPeak * vec3(1, 1, 1), g); } `; export { tonemappingNeutralPS as default };