Color rendering

Feature requests, bug reports and related discussion
User avatar
galinette
1st Place Winner
Posts: 923
Joined: Sat Jan 09, 2010 1:39 am
Location: Nantes, France
Contact:

Color rendering

Post by galinette » Tue Oct 19, 2010 7:34 am

Dear Indigo team,

For work purposes, I am trying to evaluate the Indigo capabilities in terms of "color proof" image rendering.

For this, I have modified an envmap with photoshop and added flat color squares with the following colors : red(0.5,0,0), green(0,0.5,0), blue(0,0,0.5) and three greys (with intensities of 0.5, 0.25, 0.125)
mire.png
Then I made a render with that envmap on a very simple scene (you may recognize the soft & exporter!) using the linear tonemapper. The igs code was edited, to set the envmap emitter blackbody to 5503K, and to adjust the gain. The camera WB was set to D55(5503K). I save under EXR and reopen in photoshop.
mire2.png
Here are my first results and impressions:
  • The grays are not gray anymore : I have RGB values such as (98,95,98) in the gray squares. Given the two identical WB temps used for the envmap and the camera, colors should be normally preserved
  • Same for the pure red, green and blue colors : they are not pure anymore
  • The intensity ratio between gray levels is not 2 anymore : its something like 1.7, as if there was some gamma problem. This means the gamma used in the envmap reader is not the same as the one used in the render image saving
  • There is a huge vignetting (darkers corners) effect with that lens (120° FOV). Whereas it may look very photographic (real lenses have vignetting), I would expect Indigo to have at least the option not to do that optical imperfectness! Vignetting is best added in post prod for those who want it.
  • Last minor issue : the gain of the envmap emitter material seems to have no effect : by changing it from 1 to 1000, I need to set the same tonemapping gain for having a correct exposure.
I'm ready to give some necessary support if you would like to improve the color chain in Indigo. For work, I need to make photorealistic renders of glass materials from measured data, and the color correctness is very important.

Best regards,

Etienne
Eclat-Digital Research
http://www.eclat-digital.com

User avatar
OnoSendai
Developer
Posts: 6244
Joined: Sat May 20, 2006 6:16 pm
Location: Wellington, NZ
Contact:

Re: Color rendering

Post by OnoSendai » Tue Oct 19, 2010 11:52 am

Hi Galinette,
Very interesting experiments!
Can you please email me the EXR?
Thanks,
nik

StompinTom
Indigo 100
Posts: 1828
Joined: Mon Sep 04, 2006 3:33 pm

Re: Color rendering

Post by StompinTom » Tue Oct 19, 2010 1:11 pm

galinette wrote: [*]There is a huge vignetting (darkers corners) effect with that lens (120° FOV). Whereas it may look very photographic (real lenses have vignetting), I would expect Indigo to have at least the option not to do that optical imperfectness! Vignetting is best added in post prod for those who want it.
+10 !!!

User avatar
OnoSendai
Developer
Posts: 6244
Joined: Sat May 20, 2006 6:16 pm
Location: Wellington, NZ
Contact:

Re: Color rendering

Post by OnoSendai » Tue Oct 19, 2010 3:40 pm

I added a vignetting switch, just for you guys :)

User avatar
Pibuz
1st Place 100
Posts: 2646
Joined: Tue Dec 11, 2007 7:58 am
Location: Padua, Italy
3D Software: SketchUp

Re: Color rendering

Post by Pibuz » Tue Oct 19, 2010 7:29 pm

That is great news.
VERY looking forward to more postprocess tools Indigo-integrated 8)

StompinTom
Indigo 100
Posts: 1828
Joined: Mon Sep 04, 2006 3:33 pm

Re: Color rendering

Post by StompinTom » Wed Oct 20, 2010 12:21 am

OnoSendai wrote:I added a vignetting switch, just for you guys :)
Thaaaank you! Now I can tiltshift to my heart's content.

User avatar
galinette
1st Place Winner
Posts: 923
Joined: Sat Jan 09, 2010 1:39 am
Location: Nantes, France
Contact:

Re: Color rendering

Post by galinette » Wed Oct 20, 2010 8:38 am

Hi Nick,

The gray level ratio issue is : I have 3 gray squares in the envmap, having intensity ratios of 2 (one is half of the brightest, one is quarter of the brightest)

On the final image, the ratios are not 2, but something like 1.35 (if you conpensate the vignetting)

