Author Topic: Correct Macbeth / X-rite Color checker albedo values in Corona  (Read 5533 times)

2020-06-18, 15:34:18

bograt

  • Active Users
  • **
  • Posts: 33
    • View Profile
Hi All,

I just wanted to open a discussion about something that has been bothering me for years now.
I would like to know how to accurately calibrate photographed texture maps for use in Corona, so that texture behaves physically accurately, as well as just looking correct.

I have been using a color checker to calibrate photographed textures, this works but I have always felt that the colours are maybe not true to life when looking at the rgb values (see image attatched).
The white is 243 or 95.3% reflective, which sounds far too reflective, and most of the coloured swatches are 100% saturation, which is far greater than with the default camera profile.
 
The following stagement: "The code value of 118 in an 8-bit system corresponds to 18% of the maximum final output for sRGB." suggests that the correct value for 'mid grey card' which reflects 18% of the light hitting it would be rgb 118,118,118, instead of rgb 46,46,46 because of the gamma curve.
I'm assuming Corona offsets the gamma curve, converting textures to linear color space before path tracing.

If this it the case, then a value of 128 in gamma 2.2 would result in rgb 47, or 18% reflectivity (sounds about right...) and a value of 243 in gamma 2.2 would result in rgb 225, or 88% reflectivity, which also sounds.. correct.
This suggests that the X-rite calibration values are in fact accurate to physical reflectance values, when converted to Linear colourspace / Gamma 1.

The question is, if this is correct, why have I been hearing for so many years from almost every source that a white value of 243 would be far too high, and that 225 should be a maximum.
It seems all the references of albedo to rgb value conversions have not been taking the gamma curve into account?

I'd really love to hear peoples thoughts on this because it is something that has never sat well with me.









2020-06-18, 19:29:38
Reply #1

bograt

  • Active Users
  • **
  • Posts: 33
    • View Profile
I had done some more tests.
Assuming again that the actual 'reflectance' values are measured in linear colour space, I have based the exposure value for the color checker on an aparrently known reflectance value of the large grey swatch (according to this article: https://www.chromaxion.com/information/ColorChecker_Passport_Technical_Report.pdf ) which has 60% reflectance. I have attached the results.

At this level of exposure the calibration result yeilds more believable reflectance values (although I still find it hard to believe that some of swatches ar actually 100% saturated)
But for this to behave accurately it would still require:

A: The color checker to calibrate the images such that any camera response curves were flattened (aside from the 2.2 gamma curve of the image format)
B: That corona also removed the SAME gamma curve of the image format before rendering in linear space.
C: And that The SAME gamma curve was re-applied in the VFB if exporting in 8 or 16 bit...

I'm still yet to find anything conclusive about color and exposure calibration of image textures for use in physically accurate render engines.
I'd really love to hear some thoughts on this.
Cheers!







2020-06-24, 11:18:06
Reply #2

bograt

  • Active Users
  • **
  • Posts: 33
    • View Profile
Not one reply! I even posted links to this thread in various facebook user groups...

Aside from the color checker, I would just like to know how corona is calculating the rgb > reflectance values.
In the images attached you can see the behaviour of the corona color picker.
You can see that rgb 243 is around rgb 224 in linear color space (88% reflective?), so why is that still considered too bright?
Is corona actually using the linear value internally or the sRGB value?

I ran the same test in Octane and unlike Corona, the Linear values were used so there were no problems using the color checker to calibrate the images.
I'd really love to get to the bottom of this...
Thanks!

2020-07-04, 00:18:58
Reply #3

Juraj

  • Active Users
  • **
  • Posts: 4743
    • View Profile
    • studio website
- Anytime percentages are used, it's in linear space, not on curve.
- The commonly quoted 50-230/240 (never seen particularly exact number like "225" being mentioned) are just rough estimates for "most" materials. Of course there are plenty of material both brighter and darker, i.e. 'Vantam' Black. Look at the cool stuff I bought :- ) These paints are way outside...
- It's good to note, that when reflectance values are listed outside of CGI, it's the actual reflectance, i.e true albedo. Not just diffuse albedo (since in CGI most material models split reflection into diffuse & specular reflection).
- X-Rite chart is very matte.. but still has specular sheen even when looked above in diffused light conditions. So to evaluate true colors, esp. saturation, would require cross-polarization.

- Corona uses linear color space (of wide color gamut) internally, almost all renderers do that aren't spectral.
Please follow my new Instagram for latest projects, tips&tricks, short video tutorials and free models
Behance  Probably best updated portfolio of my work
lysfaere.com Please check the new stuff!