UNPKG

pex-renderer

Version:

Physically Based Renderer for Pex

24 lines (20 loc) 479 B
// source http://webglinsights.github.io/downloads/WebGL-Insights-Chapter-16.pdf module.exports = /* glsl */ ` #define LINEAR 1 #define GAMMA 2 #define SRGB 3 #define RGBM 4 vec3 decodeRGBM (vec4 rgbm) { vec3 r = rgbm.rgb * (7.0 * rgbm.a); return r * r; } vec4 encodeRGBM (vec3 rgb_0) { vec4 r; r.xyz = (1.0 / 7.0) * sqrt(rgb_0); r.a = max(max(r.x, r.y), r.z); r.a = clamp(r.a, 1.0 / 255.0, 1.0); r.a = ceil(r.a * 255.0) / 255.0; r.xyz /= r.a; return r; } `