This could correspond to the following issue : the envmap values are used linearly, but the saved exr is encoded with a gamma of something like 2.2 ( 2^(1/2.2) ~ 1.35 )

Is that the case? I would expect an HDR output to be encoded linearly, without any gamma.

Regards,

Etienne
Eclat-Digital Research
http://www.eclat-digital.com

User avatar
galinette
1st Place Winner
Posts: 923
Joined: Sat Jan 09, 2010 1:39 am
Location: Nantes, France
Contact:

Re: Color rendering

Post by galinette » Wed Oct 20, 2010 10:03 am

Hi Nick,

I have made a new test, as it appears that the D65 standard spectrum is quite far from a 6500K blackbody distribution.

I have replaced the envmap blackbody by the real D65 spectrum in the igs code:

Code: Select all

 <base_emission>
                <constant>
                    <regular_tabulated>
                        <start_wavelength>380E-9</start_wavelength>
                        <end_wavelength>780E-9</end_wavelength>
                        <num_values>81</num_values>
                        <values>
                            49.9755    52.3118    54.6482    68.7015
                            82.7549    87.1204    91.486    92.4589
                            93.4318    90.057    86.6823    95.7736
                            104.865    110.936    117.008    117.41
                            117.812    116.337    114.861    115.392
                            115.923    112.367    108.811    109.083
                            109.354    108.578    107.802    106.296
                            104.79    106.24    107.689    106.047
                            104.405    104.226    104.046    102.023
                            100        98.1671    96.3342    96.0611
                            95.788    92.2368    88.6856    89.3459
                            90.0062    89.8026    89.5991    88.6489
                            87.6987    85.4936    83.2886    83.4939
                            83.6992    81.863    80.0268    80.1207
                            80.2146    81.2462    82.2778    80.281
                            78.2842    74.0027    69.7213    70.6652
                            71.6091    72.979    74.349    67.9765
                            61.604    65.7448    69.8856    72.4863
                            75.087    69.3398    63.5927    55.0054
                            46.4182    56.6118    66.8054    65.0941
                            63.3828
                        </values>
                    </regular_tabulated>
                </constant>
            </base_emission>

Now, I get perfect grays and pure colors. It could be interesting to have access to these standard spectra (D65, D55, A, C, F...) for emitters and not only for the camera. As it is possible to use them with regular_tabulated, maybe this is an exporter feature.

Regarding the linearity/gamma issue, apologies... In fact, when you convert a HDR to 8bit in Photoshop, using a gamma of 1, it is still applying a gamma of 2.2 to the output, causing these linearity errors... The EXR output from Indigo is well linear.

So, the only issue I have now is vignetting, which is clearly an aliasing from Indigo.

Regards,

Etienne
Attachments
mire2c.png
Eclat-Digital Research
http://www.eclat-digital.com

User avatar
OnoSendai
Developer
Posts: 6244
Joined: Sat May 20, 2006 6:16 pm
Location: Wellington, NZ
Contact:

Re: Color rendering

Post by OnoSendai » Wed Oct 20, 2010 11:31 am

Hi Etienne,
I ended up making my own EXR.
The renderings below are with vignetting off (new feature :) ).

The first image:
6500K Correlated colour temperature 'black-body' illuminant, D65 whitepoint.
The light grey colour has RGB values (0.8020, 0.7627, 0.7979), which has a nasty purple tint to it.

The second image:
D65 Illuminant as given by you, and a D65 whitepoint.
The light grey colour has RGB values (0.7686, 0.7744, 0.7738)


So it seems that using 6500K blackbody as opposed to using the actual D65 SPD. gives a purple colour tint.
Attachments
exr_colour_test_6500K_illuminant_d65_whitepoint.png
exr_colour_test_d65_illuminant_d65_whitepoint.png

User avatar
galinette
1st Place Winner
Posts: 923
Joined: Sat Jan 09, 2010 1:39 am
Location: Nantes, France
Contact:

Re: Color rendering

Post by galinette » Wed Oct 20, 2010 10:29 pm

Thanks, that confirms my tests.

It would be very convenient to add some a spectrum classe, in addition to <blackbody> or <regular_tabulated>, which gives access to the standard illuminants. To me, it's not a problem to hack the igs with custom spectra, but that would help other users having a color proof lighting.

These small differences are quite visible on a high-end monitor (Eizo CG234T) and I was wondering why my grey sky was not grey...

I want that non-vignetting feature!!!!

