From 4bf37c68dbcec40deb0a8d52b352016bd8600283 Mon Sep 17 00:00:00 2001 From: Peter Kutz Date: Wed, 25 Jun 2025 14:45:34 -0700 Subject: [PATCH 01/15] Remove unnecessary leading spaces --- index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index a288ffb..3db2328 100644 --- a/index.html +++ b/index.html @@ -896,11 +896,11 @@ - **`thin_film_thickness`**: the thickness of the film in micrometers ($\mathrm{\mu m}$), mostly affecting the spacing of the fringes, - **`thin_film_ior`**: the index of refraction (IOR) of the film, mostly affecting the hue of the fringes - The coverage weight functions as a blend between the BSDF with and without the presence of the film, and thus allows one to dial the effect without altering the shape and saturation of the color fringes. +The coverage weight functions as a blend between the BSDF with and without the presence of the film, and thus allows one to dial the effect without altering the shape and saturation of the color fringes. - The currently recommended thin-film model is that of Belcour and Barla [#Belcour2017], in which the thin-film thickness is smaller than the scale of the microfacets and assumed to be smooth. With this assumption, in practice the effect is most easily incorporated directly into the Fresnel factor of the microfacet BSDFs of both the metal and dielectric-base layers (thus it is *not* represented by incorporating an explicit thin-film Slab into the model). +The currently recommended thin-film model is that of Belcour and Barla [#Belcour2017], in which the thin-film thickness is smaller than the scale of the microfacets and assumed to be smooth. With this assumption, in practice the effect is most easily incorporated directly into the Fresnel factor of the microfacet BSDFs of both the metal and dielectric-base layers (thus it is *not* represented by incorporating an explicit thin-film Slab into the model). - The shape and color of the fringe patterns in the reflection from the film will be affected (as described by Belcour and Barla) by the complex IOR of the adjacent media above and below the film, which in general are a statistical mix of metal and dielectric below and coat and ambient medium above (which the fuzz is index-matched to). Figure [ior_configs] illustrates the eight possible different structures depending on the presence of both the film and coat, each of which leads to different Fresnel effects due to the differing IORs at the interfaces. +The shape and color of the fringe patterns in the reflection from the film will be affected (as described by Belcour and Barla) by the complex IOR of the adjacent media above and below the film, which in general are a statistical mix of metal and dielectric below and coat and ambient medium above (which the fuzz is index-matched to). Figure [ior_configs] illustrates the eight possible different structures depending on the presence of both the film and coat, each of which leads to different Fresnel effects due to the differing IORs at the interfaces. ![Figure [ior_configs]: Schematic of all 8 possible IOR configurations, including those involving the thin-film.](images/IOR_configs.svg width="95%" align="center") From f5bb77135ea26a695d32673aa8178fcdf18d56d6 Mon Sep 17 00:00:00 2001 From: Peter Kutz Date: Wed, 25 Jun 2025 14:45:42 -0700 Subject: [PATCH 02/15] Add missing period --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 3db2328..dca2f84 100644 --- a/index.html +++ b/index.html @@ -894,7 +894,7 @@ - **`thin_film_weight`**: the coverage (presence) weight of the film, - **`thin_film_thickness`**: the thickness of the film in micrometers ($\mathrm{\mu m}$), mostly affecting the spacing of the fringes, - - **`thin_film_ior`**: the index of refraction (IOR) of the film, mostly affecting the hue of the fringes + - **`thin_film_ior`**: the index of refraction (IOR) of the film, mostly affecting the hue of the fringes. The coverage weight functions as a blend between the BSDF with and without the presence of the film, and thus allows one to dial the effect without altering the shape and saturation of the color fringes. From a7fcb80ea4aba11960f5d1e9919317e74cb3d72e Mon Sep 17 00:00:00 2001 From: Peter Kutz Date: Wed, 25 Jun 2025 18:35:50 -0700 Subject: [PATCH 03/15] Provide high-level summary of Belcour-Barla approach and mention tradeoffs --- index.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index dca2f84..6bb2ce4 100644 --- a/index.html +++ b/index.html @@ -898,7 +898,9 @@ The coverage weight functions as a blend between the BSDF with and without the presence of the film, and thus allows one to dial the effect without altering the shape and saturation of the color fringes. -The currently recommended thin-film model is that of Belcour and Barla [#Belcour2017], in which the thin-film thickness is smaller than the scale of the microfacets and assumed to be smooth. With this assumption, in practice the effect is most easily incorporated directly into the Fresnel factor of the microfacet BSDFs of both the metal and dielectric-base layers (thus it is *not* represented by incorporating an explicit thin-film Slab into the model). +The thin-film thickness is assumed to be smaller than the scale of the microfacets and assumed to be smooth. With this assumption, in practice the effect is most easily incorporated directly into the Fresnel factor of the microfacet BSDFs of both the metal and dielectric-base layers (thus it is *not* represented by incorporating an explicit thin-film Slab into the model). + +The currently recommended thin-film model is that of Belcour and Barla [#Belcour2017], which pre-integrates interference effects using Fourier-domain convolutions and Gaussian filtering. This method efficiently produces high-quality fringe patterns in an RGB rendering context, but it can be challenging to implement and may introduce inaccuracies in some cases, as it assumes that Fresnel amplitude and phase coefficients remain constant across each spectral band. The shape and color of the fringe patterns in the reflection from the film will be affected (as described by Belcour and Barla) by the complex IOR of the adjacent media above and below the film, which in general are a statistical mix of metal and dielectric below and coat and ambient medium above (which the fuzz is index-matched to). Figure [ior_configs] illustrates the eight possible different structures depending on the presence of both the film and coat, each of which leads to different Fresnel effects due to the differing IORs at the interfaces. From e5b5b7655369f8845d83c8d5dffba5de0433600b Mon Sep 17 00:00:00 2001 From: Peter Kutz Date: Wed, 25 Jun 2025 18:38:07 -0700 Subject: [PATCH 04/15] Add a paragraph about an alternative "locally spectral" approach --- index.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/index.html b/index.html index 6bb2ce4..fcf84ee 100644 --- a/index.html +++ b/index.html @@ -902,6 +902,8 @@ The currently recommended thin-film model is that of Belcour and Barla [#Belcour2017], which pre-integrates interference effects using Fourier-domain convolutions and Gaussian filtering. This method efficiently produces high-quality fringe patterns in an RGB rendering context, but it can be challenging to implement and may introduce inaccuracies in some cases, as it assumes that Fresnel amplitude and phase coefficients remain constant across each spectral band. +A more direct alternative is a "locally spectral" approach that computes reflectance per light path by evaluating the full Fresnel and Airy interference stack -- including complex amplitudes, polarizations, and phase shifts -- at specific wavelengths sampled per path. This can begin with fixed red, green, and blue wavelengths, but better results are achieved by stochastically sampling wavelengths from approximate camera sensitivity curves. This enables convergence to neutral gray for very thick films and avoids the high-frequency color banding that fixed RGB wavelengths can produce. The same wavelengths can also be reused to model dispersion (as described in the Translucent base section), while all other BSDF components are free to ignore them and operate in RGB as usual. This approach uses only the Airy summation from Belcour and Barla (Equation 3 from [#Belcour2017]) but requires additional per-wavelength computations and assembling the necessary formulas from multiple sources rather than a single reference. + The shape and color of the fringe patterns in the reflection from the film will be affected (as described by Belcour and Barla) by the complex IOR of the adjacent media above and below the film, which in general are a statistical mix of metal and dielectric below and coat and ambient medium above (which the fuzz is index-matched to). Figure [ior_configs] illustrates the eight possible different structures depending on the presence of both the film and coat, each of which leads to different Fresnel effects due to the differing IORs at the interfaces. ![Figure [ior_configs]: Schematic of all 8 possible IOR configurations, including those involving the thin-film.](images/IOR_configs.svg width="95%" align="center") From b9c078f14f72d9572d9fac0879c868f6add5c158 Mon Sep 17 00:00:00 2001 From: Peter Kutz Date: Wed, 25 Jun 2025 18:47:28 -0700 Subject: [PATCH 05/15] Consolidate discussion of the surrounding media --- index.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/index.html b/index.html index fcf84ee..e2574d8 100644 --- a/index.html +++ b/index.html @@ -898,17 +898,17 @@ The coverage weight functions as a blend between the BSDF with and without the presence of the film, and thus allows one to dial the effect without altering the shape and saturation of the color fringes. -The thin-film thickness is assumed to be smaller than the scale of the microfacets and assumed to be smooth. With this assumption, in practice the effect is most easily incorporated directly into the Fresnel factor of the microfacet BSDFs of both the metal and dielectric-base layers (thus it is *not* represented by incorporating an explicit thin-film Slab into the model). - The currently recommended thin-film model is that of Belcour and Barla [#Belcour2017], which pre-integrates interference effects using Fourier-domain convolutions and Gaussian filtering. This method efficiently produces high-quality fringe patterns in an RGB rendering context, but it can be challenging to implement and may introduce inaccuracies in some cases, as it assumes that Fresnel amplitude and phase coefficients remain constant across each spectral band. A more direct alternative is a "locally spectral" approach that computes reflectance per light path by evaluating the full Fresnel and Airy interference stack -- including complex amplitudes, polarizations, and phase shifts -- at specific wavelengths sampled per path. This can begin with fixed red, green, and blue wavelengths, but better results are achieved by stochastically sampling wavelengths from approximate camera sensitivity curves. This enables convergence to neutral gray for very thick films and avoids the high-frequency color banding that fixed RGB wavelengths can produce. The same wavelengths can also be reused to model dispersion (as described in the Translucent base section), while all other BSDF components are free to ignore them and operate in RGB as usual. This approach uses only the Airy summation from Belcour and Barla (Equation 3 from [#Belcour2017]) but requires additional per-wavelength computations and assembling the necessary formulas from multiple sources rather than a single reference. -The shape and color of the fringe patterns in the reflection from the film will be affected (as described by Belcour and Barla) by the complex IOR of the adjacent media above and below the film, which in general are a statistical mix of metal and dielectric below and coat and ambient medium above (which the fuzz is index-matched to). Figure [ior_configs] illustrates the eight possible different structures depending on the presence of both the film and coat, each of which leads to different Fresnel effects due to the differing IORs at the interfaces. +The shape and color of the fringe patterns in the reflection from the film will be affected (as described by Belcour and Barla) by the complex IOR of the adjacent media above and below the film, which in general are a statistical mix of metal and dielectric below and coat and ambient medium above (which the fuzz is index-matched to). Figure [ior_configs] illustrates the eight possible different structures depending on the presence of both the film and coat, each of which leads to different Fresnel effects due to the differing IORs at the interfaces. In principle the implementation should deal with all these physical configurations correctly, though modeling of the precise effect is implementation-dependent. ![Figure [ior_configs]: Schematic of all 8 possible IOR configurations, including those involving the thin-film.](images/IOR_configs.svg width="95%" align="center") -In principle the implementation should deal with all these physical configurations correctly, though modeling of the precise effect is implementation-dependent. +The thin-film thickness is assumed to be smaller than the scale of the microfacets and assumed to be smooth. With this assumption, in practice the effect is most easily incorporated directly into the Fresnel factor of the microfacet BSDFs of both the metal and dielectric-base layers (thus it is *not* represented by incorporating an explicit thin-film Slab into the model). + +In practice, this wave-optics effect is most easily incorporated directly into the Fresnel factor of the microfacet BSDFs of both the metal and dielectric-base layers. (For this reason, this effect is not represented by incorporating an explicit thin-film Slab into the model.) Note that in the case of the dielectric base, the thin-film should also generate color fringes in the transmission lobe. This is important for example when rendering soap bubbles (see [#Belcour2017]). From 030fdd0b8741a33e8a3027aa6c430a6c9e776674 Mon Sep 17 00:00:00 2001 From: Peter Kutz Date: Wed, 25 Jun 2025 18:49:16 -0700 Subject: [PATCH 06/15] Move diagram to avoid interrupting list of properties --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index e2574d8..c7b2c11 100644 --- a/index.html +++ b/index.html @@ -904,8 +904,6 @@ The shape and color of the fringe patterns in the reflection from the film will be affected (as described by Belcour and Barla) by the complex IOR of the adjacent media above and below the film, which in general are a statistical mix of metal and dielectric below and coat and ambient medium above (which the fuzz is index-matched to). Figure [ior_configs] illustrates the eight possible different structures depending on the presence of both the film and coat, each of which leads to different Fresnel effects due to the differing IORs at the interfaces. In principle the implementation should deal with all these physical configurations correctly, though modeling of the precise effect is implementation-dependent. -![Figure [ior_configs]: Schematic of all 8 possible IOR configurations, including those involving the thin-film.](images/IOR_configs.svg width="95%" align="center") - The thin-film thickness is assumed to be smaller than the scale of the microfacets and assumed to be smooth. With this assumption, in practice the effect is most easily incorporated directly into the Fresnel factor of the microfacet BSDFs of both the metal and dielectric-base layers (thus it is *not* represented by incorporating an explicit thin-film Slab into the model). In practice, this wave-optics effect is most easily incorporated directly into the Fresnel factor of the microfacet BSDFs of both the metal and dielectric-base layers. (For this reason, this effect is not represented by incorporating an explicit thin-film Slab into the model.) @@ -914,6 +912,8 @@ In the case of the metallic base the physics is somewhat ambiguous since, as described in the Metal section, the Fresnel factor for metal is defined according to the Schlick-based "F82-tint" parametrization which does not specify the underlying physical complex IOR. We suggest here that some reasonable approximation is employed to map the Fresnel factor to the best matching effective complex IOR, for example that described by [#Gulbrandsen2014]. +![Figure [ior_configs]: Schematic of all 8 possible IOR configurations, including those involving the thin-film.](images/IOR_configs.svg width="95%" align="center") +
Thin-film params | Label | Type | Range | Norm | Default | Description From ab2b85e11d82ef5bd1a032b2ca0e03319f4b8d65 Mon Sep 17 00:00:00 2001 From: Peter Kutz Date: Wed, 25 Jun 2025 18:50:48 -0700 Subject: [PATCH 07/15] Turn list of properties into a bulleted list --- index.html | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/index.html b/index.html index c7b2c11..290d4cc 100644 --- a/index.html +++ b/index.html @@ -902,15 +902,15 @@ A more direct alternative is a "locally spectral" approach that computes reflectance per light path by evaluating the full Fresnel and Airy interference stack -- including complex amplitudes, polarizations, and phase shifts -- at specific wavelengths sampled per path. This can begin with fixed red, green, and blue wavelengths, but better results are achieved by stochastically sampling wavelengths from approximate camera sensitivity curves. This enables convergence to neutral gray for very thick films and avoids the high-frequency color banding that fixed RGB wavelengths can produce. The same wavelengths can also be reused to model dispersion (as described in the Translucent base section), while all other BSDF components are free to ignore them and operate in RGB as usual. This approach uses only the Airy summation from Belcour and Barla (Equation 3 from [#Belcour2017]) but requires additional per-wavelength computations and assembling the necessary formulas from multiple sources rather than a single reference. -The shape and color of the fringe patterns in the reflection from the film will be affected (as described by Belcour and Barla) by the complex IOR of the adjacent media above and below the film, which in general are a statistical mix of metal and dielectric below and coat and ambient medium above (which the fuzz is index-matched to). Figure [ior_configs] illustrates the eight possible different structures depending on the presence of both the film and coat, each of which leads to different Fresnel effects due to the differing IORs at the interfaces. In principle the implementation should deal with all these physical configurations correctly, though modeling of the precise effect is implementation-dependent. +Regardless of which approach is chosen, a few properties and considerations apply to both: -The thin-film thickness is assumed to be smaller than the scale of the microfacets and assumed to be smooth. With this assumption, in practice the effect is most easily incorporated directly into the Fresnel factor of the microfacet BSDFs of both the metal and dielectric-base layers (thus it is *not* represented by incorporating an explicit thin-film Slab into the model). + - The shape and color of the fringe patterns in the reflection from the film will be affected (as described by Belcour and Barla) by the complex IOR of the adjacent media above and below the film, which in general are a statistical mix of metal and dielectric below and coat and ambient medium above (which the fuzz is index-matched to). Figure [ior_configs] illustrates the eight possible different structures depending on the presence of both the film and coat, each of which leads to different Fresnel effects due to the differing IORs at the interfaces. In principle the implementation should deal with all these physical configurations correctly, though modeling of the precise effect is implementation-dependent. -In practice, this wave-optics effect is most easily incorporated directly into the Fresnel factor of the microfacet BSDFs of both the metal and dielectric-base layers. (For this reason, this effect is not represented by incorporating an explicit thin-film Slab into the model.) + - The thin-film thickness is assumed to be smaller than the scale of the microfacets and assumed to be smooth. With this assumption, in practice the effect is most easily incorporated directly into the Fresnel factor of the microfacet BSDFs of both the metal and dielectric-base layers (thus it is *not* represented by incorporating an explicit thin-film Slab into the model). -Note that in the case of the dielectric base, the thin-film should also generate color fringes in the transmission lobe. This is important for example when rendering soap bubbles (see [#Belcour2017]). + - Note that in the case of the dielectric base, the thin-film should also generate color fringes in the transmission lobe. This is important for example when rendering soap bubbles (see [#Belcour2017]). -In the case of the metallic base the physics is somewhat ambiguous since, as described in the Metal section, the Fresnel factor for metal is defined according to the Schlick-based "F82-tint" parametrization which does not specify the underlying physical complex IOR. We suggest here that some reasonable approximation is employed to map the Fresnel factor to the best matching effective complex IOR, for example that described by [#Gulbrandsen2014]. + - In the case of the metallic base the physics is somewhat ambiguous since, as described in the Metal section, the Fresnel factor for metal is defined according to the Schlick-based "F82-tint" parametrization which does not specify the underlying physical complex IOR. We suggest here that some reasonable approximation is employed to map the Fresnel factor to the best matching effective complex IOR, for example that described by [#Gulbrandsen2014]. ![Figure [ior_configs]: Schematic of all 8 possible IOR configurations, including those involving the thin-film.](images/IOR_configs.svg width="95%" align="center") From 6edd73a0a0e261c42e236d84c21f08c62245f786 Mon Sep 17 00:00:00 2001 From: Peter Kutz Date: Wed, 25 Jun 2025 18:51:38 -0700 Subject: [PATCH 08/15] Remove unnecessary mention of Belcour-Barla paper in discussion of high-level physical properties --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 290d4cc..daba5e1 100644 --- a/index.html +++ b/index.html @@ -904,7 +904,7 @@ Regardless of which approach is chosen, a few properties and considerations apply to both: - - The shape and color of the fringe patterns in the reflection from the film will be affected (as described by Belcour and Barla) by the complex IOR of the adjacent media above and below the film, which in general are a statistical mix of metal and dielectric below and coat and ambient medium above (which the fuzz is index-matched to). Figure [ior_configs] illustrates the eight possible different structures depending on the presence of both the film and coat, each of which leads to different Fresnel effects due to the differing IORs at the interfaces. In principle the implementation should deal with all these physical configurations correctly, though modeling of the precise effect is implementation-dependent. + - The shape and color of the fringe patterns in the reflection from the film will be affected by the complex IOR of the adjacent media above and below the film, which in general are a statistical mix of metal and dielectric below and coat and ambient medium above (which the fuzz is index-matched to). Figure [ior_configs] illustrates the eight possible different structures depending on the presence of both the film and coat, each of which leads to different Fresnel effects due to the differing IORs at the interfaces. In principle the implementation should deal with all these physical configurations correctly, though modeling of the precise effect is implementation-dependent. - The thin-film thickness is assumed to be smaller than the scale of the microfacets and assumed to be smooth. With this assumption, in practice the effect is most easily incorporated directly into the Fresnel factor of the microfacet BSDFs of both the metal and dielectric-base layers (thus it is *not* represented by incorporating an explicit thin-film Slab into the model). From ed213b064894343541b240b429c551722573f9f3 Mon Sep 17 00:00:00 2001 From: Peter Kutz Date: Wed, 25 Jun 2025 19:01:40 -0700 Subject: [PATCH 09/15] Avoid reductive description of effects of thickness and IOR properties --- index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index daba5e1..122655a 100644 --- a/index.html +++ b/index.html @@ -893,10 +893,10 @@ _Iridescence_ is the occurrence of rainbow-like color fringes in the reflection when a thin dielectric film with thickness on the order of the wavelength of light is placed on top of a material, due to wave interference between the various electromagnetic reflection modes within the film. To model this, there is assumed to be such a thin-film sitting on top of the base substrate (whether metal or dielectric), parametrized only by: - **`thin_film_weight`**: the coverage (presence) weight of the film, - - **`thin_film_thickness`**: the thickness of the film in micrometers ($\mathrm{\mu m}$), mostly affecting the spacing of the fringes, - - **`thin_film_ior`**: the index of refraction (IOR) of the film, mostly affecting the hue of the fringes. + - **`thin_film_thickness`**: the thickness of the film in micrometers ($\mathrm{\mu m}$), + - **`thin_film_ior`**: the index of refraction (IOR) of the film. -The coverage weight functions as a blend between the BSDF with and without the presence of the film, and thus allows one to dial the effect without altering the shape and saturation of the color fringes. +The thickness and IOR together affect the intensity, spacing, and hue of the color fringes. The coverage weight acts as a blend between the BSDF with and without the presence of the film, allowing the overall strength of the effect to be dialed without altering its structure or color. The currently recommended thin-film model is that of Belcour and Barla [#Belcour2017], which pre-integrates interference effects using Fourier-domain convolutions and Gaussian filtering. This method efficiently produces high-quality fringe patterns in an RGB rendering context, but it can be challenging to implement and may introduce inaccuracies in some cases, as it assumes that Fresnel amplitude and phase coefficients remain constant across each spectral band. From e9e0e47dca80ab71ed9ea06cf42ed710891a9c00 Mon Sep 17 00:00:00 2001 From: Peter Kutz Date: Wed, 25 Jun 2025 19:03:12 -0700 Subject: [PATCH 10/15] Streamline intro and use active tone --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 122655a..e66a676 100644 --- a/index.html +++ b/index.html @@ -890,7 +890,7 @@ Thin-film iridescence ------------------------------------- -_Iridescence_ is the occurrence of rainbow-like color fringes in the reflection when a thin dielectric film with thickness on the order of the wavelength of light is placed on top of a material, due to wave interference between the various electromagnetic reflection modes within the film. To model this, there is assumed to be such a thin-film sitting on top of the base substrate (whether metal or dielectric), parametrized only by: +_Iridescence_ is the occurrence of rainbow-like color fringes in the reflection when a thin dielectric film with thickness on the order of the wavelength of light is placed on top of a material, due to wave interference between the various electromagnetic reflection modes within the film. To model this, we assume such a thin film sits atop the base substrate (whether metal or dielectric), parametrized only by: - **`thin_film_weight`**: the coverage (presence) weight of the film, - **`thin_film_thickness`**: the thickness of the film in micrometers ($\mathrm{\mu m}$), From c9f8d3dfdf726807581280c95fcc43d3814391a4 Mon Sep 17 00:00:00 2001 From: Peter Kutz Date: Wed, 25 Jun 2025 19:28:51 -0700 Subject: [PATCH 11/15] Remove unnecessary "Note that" --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index e66a676..bd0f84a 100644 --- a/index.html +++ b/index.html @@ -908,7 +908,7 @@ - The thin-film thickness is assumed to be smaller than the scale of the microfacets and assumed to be smooth. With this assumption, in practice the effect is most easily incorporated directly into the Fresnel factor of the microfacet BSDFs of both the metal and dielectric-base layers (thus it is *not* represented by incorporating an explicit thin-film Slab into the model). - - Note that in the case of the dielectric base, the thin-film should also generate color fringes in the transmission lobe. This is important for example when rendering soap bubbles (see [#Belcour2017]). + - In the case of the dielectric base, the thin-film should also generate color fringes in the transmission lobe. This is important for example when rendering soap bubbles (see [#Belcour2017]). - In the case of the metallic base the physics is somewhat ambiguous since, as described in the Metal section, the Fresnel factor for metal is defined according to the Schlick-based "F82-tint" parametrization which does not specify the underlying physical complex IOR. We suggest here that some reasonable approximation is employed to map the Fresnel factor to the best matching effective complex IOR, for example that described by [#Gulbrandsen2014]. From 131e360155c2d04d8a09fc48f927395a61daacb9 Mon Sep 17 00:00:00 2001 From: Peter Kutz Date: Wed, 25 Jun 2025 19:29:06 -0700 Subject: [PATCH 12/15] Add a comma --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index bd0f84a..59bd571 100644 --- a/index.html +++ b/index.html @@ -910,7 +910,7 @@ - In the case of the dielectric base, the thin-film should also generate color fringes in the transmission lobe. This is important for example when rendering soap bubbles (see [#Belcour2017]). - - In the case of the metallic base the physics is somewhat ambiguous since, as described in the Metal section, the Fresnel factor for metal is defined according to the Schlick-based "F82-tint" parametrization which does not specify the underlying physical complex IOR. We suggest here that some reasonable approximation is employed to map the Fresnel factor to the best matching effective complex IOR, for example that described by [#Gulbrandsen2014]. + - In the case of the metallic base the physics is somewhat ambiguous since, as described in the Metal section, the Fresnel factor for metal is defined according to the Schlick-based "F82-tint" parametrization, which does not specify the underlying physical complex IOR. We suggest here that some reasonable approximation is employed to map the Fresnel factor to the best matching effective complex IOR, for example that described by [#Gulbrandsen2014]. ![Figure [ior_configs]: Schematic of all 8 possible IOR configurations, including those involving the thin-film.](images/IOR_configs.svg width="95%" align="center") From 95abdc1c91e4e5199c003b3a6e099d408935a792 Mon Sep 17 00:00:00 2001 From: Peter Kutz Date: Wed, 25 Jun 2025 19:29:57 -0700 Subject: [PATCH 13/15] Final updates to wording for clarity and conciseness --- index.html | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/index.html b/index.html index 59bd571..11e1f11 100644 --- a/index.html +++ b/index.html @@ -890,21 +890,21 @@ Thin-film iridescence ------------------------------------- -_Iridescence_ is the occurrence of rainbow-like color fringes in the reflection when a thin dielectric film with thickness on the order of the wavelength of light is placed on top of a material, due to wave interference between the various electromagnetic reflection modes within the film. To model this, we assume such a thin film sits atop the base substrate (whether metal or dielectric), parametrized only by: +_Iridescence_ is the occurrence of rainbow-like color fringes in the reflection when a thin dielectric film with thickness on the order of the wavelength of light is placed on top of a material, due to interference between light reflected from the film's top and bottom surfaces, including internal reflections. To model this, we assume such a thin film sits atop the base substrate (whether metal or dielectric), parametrized by: - **`thin_film_weight`**: the coverage (presence) weight of the film, - **`thin_film_thickness`**: the thickness of the film in micrometers ($\mathrm{\mu m}$), - **`thin_film_ior`**: the index of refraction (IOR) of the film. -The thickness and IOR together affect the intensity, spacing, and hue of the color fringes. The coverage weight acts as a blend between the BSDF with and without the presence of the film, allowing the overall strength of the effect to be dialed without altering its structure or color. +The thickness and IOR together affect the intensity, spacing, and hue of the color fringes. The coverage weight acts as a blend between the BSDF with and without the presence of the film, allowing the overall strength of the effect to be adjusted without altering its structure or color. -The currently recommended thin-film model is that of Belcour and Barla [#Belcour2017], which pre-integrates interference effects using Fourier-domain convolutions and Gaussian filtering. This method efficiently produces high-quality fringe patterns in an RGB rendering context, but it can be challenging to implement and may introduce inaccuracies in some cases, as it assumes that Fresnel amplitude and phase coefficients remain constant across each spectral band. +The currently recommended thin-film model is that of Belcour and Barla [#Belcour2017], which pre-integrates interference effects using Fourier-domain convolutions and Gaussian filtering. This method efficiently produces high-quality fringe patterns in an RGB rendering context, but it can be challenging to implement and may introduce inaccuracies in some cases, as it assumes that Fresnel amplitude and phase coefficients remain constant across each spectral band, which limits the model's ability to capture wavelength-dependent dispersion effects. A more direct alternative is a "locally spectral" approach that computes reflectance per light path by evaluating the full Fresnel and Airy interference stack -- including complex amplitudes, polarizations, and phase shifts -- at specific wavelengths sampled per path. This can begin with fixed red, green, and blue wavelengths, but better results are achieved by stochastically sampling wavelengths from approximate camera sensitivity curves. This enables convergence to neutral gray for very thick films and avoids the high-frequency color banding that fixed RGB wavelengths can produce. The same wavelengths can also be reused to model dispersion (as described in the Translucent base section), while all other BSDF components are free to ignore them and operate in RGB as usual. This approach uses only the Airy summation from Belcour and Barla (Equation 3 from [#Belcour2017]) but requires additional per-wavelength computations and assembling the necessary formulas from multiple sources rather than a single reference. -Regardless of which approach is chosen, a few properties and considerations apply to both: +Regardless of which approach is chosen, several considerations apply to both: - - The shape and color of the fringe patterns in the reflection from the film will be affected by the complex IOR of the adjacent media above and below the film, which in general are a statistical mix of metal and dielectric below and coat and ambient medium above (which the fuzz is index-matched to). Figure [ior_configs] illustrates the eight possible different structures depending on the presence of both the film and coat, each of which leads to different Fresnel effects due to the differing IORs at the interfaces. In principle the implementation should deal with all these physical configurations correctly, though modeling of the precise effect is implementation-dependent. + - The shape and color of the fringe patterns in the reflection from the film will be affected by the complex IOR of the adjacent media above and below the film, which in general are a statistical mix of metal and dielectric below, and of coat and ambient medium above (to which the fuzz is index-matched). Figure [ior_configs] illustrates the eight possible different structures depending on the presence of both the film and coat, each of which leads to different Fresnel effects due to the differing IORs at the interfaces. In principle the implementation should account for all of these configurations accurately, though the precise modeling of these effects is left to the implementation. - The thin-film thickness is assumed to be smaller than the scale of the microfacets and assumed to be smooth. With this assumption, in practice the effect is most easily incorporated directly into the Fresnel factor of the microfacet BSDFs of both the metal and dielectric-base layers (thus it is *not* represented by incorporating an explicit thin-film Slab into the model). From 031adb2913a3d32037a28790bc7582f1a40b9e02 Mon Sep 17 00:00:00 2001 From: Peter Kutz Date: Mon, 7 Jul 2025 13:34:51 -0700 Subject: [PATCH 14/15] Add a note about the thin film redistributing energy between reflection and transmission and not violating energy conservation --- index.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/index.html b/index.html index 11e1f11..ce81ade 100644 --- a/index.html +++ b/index.html @@ -912,6 +912,8 @@ - In the case of the metallic base the physics is somewhat ambiguous since, as described in the Metal section, the Fresnel factor for metal is defined according to the Schlick-based "F82-tint" parametrization, which does not specify the underlying physical complex IOR. We suggest here that some reasonable approximation is employed to map the Fresnel factor to the best matching effective complex IOR, for example that described by [#Gulbrandsen2014]. + - 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. + ![Figure [ior_configs]: Schematic of all 8 possible IOR configurations, including those involving the thin-film.](images/IOR_configs.svg width="95%" align="center")
From c88fa064f28360614a6fcc86a6baaa24e02eff9b Mon Sep 17 00:00:00 2001 From: Peter Kutz Date: Fri, 16 Jan 2026 19:09:01 -0800 Subject: [PATCH 15/15] Clarify Belcour&Barla baseline for thin-film iridescence and allow first-principles alternative for spectral renderers --- index.html | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/index.html b/index.html index ce81ade..d19b0ef 100644 --- a/index.html +++ b/index.html @@ -898,21 +898,21 @@ The thickness and IOR together affect the intensity, spacing, and hue of the color fringes. The coverage weight acts as a blend between the BSDF with and without the presence of the film, allowing the overall strength of the effect to be adjusted without altering its structure or color. -The currently recommended thin-film model is that of Belcour and Barla [#Belcour2017], which pre-integrates interference effects using Fourier-domain convolutions and Gaussian filtering. This method efficiently produces high-quality fringe patterns in an RGB rendering context, but it can be challenging to implement and may introduce inaccuracies in some cases, as it assumes that Fresnel amplitude and phase coefficients remain constant across each spectral band, which limits the model's ability to capture wavelength-dependent dispersion effects. +The currently recommended thin-film model is that of Belcour and Barla [#Belcour2017]. This model provides an efficient, high-quality approximation of thin-film interference suitable for typical RGB-based production rendering. -A more direct alternative is a "locally spectral" approach that computes reflectance per light path by evaluating the full Fresnel and Airy interference stack -- including complex amplitudes, polarizations, and phase shifts -- at specific wavelengths sampled per path. This can begin with fixed red, green, and blue wavelengths, but better results are achieved by stochastically sampling wavelengths from approximate camera sensitivity curves. This enables convergence to neutral gray for very thick films and avoids the high-frequency color banding that fixed RGB wavelengths can produce. The same wavelengths can also be reused to model dispersion (as described in the Translucent base section), while all other BSDF components are free to ignore them and operate in RGB as usual. This approach uses only the Airy summation from Belcour and Barla (Equation 3 from [#Belcour2017]) but requires additional per-wavelength computations and assembling the necessary formulas from multiple sources rather than a single reference. +Implementations that operate in a spectral rendering context (or that otherwise wish to account for wavelength-dependent IOR and extinction) may alternatively compute the thin-film Fresnel effect directly from first principles by evaluating Fresnel and thin-film interference at one or more wavelengths and integrating the result according to the renderer's spectral pipeline. In such implementations, the thin-film effect is typically evaluated using an Airy-style multi-bounce formulation (e.g., Equation 3 in [#Belcour2017]) together with wavelength-dependent Fresnel amplitude and phase at the film interfaces. Results should be validated against the recommended Belcour and Barla model in the parameter regimes where that model applies. -Regardless of which approach is chosen, several considerations apply to both: +Regardless of which approach is used, several considerations apply: - - The shape and color of the fringe patterns in the reflection from the film will be affected by the complex IOR of the adjacent media above and below the film, which in general are a statistical mix of metal and dielectric below, and of coat and ambient medium above (to which the fuzz is index-matched). Figure [ior_configs] illustrates the eight possible different structures depending on the presence of both the film and coat, each of which leads to different Fresnel effects due to the differing IORs at the interfaces. In principle the implementation should account for all of these configurations accurately, though the precise modeling of these effects is left to the implementation. + - The shape and color of the fringe patterns in the reflection from the film are affected by the complex IOR of the adjacent media above and below the film, which in general are a statistical mix of metal and dielectric below, and of coat and ambient medium above (to which the fuzz is index-matched). Figure [ior_configs] illustrates the eight possible different structures depending on the presence of both the film and coat, each of which leads to different Fresnel effects due to the differing IORs at the interfaces. In principle the implementation should account for all of these configurations accurately, though the precise modeling of these effects is implementation-dependent. - - The thin-film thickness is assumed to be smaller than the scale of the microfacets and assumed to be smooth. With this assumption, in practice the effect is most easily incorporated directly into the Fresnel factor of the microfacet BSDFs of both the metal and dielectric-base layers (thus it is *not* represented by incorporating an explicit thin-film Slab into the model). + - The thin-film thickness is assumed to be smaller than the scale of the microfacets and the film is assumed to be smooth. With this assumption, in practice the effect is most easily incorporated directly into the Fresnel factor of the microfacet BSDFs of both the metal and dielectric-base layers (thus it is *not* represented by incorporating an explicit thin-film Slab into the model). - - In the case of the dielectric base, the thin-film should also generate color fringes in the transmission lobe. This is important for example when rendering soap bubbles (see [#Belcour2017]). + - In the case of a dielectric base, the thin film should also generate color fringes in the transmission lobe. This is important, for example, when rendering soap bubbles (see [#Belcour2017]). - - In the case of the metallic base the physics is somewhat ambiguous since, as described in the Metal section, the Fresnel factor for metal is defined according to the Schlick-based "F82-tint" parametrization, which does not specify the underlying physical complex IOR. We suggest here that some reasonable approximation is employed to map the Fresnel factor to the best matching effective complex IOR, for example that described by [#Gulbrandsen2014]. + - In the case of a metallic base the physics is somewhat ambiguous since, as described in the Metal section, the Fresnel factor for metal is defined according to the Schlick-based "F82-tint" parametrization, which does not specify the underlying physical complex IOR. We suggest that some reasonable approximation is employed to map the Fresnel factor to a best-matching effective complex IOR, for example that described by [#Gulbrandsen2014]. - - 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. + - 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. ![Figure [ior_configs]: Schematic of all 8 possible IOR configurations, including those involving the thin-film.](images/IOR_configs.svg width="95%" align="center")