On Wed, 3 Feb 2010, baptiste auguie wrote:
Thanks for this complementary information. My head itches slightly when reading about these virtual layers with unidirectional absorption and reflection properties but I guess that's imputable to my personal background as a physicist.
It's not unidirectional, it's just infinitesimal thickness -- if the light didn't hit a pigment particle in the top layer on the way in, it won't on the way out either. Not realistic, but very physicist ;)
I still have a few questions, - is this behavior documented? (I'm happy to look at the source, but I'm not even sure if it's in grDevices, device specific, or somewhere else altogether)
Several of the devices delegate the computations to the operating system or viewer, so that's the easiest way to find the algorithm. It's the Porter-Duff compositing algorithm, the "over" operator.
- have there been any attempts at implementing other options for colour blending? It would be nice to be able to switch between additive and substrative colour mixing rules on occasion, but as far as I understand the scheme we discussed is hard coded deep into R's internals (correct?). An option not to use the background at all in the "mixing" / "reflection" process would be great already.
There are some limitations from the ink-on-paper graphics model in R, since the resulting color from n layers must be a function only of the resulting color from n-1 layers and the top color (and not, for example, a function of n). Also, for PDF and SVG we are basically limited to models that PDF implements automatically, since it isn't feasible to work out which objects overlap and adjust their colors that way. -thomas Thomas Lumley Assoc. Professor, Biostatistics tlum...@u.washington.edu University of Washington, Seattle ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.