Lastly, how would it be possible to have the same luminance levels in the rendered exr image and in the envmap exr? The envmap blackbody gain has no effect, and the camera lens setting (aperture) changes the exposure, my output image is always much darker (around -13EV) than the source. How could I manage to keep the gain?

Thanks,

Etienne
Eclat-Digital Research
http://www.eclat-digital.com

User avatar
OnoSendai
Developer
Posts: 6244
Joined: Sat May 20, 2006 6:16 pm
Location: Wellington, NZ
Contact:

Re: Color rendering

Post by OnoSendai » Thu Oct 21, 2010 11:29 pm

Hi Etienne,

I think it is a good idea to add the standard illuminants as built-in spectrum types, I will do that.

I'm not sure about your last question. Depending on how you set up the background material, the envmap exr values will be converted to different measures (luminance, spectral radiance etc..), with different scaling factors.
The resulting rendered exr will be in different units yet again (each channel is something like energy - spectral irradiance integrated over the duration of the exposure, integrated over all wavelengths multiplied by the colour matching functions etc..)
I guess it would be possible to pick the tonemapping scale to compensate for all the other factors.

User avatar
galinette
1st Place Winner
Posts: 923
Joined: Sat Jan 09, 2010 1:39 am
Location: Nantes, France
Contact:

Re: Color rendering

Post by galinette » Fri Oct 22, 2010 2:12 am

Hi Nick,

That's exactly what I want to do. I would like to calibrate the parameters (envmap, camera, TM) so that I get the same levels at the end.

But currently, I have only two options, and neither work:
- The blackbody gain in the envmap material definition seems to have no effect on output levels. Bug?
- The tonemapper gain has no effect (but that's logical since the exr output is untonemapped)

Etienne
Eclat-Digital Research
http://www.eclat-digital.com

StompinTom
Indigo 100
Posts: 1828
Joined: Mon Sep 04, 2006 3:33 pm

Re: Color rendering

Post by StompinTom » Fri Oct 22, 2010 3:33 am

Would it be possible to get a quick build out with the vignetting toggle? It would save me a lot of screwing around in Photoshop this weekend...

User avatar
OnoSendai
Developer
Posts: 6244
Joined: Sat May 20, 2006 6:16 pm
Location: Wellington, NZ
Contact:

Re: Color rendering

Post by OnoSendai » Fri Oct 22, 2010 11:05 am

Hi Tom,
that should be possible.
I'll either send you a build or do a 2.6.2 release with it included.

User avatar
CTZn
Posts: 7240
Joined: Thu Nov 16, 2006 4:34 pm
Location: Paris, France

Re: Color rendering

Post by CTZn » Tue Jan 31, 2012 10:06 am

galinette wrote:I have replaced the envmap blackbody by the real D65 spectrum in the igs code:

Code: Select all

 <base_emission>
                <constant>
                    <regular_tabulated>
                        <start_wavelength>380E-9</start_wavelength>
                        <end_wavelength>780E-9</end_wavelength>
                        <num_values>81</num_values>
                        <values>
                            49.9755    52.3118    54.6482    68.7015
                            82.7549    87.1204    91.486    92.4589
                            93.4318    90.057    86.6823    95.7736
                            104.865    110.936    117.008    117.41
                            117.812    116.337    114.861    115.392
                            115.923    112.367    108.811    109.083
                            109.354    108.578    107.802    106.296
                            104.79    106.24    107.689    106.047
                            104.405    104.226    104.046    102.023
                            100        98.1671    96.3342    96.0611
                            95.788    92.2368    88.6856    89.3459
                            90.0062    89.8026    89.5991    88.6489
                            87.6987    85.4936    83.2886    83.4939
                            83.6992    81.863    80.0268    80.1207
                            80.2146    81.2462    82.2778    80.281
                            78.2842    74.0027    69.7213    70.6652
                            71.6091    72.979    74.349    67.9765
                            61.604    65.7448    69.8856    72.4863
                            75.087    69.3398    63.5927    55.0054
                            46.4182    56.6118    66.8054    65.0941
                            63.3828
                        </values>
                    </regular_tabulated>
                </constant>
            </base_emission>
[...] As it is possible to use them with regular_tabulated, maybe this is an exporter feature.
Hi Etienne,

I have included this table as a preset for spectra in MtI. By the way I am looking for miscellaneous computed or measured tables that I could add easily, is there a source that you would recommend for harvesting ? Illuminants, absorbtion and more eventually.

I think there is an option to generate data with xls tables, likewise I would not refuse a few pointers.

Thank you.
obsolete asset

Post Reply
19 posts