Skip to content

Commit 8753966

Browse files
authored
Add "Flexibility of implementation" section (#248)
* Add page to propose real-time approximations * Mention layering and mixing approximation * Mantion specular reflection approximation * Mention anisotropic reflection approximations * Fix typos * Wording * Reword the section, move it to the main document, remove the annex
1 parent aefefb4 commit 8753966

1 file changed

Lines changed: 24 additions & 6 deletions

File tree

index.html

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -196,8 +196,6 @@
196196
\end{equation}
197197
where $T_\mathrm{coat}(\omega_i, \omega_o)$ accounts for the total volumetric absorption of the coat along the input and output rays. Similarly if the coat is rough this will effectively roughen the substrate BSDF lobe also, which can be accounted for approximately via various heuristics.
198198

199-
Complete conformance to the spec is defined as reproducing all the physical inter-layer light transport effects, though this is not typically practical. In practice, each implementation must decide what level of approximation to use for the light transport within layers, trading off accuracy for efficiency according to its own particular use case.
200-
201199

202200
Mixing
203201
-------------------------------------
@@ -363,9 +361,7 @@
363361

364362
In addition to the weight and opacity parameters explicit in the model structure above, the properties of each component slab are controlled via further parameters detailed below (see the Parameter reference section for the full set).
365363

366-
Since the model is simply a physical description of a material structure, in principle it would be amenable to solution via accurate methods such as those developed in [#Jakob2014], [#Belcour2018], and [#Zeltner2018], which attempt to compute all the various modes of reflection and transmission through the whole stack of layers, generating a final BSDF which is not necessarily a simple linear combination of the individual interface BSDFs. However we want this material model to be renderable on a wide range of platforms, from offline path tracers all the way to real-time game engines on mobile devices. Enforcing a particular implementation would make the use of the material model impractical for certain classes of renderers, and ultimately make the model less useful. For this reason we consider the choice of a specific implementation of the final BSDF to be outside the scope of this specification.
367-
368-
For convenience and efficiency, at present it is most likely to be mapped to a model consisting of a mixture of BSDF lobes similar to the Autodesk Standard Surface shader [#Georgiev2019] and its representation in MaterialX. An example derivation of such a model is provided in the ["Reduction to a mixture of lobes"](index.html#model/reductiontoamixtureoflobes) section below. We also provide a [reference implementation](reference/open_pbr_surface.mtlx) in MaterialX based on this derivation.
364+
Since the model is simply a physical description of a material structure, in principle it would be amenable to solution via accurate methods such as those developed in [#Jakob2014], [#Belcour2018], and [#Zeltner2018], which attempt to compute all the various modes of reflection and transmission through the whole stack of layers, generating a final BSDF which is not necessarily a simple linear combination of the individual interface BSDFs. At present however, for the reasons described in the Flexibility of implementation section, it is most likely to be mapped to a model consisting of a mixture of BSDF lobes similar to the Autodesk Standard Surface shader [#Georgiev2019] and its representation in MaterialX. An example derivation of such a model is provided in the ["Reduction to a mixture of lobes"](index.html#model/reductiontoamixtureoflobes) section below. We also provide a [reference implementation](reference/open_pbr_surface.mtlx) in MaterialX based on this derivation.
369365

370366
We now discuss the detailed form of the BSDFs and media of the slabs in the structure.
371367

@@ -740,7 +736,7 @@
740736

741737
The phase function anisotropy $g$ of the medium is taken to be given directly by the **`subsurface_scatter_anisotropy`** parameter [^anisotropy_g]. It is assumed that the phase function has the standard Henyey--Greenstein form.
742738

743-
Once the underlying volumetric medium properties $\boldsymbol{\mu}_t$, $\boldsymbol{\alpha}$ and $g$ are determined, implementations are free to choose how to compute the light transport in the subsurface medium according to their use case, for example accurately via volumetric path tracing ([#Novak2018], [#Pharr2023]), or approximately via a bidirectional scattering surface reflectance distribution (BSSRDF) model using e.g. the dipole approximation [#Jensen2001].```
739+
Once the underlying volumetric medium properties $\boldsymbol{\mu}_t$, $\boldsymbol{\alpha}$ and $g$ are determined, implementations are free to choose how to compute the light transport in the subsurface medium according to their use case, for example accurately via volumetric path tracing ([#Novak2018], [#Pharr2023]), or approximately via a bidirectional scattering surface reflectance distribution (BSSRDF) model using e.g. the dipole approximation [#Jensen2001].
744740

745741
Note that the default value of **`subsurface_radius_scale`** is set at $(1, 0.5, 0.25)$ to approximate the effect of Rayleigh scattering. If we roughly approximate the wavelength corresponding to each of the RGB channels as $\lambda/\mathrm{nm} \approx 650, 550, 450$ and assume the radii scale like the reciprocal of the extinction, then since in Rayleigh scattering the extinction scales like $\lambda^{-4}$ for light of wavelength $\lambda$ the expected relative magnitudes of the radii are $(1, (550/650)^4, (450/650)^4) \approx (1, 0.5, 0.25)$, hence the chosen default. This provides a slightly more realistic default look for the subsurface than resulting from gray radii.
746742

@@ -1431,6 +1427,20 @@
14311427
We provide a [reference implementation](reference/open_pbr_surface.mtlx) in MaterialX, which is based on the derivation in the previous section and the implementation of Autodesk Standard Surface [#Georgiev2019].
14321428

14331429

1430+
Flexibility of implementation
1431+
=============================
1432+
1433+
We want this material model to be renderable on a wide range of platforms, from offline path tracers all the way to real-time game engines on mobile devices.
1434+
1435+
The Historical background and objectives section explains how the goal of this specification is to provide an ideal, reference appearance. Complete conformance to the specification is defined as reproducing all the physical light transport effects of that ideal appearance.
1436+
1437+
However, a number of features can be computationally expensive and therefore impractical to support under certain constraints. Enforcing a specific implementation would tailor the material model to a particular set of constraints, limiting its versatility, which would ultimately make it less useful. For this reason, the specification focuses solely on defining the target appearance. The choice of the final BSDF implementation and its associated trade-off is left entirely to the implementer, allowing them to best suit it to their needs.
1438+
1439+
Each implementation must decide what level of approximation to use, trading off accuracy for efficiency according to its own particular use case. As a guideline, we suggest approaching those approximations conceptually like different level of detail (LOD) variants of an asset. Just like such an asset would become coarser with distance while retaining as much detail as necessary to remain faithful to the original, an implementation of OpenPBR may decide to make simplifications, as long as the result remains reasonably faithful to the intent given the practical constraints. In the most extreme hypothetical case, the model might even get reduced to as little as a single Lambert BRDF.
1440+
1441+
This means the implementer must carefully consider the handling of parameters they do not plan to fully support. A parameter that drastically modifies the appearance of a material should not be discarded just because the corresponding effect is not supported. As an example, in a renderer that doesn't have subsurface scattering, the subsurface color might be used as the albedo of a diffuse BRDF.
1442+
1443+
14341444
<!--
14351445
Parameter reference
14361446
================================================================================
@@ -1502,6 +1512,8 @@
15021512

15031513
[#Burley2018]: Brent Burley, David Adler, Matt Jen-Yuan Chiang, Hank Driskill, Ralf Habel, Patrick Kelly, Peter Kutz, Yining Karl Li, Daniel Teece. *The Design and Evolution of Disney’s Hyperion Renderer*, ACM TOG (2018).
15041514

1515+
[#Cocco2024]: Giovanni Cocco, Cédric Zanni, and Xavier Chermain. *Anisotropic Specular Image-Based Lighting Based on BRDF Major Axis Sampling*, Eurographics (2024).
1516+
15051517
[#Dupuy2023]: Jonathan Dupuy, Anis Benyoub. *Sampling Visible GGX Normals with Spherical Caps*, High-Performance Graphics (2023).
15061518

15071519
[#Elias2001]: Mady Elias, Lionel Simonot, and Michel Menu. “Bidirectional reflectance of a diffuse background covered by a partly absorbing layer”. In: Optics Communications 191.1 (2001).
@@ -1534,6 +1546,8 @@
15341546

15351547
[#Jensen2001]: Henrik Wann Jensen, Stephen R. Marschner, Marc Levoy, and Pat Hanrahan. *A Practical Model for Subsurface Light Transport*, ACM SIGGRAPH (2001).
15361548

1549+
[#Karis2013]: Brian Karis, *Real Shading in Unreal Engine 4*, ACM SIGGRAPH Courses: Physically Based Shading in Theory and Practice (2013).
1550+
15371551
[#Kelemen2001]: Csaba Kelemen and Laszlo Szirmay-Kalos. *A Microfacet Based Coupled Specular-Matte BRDF Model with Importance Sampling*, Eurographics (2001).
15381552

15391553
[#Kettner2015]: Lutz Kettner, Matthias Raab, Daniel Seibert, Jan Jordan, Alexander Keller. *The Material Definition Language*, Eurographics (2015).
@@ -1546,6 +1560,8 @@
15461560

15471561
[#Langlands2014]: Anders Langlands. *Physically Based Shader Design in Arnold*, ACM SIGGRAPH Talks (2014).
15481562

1563+
[#McAuley15]: Stephen McAuley, *Rendering the World of Far Cry 4*, GDC (2015).
1564+
15491565
[#McDermott2018]: Wes McDermott. [*The PBR Guide*](https://substance3d.adobe.com/tutorials/courses/the-pbr-guide-part-1), Allegorithmic white paper (2018).
15501566

15511567
[#Neubelt13]: David Neubelt, Matt Pettineo. *Crafting a Next-Gen Material Pipeline for The Order: 1886*, ACM SIGGRAPH Courses: Physically Based Shading in Theory and Practice (2013).
@@ -1558,6 +1574,8 @@
15581574

15591575
[#Polyanskiy2023]: Mikhail N. Polyanskiy. [*Refractive Index Database*](https://refractiveindex.info/) (2023).
15601576

1577+
[#Revie2011]: Donald Revie, *Implementing Fur Using Deferred Shading*, GPU Pro 2 (2011).
1578+
15611579
[#Schott2023]: SCHOTT. [*Interactive Abbe Diagram*](https://www.schott.com/en-gb/interactive-abbe-diagram) (2023).
15621580

15631581
[#Smythe2016]: Doug Smythe and Jonathan Stone. [*MaterialX: An Open Standard for Network-Based CG Object Looks*](https://materialx.org)

0 commit comments

Comments
 (0)