The third point release of ART brings fixes and repairs, plus spectral uplifting capability and image maps as new features: see the changelog for an overview.
So far, ART only had a very limited ad hoc RGB → Spectrum conversion implemented: RGB values were converted to spectra by summing up three measured monitor primaries. Which yields moderately bad results for RGB emission values, as in: you do get something which sort of resembles the input texture. But the white balance is way off, and the image looks washed out and not very realistic. And for reflectances this technique is of course totally unusable.
For reflectances, we now use a new technique recently introduced by Wenzel Jakob and Jo Hanika. We use the technique in slightly modified form, in that we use a fit to a particular RGB lattice, instead of a general fit done in CIE x, y space. In ART 2.0.3, there is only one of these coefficient cubes for sRGB: all input data is assumed to be in this space. An ability to use the actual colour space of non-sRGB input images might be provided in a future release.
Note that the fitting tool used to generate such coefficient cubes is not part of ART, and will not be released as Open Source software. But the particular sRGB coefficient cube supplied with ART can be used under the terms of the GPL v3, like the rest of the system.
Using image maps has been in the ART codebase since release: but as no proper spectral uplifting technique was available, it was not advertised or showcased. In the
ImageMap of the gallery, there is now a scene which shows how
EXR can be mapped to surfaces:
In spite of their appearance, both texture maps are purely reflective, and not emissive.
In ART 2.0.3, the sigmoid spectral uplift uses full spectral interpolation, instead of the coefficient interpolation proposed in the original paper. This yields higher round-trip accuracy, at the cost of longer render times. Future releases will try to optimise this aspect.
There are also two more scene files in that folder, intended to demonstrate round-trip accuracy. The first renders a close-up view of Macbeth Color Checker (
MacbethChartGenuine.arm). The second one (
MacbethChartTexture.arm) uses the rendered image from the first scene, and maps it onto a polygon in such a way that the resulting images are (almost) identically aligned. If spectral uplifting has an accurate round-trip, the colours in the two Macbeth chart images should be identical:
Left: real Macbeth chart, illuminated by D65, middle: the left image used as texture, illuminated by D65, right: CIE Delta E 2000 difference, with a heatmap max delta E value of 3. Note that CIE Delta E is in the blue heatmap range from zero to one (i.e. not really perceptible) for all colour patches: large differences only occur due to small mis-alignments between texture and real chart. The exact sequence of steps needed to generate these two images is described in the
README file in the gallery folder.
There is a big intrinsic caveat to all of this, though: as with any other spectral uplifting technique, the sigmoid technique used in ART uses a fitting done for a specific illuminant. In other words, if they are lit by that specific illuminant (and only then), the spectra it synthesises for a given colour value will round-trip exactly. But under other illuminants, one will see metamerism effects of variable intensity.
As the white point of sRGB is D65, the coefficient data supplied with ART has been fitted to round-trip under that illuminant. As can be seen in the next example, illuminating D65-referred sRGB textures with other light sources (in this example: the very spiky illuminant FL3, with a CRI of only 57) still yields perfectly plausible results: but they of course cannot exactly match what the real object would have looked like under that other type of light source.
Left: real Macbeth chart, illuminated by FL3, middle: the left image from the figure above (i.e. the D65 sRGB image of the rendered chart!) used as texture, illuminated by FL3, right: CIE Delta E 2000 difference of the two renderings in this figure, with a heatmap max delta E value of 3. Note that the middle image still looks perfectly plausible: even for such a spiky illuminant, the appearance of the Macbeth chart behaves fairly consistent with the appearance of the real chart, even though we are only using an sRGB input texture white-balanced to D65.
When experimenting with the new image map feature, please bear in mind that the current version only offers initial support for this functionality. Proper facilities for definition and manipulation of texture coordinate systems on geometric primitives are still missing, and will be supplied in future releases.