Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Some minor rewording improvements/clarifications #218

Open
wants to merge 28 commits into
base: dev_1.2
Choose a base branch
from
Open
Changes from 9 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
9704b2a
Update OpenPBR default example (#216)
jstone-lucasfilm Jun 8, 2024
e821489
Change thin film IOR default (#211)
portsmouth Jun 11, 2024
660b206
Add note about dark fuzz (#207)
portsmouth Jun 11, 2024
1130bd6
Some minor rewording improvements/clarifications
portsmouth Jun 12, 2024
5bb9a13
Enable Zeltner sheen (#217)
jstone-lucasfilm Jun 17, 2024
2c23ebb
Merge branch 'dev_1.1' into wording_fixes
jstone-lucasfilm Jun 22, 2024
e6427ba
Add a "resources" section to the front page (#215)
portsmouth Jun 25, 2024
8d2631e
Clarify formula for emission color (#209)
portsmouth Jun 25, 2024
531d080
Merge branch 'dev_1.1' into wording_fixes
jstone-lucasfilm Jun 25, 2024
5bcea36
Update subsurface color types (#220)
jstone-lucasfilm Jun 27, 2024
6b3c86e
Merge branch 'dev_1.1' into wording_fixes
jstone-lucasfilm Jun 27, 2024
aefefb4
Update specification and reference to v1.1 (#221)
jstone-lucasfilm Jun 28, 2024
853b476
Merge branch 'dev_1.1' into wording_fixes
portsmouth Aug 23, 2024
c9c63aa
Merge remote-tracking branch 'upstream/main' into wording_fixes
portsmouth Aug 30, 2024
6e9f8bf
Merge branch 'wording_fixes' of https://github.com/portsmouth/OpenPBR…
portsmouth Aug 30, 2024
27a3823
fix footnote ref
portsmouth Aug 30, 2024
e2a7bda
Thin-walled "case" -> "mode"
portsmouth Aug 30, 2024
303ead0
Mention that thin-film is assumed to be thinner than microfacet scale…
portsmouth Sep 2, 2024
d060fea
Add acknowledgment and reference (with link) to Standard Shader Ball …
portsmouth Sep 17, 2024
6ff0fb3
Mention that exact hemispherical Fresnel albedo formula is available.
portsmouth Sep 17, 2024
30293bc
More clear form of fuzz layering formula.
portsmouth Oct 5, 2024
3886bbc
Merge branch 'dev_1.2' into wording_fixes
portsmouth Oct 5, 2024
c3d00ba
Add a clarification/reminder to clamp specular weight in the darkenin…
portsmouth Oct 17, 2024
9a2b4b9
Merge branch 'wording_fixes' of https://github.com/portsmouth/OpenPBR…
portsmouth Oct 17, 2024
d4c6bbf
Merge branch 'dev_1.2' into wording_fixes
jstone-lucasfilm Oct 17, 2024
4987f34
Add reference to the EON paper, remove footnote formulas.
portsmouth Nov 12, 2024
448574a
Merge branch 'wording_fixes' of https://github.com/portsmouth/OpenPBR…
portsmouth Nov 12, 2024
e5fa478
add period
portsmouth Nov 12, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 15 additions & 11 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,7 @@
============================================

Using the operator formalism and parametrization described, we now specify the structure of the OpenPBR surface model.
We describe first the non-thin-walled case (in the [thin-walled case](index.html#model/thin-walledcase) the structure differs), where the material structure looks informally like the following diagram:
We describe first the non-thin-walled mode (in the [thin-walled mode](index.html#model/thin-walledmode) the structure differs), where the material structure looks informally like the following diagram:
************************************************************************************************************
* emission *
* ^ *
Expand Down Expand Up @@ -851,11 +851,13 @@

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

![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. 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).
In principle the implementation should deal with all these physical configurations correctly, though modeling of the precise effect is implementation-dependent.

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]).

Expand Down Expand Up @@ -906,7 +908,7 @@

The absorption of the medium $V_\mathrm{coat}$ is parametrized by **`coat_color`**, which is assumed to specify the _square_ of the transmittance of the coat at normal incidence (i.e. $T_\mathrm{coat}$ = **`coat_color`** in the notation of equation [non-reciprocal-albedo-scaling-with-T]). Thus the observed tint color of the underlying base due to absorption in the coat is approximately given by **`coat_color`** due to the absorption along the incident and outgoing rays (note that the specular reflection from the coat itself is _not_ tinted).

In the full light transport within the coat, various physical effects occur which we assume are accounted for in the ground truth appearance:
In the full light transport within the coat, various physical effects [^porosity] occur which we assume are accounted for in the ground truth appearance.

- The observed color of the coated base is darkened and saturated due to multiple internal reflections from the inside of the coat, which causes light to strike the underlying material multiple times and undergo more absorption. This effect is controlled via the **`coat_darkening`** parameter, as described in the coat Darkening section.

Expand Down Expand Up @@ -1170,7 +1172,7 @@
* +- - - - - - - - - - - - - - - - - -+ +- - - - - - - - - - - - + - - - - - - - - - - - -+ *
****************************************************************************************************

Note that in the case of a non-thin-walled material, $\mathtt{\alpha} < 1$ doesn't make strict physical sense unless the entire surface is removed, whereas in the [thin-walled case](index.html#thin-walledcase) the opacity has a clear physical interpretation as the presence weight of the wall (or "cutout" areas where $\mathtt{\alpha} = 0$) like in the leaf render below.
Note that in the case of a non-thin-walled material, $\mathtt{\alpha} < 1$ doesn't make strict physical sense unless the entire surface is removed, whereas in the [thin-walled mode](index.html#thin-walledmode) the opacity has a clear physical interpretation as the presence weight of the wall (or "cutout" areas where $\mathtt{\alpha} = 0$) like in the leaf render below.

We generally leave it as an implementation detail for a renderer to determine how connections to light sources be made through the surface. However a very common approximation used by many renderers is "transparent shadows", where a straight-line connection is made to lights and the contribution of the light determined by the total transmittance along the ray, ignoring any refraction events. We give here a suggested form for this shadow ray transmittance.

Expand Down Expand Up @@ -1208,7 +1210,7 @@
The normal and tangent are assumed to be unit vectors. Reconstruction filtering techniques such as texture filtering may cause the interpolated value to not be normalized, which can be corrected with a renormalization to reduce visible artifacts caused by this filtering.


Thin-walled case
Thin-walled mode
-------------------------------------

If the **`geometry_thin_walled`** Boolean is enabled, then the surface is assumed to be in a "thin-walled" mode.
Expand Down Expand Up @@ -1271,9 +1273,9 @@

As an example, we give here a brief derivation of a mixture model representation analogous to Autodesk Standard Surface, from the stated material structure of OpenPBR. Following Autodesk Standard Surface, we assume here that layering is implemented via the non-reciprocal albedo-scaling of equation [non-reciprocal-albedo-scaling]. This derivation also informs how we implement our MaterialX [reference implementation](reference/open_pbr_surface.mtlx).

### Non-thin-walled case
### Non-thin-walled mode

Consider first the non-thin-walled case (i.e. **`geometry_thin_walled`** is false).
Consider first the default non-thin-walled mode (i.e. **`geometry_thin_walled`** is false).
For brevity, in the following we suppress all the direction arguments, and use the notation of the tree diagram in the Model section for the weight factors i.e.:
\begin{eqnarray}
\mathtt{\alpha} &=& \mathtt{geometry\_opacity} \nonumber \\
Expand Down Expand Up @@ -1379,9 +1381,9 @@
| Diffuse reflection | $\color{darkblue}{f_\mathrm{diffuse}}$ | diffuse BRDF | as in the Glossy-diffuse section |


### Thin-walled case
### Thin-walled mode

In the thin walled case (i.e. when **`geometry_thin_walled`** is true), we will assume the approximation described in the Thin-walled case section where the coat and fuzz are ignored on the underside, and the surface always flipped to so that incident rays enter top-down. Then the derivation is the same as above except the translucent-base and subsurface slabs behave differently:
In the [thin-walled mode](index.html#model/thin-walledmode) (i.e. when **`geometry_thin_walled`** is true), the simplest approximation is to assume the coat and fuzz are ignored on the underside, and the surface always flipped so that incident rays enter top-down. Then the derivation is the same as above except the translucent-base and subsurface slabs behave differently:

- The translucent-base reduces to a thin sheet of dielectric. This can just be considered the thin-wall limit of the BTDF $\color{darkblue}{f^T_\textrm{specular}}$. Note that in this limit, the reflection lobe from the dielectric $\color{darkblue}{f^R_\textrm{specular}}$ will also technically be modified due to the internal bounces in the sheet.

Expand All @@ -1391,7 +1393,7 @@

### Entering versus exiting

An aspect that has been ignored in this approximation (in the non-thin-walled case) is the different light transport for rays incident from the top or the bottom side. In reality the physical effect of the layers differs in these cases. For entering rays:
An aspect that has been ignored in this approximation (in the non-thin-walled mode) is the different light transport for rays incident from the top or the bottom side. In reality the physical effect of the layers differs in these cases. For entering rays:

- The fuzz reflection is not tinted by the coat absorption.
- The coat reflection is dimmed and roughened by the fuzz.
Expand Down Expand Up @@ -1490,6 +1492,8 @@
Nicolas Wirrmann
for their useful contributions.

The "shader playground" scene shown at the top of the document was authored by Nikie Monteleone.
jstone-lucasfilm marked this conversation as resolved.
Show resolved Hide resolved


References
============================================
Expand Down