Page 1 of 2

Color rendering

Posted: Tue Oct 19, 2010 7:34 am
by galinette
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

Re: Color rendering

Posted: Tue Oct 19, 2010 11:52 am
by OnoSendai
Hi Galinette,
Very interesting experiments!
Can you please email me the EXR?
Thanks,
nik

Re: Color rendering

Posted: Tue Oct 19, 2010 1:11 pm
by StompinTom
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 !!!

Re: Color rendering

Posted: Tue Oct 19, 2010 3:40 pm
by OnoSendai
I added a vignetting switch, just for you guys :)

Re: Color rendering

Posted: Tue Oct 19, 2010 7:29 pm
by Pibuz
That is great news.
VERY looking forward to more postprocess tools Indigo-integrated 8)

Re: Color rendering

Posted: Wed Oct 20, 2010 12:21 am
by StompinTom
OnoSendai wrote:I added a vignetting switch, just for you guys :)
Thaaaank you! Now I can tiltshift to my heart's content.

Re: Color rendering

Posted: Wed Oct 20, 2010 8:38 am
by galinette
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

Re: Color rendering

Posted: Wed Oct 20, 2010 10:03 am
by galinette
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

Re: Color rendering

Posted: Wed Oct 20, 2010 11:31 am
by OnoSendai
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.

Re: Color rendering

Posted: Wed Oct 20, 2010 10:29 pm
by galinette
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

Re: Color rendering

Posted: Thu Oct 21, 2010 11:29 pm
by OnoSendai
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.

Re: Color rendering

Posted: Fri Oct 22, 2010 2:12 am
by galinette
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

Re: Color rendering

Posted: Fri Oct 22, 2010 3:33 am
by StompinTom
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...

Re: Color rendering

Posted: Fri Oct 22, 2010 11:05 am
by OnoSendai
Hi Tom,
that should be possible.
I'll either send you a build or do a 2.6.2 release with it included.

Re: Color rendering

Posted: Tue Jan 31, 2012 10:06 am
by CTZn
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.