![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
From: Cousin Ricky
Subject: Friday abstract: spectral subtractive color mixing
Date: 18 Nov 2016 11:36:44
Message: <582f2e1c@news.povray.org>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
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](/povray.binaries.images/attachment/%3C582f2e1c%40news.povray.org%3E/subtractive-arith.jpg?ttop=437698&toff=700&preview=1)
Preview of image 'subtractive_blob-k.jpg'
![subtractive_blob-k.jpg](/povray.binaries.images/attachment/%3C582f2e1c%40news.povray.org%3E/subtractive_blob-k.jpg?ttop=437698&toff=700&preview=1)
Preview of image 'subtractive_blob-w.jpg'
![subtractive_blob-w.jpg](/povray.binaries.images/attachment/%3C582f2e1c%40news.povray.org%3E/subtractive_blob-w.jpg?ttop=437698&toff=700&preview=1)
Preview of image 'subtractive_blob-cmy.jpg'
![subtractive_blob-cmy.jpg](/povray.binaries.images/attachment/%3C582f2e1c%40news.povray.org%3E/subtractive_blob-cmy.jpg?ttop=437698&toff=700&preview=1)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
From: clipka
Subject: Re: Friday abstract: spectral subtractive color mixing
Date: 18 Nov 2016 12:11:50
Message: <582f3656$1@news.povray.org>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
clipka <ano### [at] anonymous org> 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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
From: clipka
Subject: Re: Friday abstract: spectral subtractive color mixing
Date: 18 Nov 2016 13:27:46
Message: <582f4822$1@news.povray.org>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Am 18.11.2016 um 19:13 schrieb Cousin Ricky:
> clipka <ano### [at] anonymous org> 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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
From: Paolo Gibellini
Subject: Re: Friday abstract: spectral subtractive color mixing
Date: 21 Nov 2016 07:32:18
Message: <5832e952$1@news.povray.org>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |