https://github.com/dmnsgn/glsl-tone-map
A collection of tone mapping functions available both as ES modules strings and as GLSL files for use with glslify.
https://github.com/dmnsgn/glsl-tone-map
aces agx filmic filmic-tone-mapping glsl lottes neutral reinhard tone tone-mapping tonemapping uchimura uncharted unreal
Last synced: 26 days ago
JSON representation
A collection of tone mapping functions available both as ES modules strings and as GLSL files for use with glslify.
- Host: GitHub
- URL: https://github.com/dmnsgn/glsl-tone-map
- Owner: dmnsgn
- License: mit
- Created: 2019-07-30T08:06:15.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2024-07-06T15:06:35.000Z (about 1 year ago)
- Last Synced: 2025-05-23T17:35:56.058Z (about 2 months ago)
- Topics: aces, agx, filmic, filmic-tone-mapping, glsl, lottes, neutral, reinhard, tone, tone-mapping, tonemapping, uchimura, uncharted, unreal
- Language: GLSL
- Homepage: https://dmnsgn.github.io/glsl-tone-map/
- Size: 81.1 KB
- Stars: 203
- Watchers: 7
- Forks: 15
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.MD
Awesome Lists containing this project
README
# glsl-tone-map
[](https://www.npmjs.com/package/glsl-tone-map)
[](https://www.npmjs.com/package/glsl-tone-map)
[](https://bundlephobia.com/package/glsl-tone-map)
[](https://github.com/dmnsgn/glsl-tone-map/blob/main/package.json)
[](https://github.com/microsoft/TypeScript)
[](https://conventionalcommits.org)
[](https://github.com/prettier/prettier)
[](https://github.com/eslint/eslint)
[](https://github.com/dmnsgn/glsl-tone-map/blob/main/LICENSE.md)A collection of tone mapping functions available both as ES modules strings and as GLSL files for use with glslify. Mostly taken from [here](https://bruop.github.io/tonemapping/) and [here](https://www.shadertoy.com/view/WdjSW3).
[](https://paypal.me/dmnsgn)
[](https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3)
[](https://twitter.com/dmnsgn)## Installation
```bash
npm install glsl-tone-map
```## Usage
### ESM
```js
import * as glslToneMap from "glsl-tone-map";const shader = /* glsl */ `
${glslToneMap.AGX}
${glslToneMap.NEUTRAL}
${glslToneMap.ACES}
${glslToneMap.FILMIC}
${glslToneMap.LOTTES}
${glslToneMap.REINHARD}
${glslToneMap.REINHARD2}
${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 = filmic(color.rgb);
color.rgb = lottes(color.rgb);
color.rgb = reinhard(color.rgb);
color.rgb = reinhard2(color.rgb);
color.rgb = uchimura(color.rgb);
color.rgb = uncharted2(color.rgb);
color.rgb = unreal(color.rgb);
}`;
```### glslify
```glsl
#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: filmic = require(glsl-tone-map/filmic)
#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: 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 = filmic(color.rgb);
color.rgb = lottes(color.rgb);
color.rgb = reinhard(color.rgb);
color.rgb = reinhard2(color.rgb);
color.rgb = uchimura(color.rgb);
color.rgb = uncharted2(color.rgb);
color.rgb = unreal(color.rgb);
}
```## License
MIT. See [license file](https://github.com/dmnsgn/glsl-tone-map/blob/main/LICENSE.md).