POV-Ray : Newsgroups : povray.binaries.images : Friday abstract: spectral subtractive color mixing Server Time
7 Nov 2024 07:31:57 EST (-0500)
  Friday abstract: spectral subtractive color mixing (Message 1 to 5 of 5)  
From: Cousin Ricky
Subject: Friday abstract: spectral subtractive color mixing
Date: 18 Nov 2016 11:36:44
Message: <582f2e1c@news.povray.org>
These four images are all rendered spectrally.

Image subtractive-arith.jpg uses straightforward arithmetic averaging of 
4 colors.  Clearly, arithmetic averaging is not the way to simulate the 
mixing of pigments.

Images subtractive_blob-k.jpg and subtractive_blob-w.jpg use geometric 
averaging of 4 colors.

Image subtractive_blob-cmy.jpg uses geometric averaging of 3 colors.


Post a reply to this message


Attachments:
Download 'subtractive-arith.jpg' (34 KB) Download 'subtractive_blob-k.jpg' (53 KB) Download 'subtractive_blob-w.jpg' (56 KB) Download 'subtractive_blob-cmy.jpg' (55 KB)

Preview of image 'subtractive-arith.jpg'
subtractive-arith.jpg

Preview of image 'subtractive_blob-k.jpg'
subtractive_blob-k.jpg

Preview of image 'subtractive_blob-w.jpg'
subtractive_blob-w.jpg

Preview of image 'subtractive_blob-cmy.jpg'
subtractive_blob-cmy.jpg


 

From: clipka
Subject: Re: Friday abstract: spectral subtractive color mixing
Date: 18 Nov 2016 12:11:50
Message: <582f3656$1@news.povray.org>
Am 18.11.2016 um 17:38 schrieb Cousin Ricky:
> These four images are all rendered spectrally.
> 
> Image subtractive-arith.jpg uses straightforward arithmetic averaging of
> 4 colors.  Clearly, arithmetic averaging is not the way to simulate the
> mixing of pigments.

From my experience, you get the best results by applying the following
algorithm:

  - For each colour involved, compute its luminance.

  - For each colour, compute the lightness from the luminance.
  - Compute the arithmetic average of all the lightness values.
  - Compute the result luminance from the averaged lightness.

  - For each colour involved, normalize it to unity luminance
    by dividing each component by the colour's computed luminance.
  - Compute the arithmetic average of the normalized colours.

  - Renormalize the result colour to the result luminance
    by multiplying each component with the result luminance.

POV-Ray 3.7.1 supports this type of averaging in pigment maps and colour
maps, using "blend_mode 3" (IIRC); by default, it uses Y=V^2.4 as the
formula to convert between luminance (Y) and lightness (V).


Post a reply to this message

From: Cousin Ricky
Subject: Re: Friday abstract: spectral subtractive color mixing
Date: 18 Nov 2016 13:15:01
Message: <web.582f44accde22fa682fed3640@news.povray.org>
clipka <ano### [at] anonymousorg> wrote:
> From my experience, you get the best results by applying the following
> algorithm:
>
>   - For each colour involved, compute its luminance.
>
>   - For each colour, compute the lightness from the luminance.
>   - Compute the arithmetic average of all the lightness values.
>   - Compute the result luminance from the averaged lightness.
>
>   - For each colour involved, normalize it to unity luminance
>     by dividing each component by the colour's computed luminance.
>   - Compute the arithmetic average of the normalized colours.
>
>   - Renormalize the result colour to the result luminance
>     by multiplying each component with the result luminance.

Does this work with spectral rendering?


Post a reply to this message

From: clipka
Subject: Re: Friday abstract: spectral subtractive color mixing
Date: 18 Nov 2016 13:27:46
Message: <582f4822$1@news.povray.org>
Am 18.11.2016 um 19:13 schrieb Cousin Ricky:
> clipka <ano### [at] anonymousorg> wrote:
>> From my experience, you get the best results by applying the following
>> algorithm:
>>
>>   - For each colour involved, compute its luminance.
>>
>>   - For each colour, compute the lightness from the luminance.
>>   - Compute the arithmetic average of all the lightness values.
>>   - Compute the result luminance from the averaged lightness.
>>
>>   - For each colour involved, normalize it to unity luminance
>>     by dividing each component by the colour's computed luminance.
>>   - Compute the arithmetic average of the normalized colours.
>>
>>   - Renormalize the result colour to the result luminance
>>     by multiplying each component with the result luminance.
> 
> Does this work with spectral rendering?

If you can compute the luminance of a colour across all channels that
will eventually be rendered, then yeah -- that should certainly work.


Post a reply to this message

From: Paolo Gibellini
Subject: Re: Friday abstract: spectral subtractive color mixing
Date: 21 Nov 2016 07:32:18
Message: <5832e952$1@news.povray.org>
Cousin Ricky wrote on 18/11/2016 17:38:
> These four images are all rendered spectrally.
>
> Image subtractive-arith.jpg uses straightforward arithmetic averaging of
> 4 colors.  Clearly, arithmetic averaging is not the way to simulate the
> mixing of pigments.
>
> Images subtractive_blob-k.jpg and subtractive_blob-w.jpg use geometric
> averaging of 4 colors.
>
> Image subtractive_blob-cmy.jpg uses geometric averaging of 3 colors.

Lovely!
Paolo


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.