glsl-tone-map
v2.3.1
Published
A collection of tone mapping functions available both as ES modules strings and as GLSL files for use with glslify.
Maintainers
Readme
glsl-tone-map
A collection of tone mapping functions available both as ES modules strings and as GLSL files for use with glslify. Mostly taken from here and here.
Looking for WebGPU? See wgsl-tone-map, which ships the same operators in WGSL.
Installation
npm install glsl-tone-mapUsage
ESM
import * as glslToneMap from "glsl-tone-map";
const shader = /* glsl */ `
${glslToneMap.AGX}
${glslToneMap.NEUTRAL}
${glslToneMap.ACES}
${glslToneMap.ACES_HILL}
${glslToneMap.FILMIC}
${glslToneMap.HEJL}
${glslToneMap.LOTTES}
${glslToneMap.REINHARD}
${glslToneMap.REINHARD2}
${glslToneMap.REINHARD_JODIE}
${glslToneMap.UCHIMURA}
${glslToneMap.UNCHARTED2}
${glslToneMap.UNREAL}
void main() {
// ...
color.rgb = agx(color.rgb);
color.rgb = neutral(color.rgb);
color.rgb = aces(color.rgb);
color.rgb = acesHill(color.rgb);
color.rgb = filmic(color.rgb);
color.rgb = hejl(color.rgb);
color.rgb = lottes(color.rgb);
color.rgb = reinhard(color.rgb);
color.rgb = reinhard2(color.rgb);
color.rgb = reinhardJodie(color.rgb);
color.rgb = uchimura(color.rgb);
color.rgb = uncharted2(color.rgb);
color.rgb = unreal(color.rgb);
}`;Each operator also ships as a plain .glsl file (eg. glsl-tone-map/aces.glsl) for bundlers that load shaders as raw text.
glslify
#pragma glslify: agx = require(glsl-tone-map/agx)
#pragma glslify: neutral = require(glsl-tone-map/neutral)
#pragma glslify: aces = require(glsl-tone-map/aces)
#pragma glslify: acesHill = require(glsl-tone-map/acesHill)
#pragma glslify: filmic = require(glsl-tone-map/filmic)
#pragma glslify: hejl = require(glsl-tone-map/hejl)
#pragma glslify: lottes = require(glsl-tone-map/lottes)
#pragma glslify: reinhard = require(glsl-tone-map/reinhard)
#pragma glslify: reinhard2 = require(glsl-tone-map/reinhard2)
#pragma glslify: reinhardJodie = require(glsl-tone-map/reinhardJodie)
#pragma glslify: uchimura = require(glsl-tone-map/uchimura)
#pragma glslify: uncharted2 = require(glsl-tone-map/uncharted2)
#pragma glslify: unreal = require(glsl-tone-map/unreal)
void main() {
// ...
color.rgb = agx(color.rgb);
color.rgb = neutral(color.rgb);
color.rgb = aces(color.rgb);
color.rgb = acesHill(color.rgb);
color.rgb = filmic(color.rgb);
color.rgb = hejl(color.rgb);
color.rgb = lottes(color.rgb);
color.rgb = reinhard(color.rgb);
color.rgb = reinhard2(color.rgb);
color.rgb = reinhardJodie(color.rgb);
color.rgb = uchimura(color.rgb);
color.rgb = uncharted2(color.rgb);
color.rgb = unreal(color.rgb);
}License
MIT. See license file.
