Tonemapping operators
Currently, the Reinhard tonemapping operator is within color.hpp
.
It may be a good idea to create a separate module for tonemapping operators. Then, how shall it be accessed ?
1 - Static methods?
class Tonemapper {
public:
static Color reinhard05(
Color const & color,
float const & chromatic_adaptation,
Color const & means,
float const & lum_mean,
float const & light_adaptation,
float const & contrast,
float const & intensity);
};
2 - Abstract tonemapper?
class Tonemapper {
public:
virtual Color apply(Color const& color) const = 0;
};
class Reinhard05 : public Tonemapper {
public:
Reinhard05(
float const & chromatic_adaptation,
Color const & means,
float const & lum_mean,
float const & light_adaptation,
float const & contrast,
float const & intensity);
virtual Color apply(Color const& color) const;
};