pex-renderer
Version:
Physically Based Renderer for Pex
38 lines (29 loc) • 551 B
JavaScript
module.exports = /* glsl */ `
const float gamma = 2.2;
// Linear
float toLinear(float v) {
return pow(v, gamma);
}
vec2 toLinear(vec2 v) {
return pow(v, vec2(gamma));
}
vec3 toLinear(vec3 v) {
return pow(v, vec3(gamma));
}
vec4 toLinear(vec4 v) {
return vec4(toLinear(v.rgb), v.a);
}
// Gamma
float toGamma(float v) {
return pow(v, 1.0 / gamma);
}
vec2 toGamma(vec2 v) {
return pow(v, vec2(1.0 / gamma));
}
vec3 toGamma(vec3 v) {
return pow(v, vec3(1.0 / gamma));
}
vec4 toGamma(vec4 v) {
return vec4(toGamma(v.rgb), v.a);
}
`