Skip to content

Revise and expand thin-film iridescence documentation#262

Open
peterkutz wants to merge 19 commits intoAcademySoftwareFoundation:dev_1.2from
peterkutz:peterkutz-thin-film-improvements
Open

Revise and expand thin-film iridescence documentation#262
peterkutz wants to merge 19 commits intoAcademySoftwareFoundation:dev_1.2from
peterkutz:peterkutz-thin-film-improvements

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.

  • ✅ login: peterkutz / name: Peter Kutz (c52c55c)

@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.

@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.

@peterkutz peterkutz force-pushed the peterkutz-thin-film-improvements branch from d046bf9 to cd9a1b1 Compare January 17, 2026 03:14
@peterkutz peterkutz changed the base branch from dev_1.1.1 to dev_1.2 January 17, 2026 03:15
…rst-principles alternative for spectral renderers
@peterkutz peterkutz force-pushed the peterkutz-thin-film-improvements branch from cd9a1b1 to c88fa06 Compare January 17, 2026 03:36
@peterkutz
Copy link
Contributor Author

peterkutz commented Jan 17, 2026

Thanks @AdrienHerubel. Agreed, and I’ve updated the PR accordingly.

The new wording keeps Belcour & Barla as the official recommendation / de-facto standard (especially for RGB rendering contexts), and no longer frames any alternative as something the spec "recommends".

What I did keep is a brief allowance that spectral renderers may implement thin-film directly from the underlying Fresnel + Airy interference equations (i.e., a first-principles evaluation per wavelength with integration in the renderer’s spectral pipeline). This isn’t presented as a new technique or a separate "model"; it’s just the direct physics that B&B starts from as well. The updated text does not describe implementation details, so it shouldn’t steer anyone toward an unverified formulation. It also explicitly states that such implementations should be validated against the B&B reference in the regimes where B&B applies. Allowing a first-principles spectral implementation (without endorsing it) is also consistent with the spec's description of dispersion, and with the spec's overall philosophy of describing a physical configuration that can be implemented in the most accurate way possible.

Here's the final state of the thin-film section:
NewThinFilmSection

And here's a closeup of the part that positions B&B as the official approach but allows a first-principles spectral approach when applicable:
NewThinFilmSectionCloseup

@portsmouth
Copy link
Contributor

I think the proposed minimal wording is fine. Ideally, @peterkutz I think we should write-up in more detail how the locally spectral approach works, as a separate project which we can then reference (which is interesting in its own right, as a potentially superior method to the B&B paper). But this is fine for the interim.

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