Enum MappingColorSpace

Source
pub enum MappingColorSpace {
    Rgb(RgbToneMapperParameters),
    YRgb(CommonToneMapperParameters),
    Oklab(CommonToneMapperParameters),
    Jzazbz(JzazbzToneMapperParameters),
}

Variants§

§

Rgb(RgbToneMapperParameters)

Scene linear light RGB colorspace.

Some description what to expect:

  • Does not produce colours outside the destination gamut.
  • Generally tends to produce “natural” looking colours, although saturation of extreme colours is reduced substantially and some colours may be changed in hue.
  • Problematic when it is desired to retain bright saturated colours, such as coloured lights at night
  • Depending on the amount of compression, the saturation decrease may be excessive, and occasionally hue changes can be objectionable.
§

YRgb(CommonToneMapperParameters)

Yrg filmic colorspace.

Slightly better results as in linear RGB, for a little computational cost.

Some description what to expect:

  • Has the potential to produce colours outside the destination gamut, which then require gamut mapping
  • Preserves chromaticity except for where gamut mapping is applied. Does not produce a “natural” looking desaturation of tonally compressed colours.
  • Problems can be avoided by using in combination with a variable desaturation and gamut mapping algorithm, although such algorithms generally perform best in hue, saturation and lightness colour spaces (requiring a colour space change).

Algorithm here do not perform gamut mapping.

§

Oklab(CommonToneMapperParameters)

Oklab perceptual colorspace.

It exists more for experiments how does it look like. Results are often strange and might not be acceptable. Oklab is not really were created for HDR.

Some description of what to expect:

  • Provides perceptually uniform lightness adjustments.
  • Preserves hue better than RGB but can lead to color shifts due to applying aggressive compression.
  • Suitable for applications where perceptual lightness control is more important than strict colorimetric accuracy.
§

Jzazbz(JzazbzToneMapperParameters)

JzAzBz perceptual HDR colorspace.

Some description of what to expect:

  • Designed for HDR workflows, explicitly modeling display-referred luminance.
  • Thus, as at the first point often produces the best results.
  • Provides better perceptual uniformity than Oklab, particularly in high dynamic range content.
  • Preserves hue well, but chroma adjustments may be necessary when mapping between displays with different peak brightness.
  • Can help avoid color distortions and oversaturation when adapting HDR content to lower-luminance displays.

This is very slow computational method. Content brightness should be specified.

Trait Implementations§

Source§

impl Clone for MappingColorSpace

Source§

fn clone(&self) -> MappingColorSpace

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for MappingColorSpace

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for MappingColorSpace

Source§

fn eq(&self, other: &MappingColorSpace) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for MappingColorSpace

Source§

fn partial_cmp(&self, other: &MappingColorSpace) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Copy for MappingColorSpace

Source§

impl StructuralPartialEq for MappingColorSpace

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.