Skip to content

Conversation

@peterkutz
Copy link
Contributor

@peterkutz peterkutz commented Jun 26, 2025

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 #246

Below are images comparing the current and proposed versions of this section.

CURRENT VERSION

thin-film_section_CURRENT

PROPOSED VERSION

thin-film_section_PROPOSED

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

brand_new_paragraph

@linux-foundation-easycla
Copy link

linux-foundation-easycla bot commented Jun 26, 2025

CLA Signed

The committers listed above are authorized under a signed CLA.

@portsmouth
Copy link
Contributor

portsmouth commented Jul 5, 2025

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.

…on and transmission and not violating energy conservation
@peterkutz
Copy link
Contributor Author

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.

@AdrienHerubel AdrienHerubel self-requested a review September 30, 2025 15:34
Copy link
Contributor

@AdrienHerubel AdrienHerubel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR was discussed in the September 16 meeting, there was a consensus that we should not recommend techniques that do not have a readily available implementation in the spec. We also said that the Belcour technique is the de-factor standard and we should keep the wording stating so.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants