zutnoq t1_iyib7wm wrote
Unlike what some others are saying I don't think such a thing is actually possible, in a strict sense. The reflection transfer function/spectrum of a surface can not be encoded/modeled with just three numbers if you want the resulting rgb output to be correct for any arbitrary light source spectrum. If you always have the same light source spectrum then you can certainly do it.
Edit: The translation from spectrum to rgb values is fairly simple but there is no way to get back the exact original spectrum of the reflected light from just the rgb values alone.
DJTilapia OP t1_iyiduep wrote
For sure, I wouldn't expect a reversible algorithm, just an objective one. Given object X under conditions Y, the spectrum should always be Z; feed that into a function to calculate a RGB (or LaB, or whatnot) coordinate to best represent this spectrum. You’d be constrained by the gamut of the monitor, and many different spectrums would map to any given color output, especially if using 24 bits.
zutnoq t1_iyifmom wrote
Oh, then yes this translation is essentially done by integrating the pointwise product of the power spectrum of the reflected light times the power response spectrum of each cone cell type separately (you also have to assume a standard for these, as they vary a bit from person to person).
arcosapphire t1_iyii5ds wrote
You might also want to look into PBR (physically-based rendering).
This acknowledges that rather than simply a "color", it's better to consider a "material" which has additional properties. For instance, how shiny it is, which determines the matte-vs-specular balance. Matte is essentially a direction-independent color, while specular is a directional reflection and thus dependent on the angle of the surface from the viewer, and the angle of the light sources from that surface. Other relevant properties are emission (light generated by the object, not reflected--how else will you understand the color of a lit light bulb?), how transparent the object is, the index of refraction, and so on.
One thing to note is that PBR is used to consistently assign these properties in computer graphics, so under similar lighting conditions you should get a similar appearance. But it is very rare for PBR to take spectral effects into account, and normally it just does calculations assuming we just want a red, green, and blue channel in the end. So this is all orthogonal to what other people are saying about integrating spectral values and such. They are two different aspects about how to talk about color.
In principle we really want all of it combined: we want to talk about how the material reacts to light at each wavelength, and what the intensity of the output would be for every wavelength. This is enormously computationally intensive and tends not to be done. But if you really wanted a reliable description of what "color" an object is, this is how you'd have to do it. And rather than a color, you'd really be describing a material, with very many properties and all of those properties having not a single number as a value, but instead a complex function depending on wavelength.
Or you can skip all that and go straight to calculating quantum mechanics. That will be the most accurate, but of course it's the "real" process without any simplification. It's...incredibly hard.
purrcthrowa t1_iyijvdj wrote
I'm sure you're right. If every human had exactly same distribution of rods and cones, of identical sensitivity, and with exactly the same frequency response curve, for humans only, then yes. But only for humans.
Imagine you have a surface which appears to be exactly the same colour to any number of these perfect human observers.
It could either consist of a magic pigment which absorbed all light frequencies apart from one specific frequency for that colour. In that case, it would excite the red, green, and blue cones at a specific level, depending on how the specific residual reflected frequency interacts with with frequency response curves of the RGB cones.
Or it could consist of a large number of red, green and blue dots of various reflectivities (or sizes: I don't think it matters), each of which absorbed all light frequencies apart from the specific frequencies of red, green or blue which trigger the R G or B cones, most likely at the centre and most sensitive part of the their frequency response graph.
These two surfaces are illuminated by white light (e.g. light from the sun or a tungsten lamp which emits a full range of frequencies within the visible spectrum).
Subjectively, the two surfaces look identical, but the frequencies being reflected from either of them are clearly extremely different. If the eye worked like the ear, the first surface would sound like a single pure note (as from a celestial ultra-high-frequency flute) while the other would sound like a chord, and probably a not-very-harmonious one at that. But the eye is basically an ear with only 3 cilia in it (and a more sensitive general "loudness" detector to represent the rods, but since there aren't really any in the fovea which is the part of the retina where your colour vision is most acute, we can ignore this).
To anyone (or any species) who doesn't have the exact standard setup of RGB cones I described above, the two surfaces will almost certainly look very different.
So, any objective assessment, if it can work, can *only* work for a specific physiology. And then there are all the other points raised in the thread about surface reflectivity, specular effects and so on, which make it even more difficult to do so.
Viewing a single comment thread. View all comments