Revise and expand thin-film iridescence documentation
This PR revises and expands the thin-film iridescence section of the OpenPBR documentation. It includes:
- A new paragraph describing the locally spectral approach to modeling thin-film interference, as described on Slack (especially here, here, and the series of messages starting here).
- Additional description of the originally recommended Belcour–Barla approach so that the locally spectral approach can easily be compared and contrasted with it.
- Clarifications to the explanation of iridescence itself and the effects of the parameters.
- Updated organization of the section to better distinguish between modeling approaches and shared considerations.
- Improvements to wording for readability, conciseness, and accuracy.
This PR addresses OpenPBR issue https://github.com/AcademySoftwareFoundation/OpenPBR/issues/246
Below are images comparing the current and proposed versions of this section.
CURRENT VERSION
PROPOSED VERSION
As you can there are modifications across the entire section, as mentioned in the overview at the top of this PR. The most substantive new addition to the section is the new paragraph highlighted below.
CLOSE-UP OF BRAND NEW PARAGRAPH IN PROPOSED VERSION
The committers listed above are authorized under a signed CLA.
- :white_check_mark: login: peterkutz / name: Peter Kutz (9718da3b0bb21157a1223fee0ed492beddeb8f93, a5b386439427a9b8a6bac337b1c3444e3e9e802b, 279144a652493c7b137b273ef07a20c4caa8b104, dc37f350a612fea2449ea840919a7a930a60dca5, 4efb77a88d7064a3be055fb86b5537dc2a1f0ee9, 332ef94475da733c2b1bbd491309a0534748ace7, 3e46eb31122d9663a3744b72bbcf3ed8332e32d5, c3cc69ef33631150c819fb3ffde44355500e42d7, ff916cd0e8308cf6d6f91879be273b846c40244c, d046bf9fec8ef6a88dd9b3f91fc5480bb98a4234, 4c367d4acc721d49b074ac88dfc9519bc94cfb64, e9480b150433d776da5de290040353fb54b568bd, fb61df127f985d3f30667484807ead72aacb1418, 00d276183195a83a786c2fffa569c48e58b39220, 01ecadcf14561d0b9cab6cf6824bec7e0dd69590, f27e13d1df5b1f91cd80e4af013c9da165fb9660)
All sounds good. I assume we'll be expanding on this "locally spectral approach" a bit more in the tech report.
Another related thing I looked into recently was the energy conservation of the thin-film. We had a report from the Redshift team that "metalness with thin-film looks 'neon' in Arnold". I assumed that this might be a bug, since the thin-film should never generate energy. But had a debate internally about whether actually due to wave interference perhaps effectively the albedo can exceed 1 (maybe via some sharing of energy between frequency bands) leading to a glow effect, so maybe we were seeing the correct result.
This seemed impossible to me physically, since each wavelength is independent, and the interference cannot produce more energy out at that wavelength than was input.
I wrote a script which explicitly computes the albedo of the film as a function of input direction and wavelength, and indeed it is always <= 1. In the special case of a perfectly reflecting metallic base (with Fresnel 1), the energy is perfectly conserved and the effect of the film is only a phase shift. (This corresponds to what happens in a Gires–Tournois etalon as pointed out by a colleague). Thus indeed a metal with white F0 and tint, plus an arbitrary thin-film, should pass a furnace test (as we say in the spec).
(The "neon" look in Arnold was, it turns out, due to a small bug in our implementation of the Barla paper).
It might be interesting to show some plots of this in the tech report.
Thanks for reviewing @portsmouth .
Yes, I think we can expand more on this "locally spectral approach" in the tech report, but it seems out of scope here. I think we can also provide the key physics formulas in the tech report.
Yes, that is an important point. Interference should only change the ratio of light reflected and transmitted. The thin film itself should neither add nor remove energy. Any apparent energy gain/loss or color shift comes from this energy redistribution and different amounts of absorption by the base surface. I think that's actually important and nonobvious enough to warrant a note in the spec, so I added a note in a new commit:
Because the thin film is non-absorbing and interference-based, it only redistributes the probabilities of reflection and transmission; therefore, it should not violate energy conservation.