12345678910111213141516171819202122232425262728293031323334 |
- module BABYLON {
- export enum TonemappingOperator {
- Hable = 0,
- Reinhard = 1,
- HejiDawson = 2,
- Photographic = 3,
- };
- export class TonemapPostProcess extends PostProcess {
- constructor(name: string, private _operator: TonemappingOperator, public exposureAdjustment: number, camera: Camera, samplingMode: number = Texture.BILINEAR_SAMPLINGMODE, engine?: Engine, textureFormat = Engine.TEXTURETYPE_UNSIGNED_INT) {
- super(name, "tonemap", ["_ExposureAdjustment"], null, 1.0, camera, samplingMode, engine, true, defines, textureFormat);
- var defines = "#define ";
- if (this._operator === TonemappingOperator.Hable)
- defines += "HABLE_TONEMAPPING";
- else if (this._operator === TonemappingOperator.Reinhard)
- defines += "REINHARD_TONEMAPPING";
- else if (this._operator === TonemappingOperator.HejiDawson)
- defines += "OPTIMIZED_HEJIDAWSON_TONEMAPPING";
- else if (this._operator === TonemappingOperator.Photographic)
- defines += "PHOTOGRAPHIC_TONEMAPPING";
-
- //sadly a second call to create the effect.
- this.updateEffect(defines);
- this.onApply = (effect: Effect) => {
- effect.setFloat("_ExposureAdjustment", this.exposureAdjustment);
- };
- }
- }
- }
|