Skip to content

Latest commit

 

History

History
55 lines (31 loc) · 3.63 KB

File metadata and controls

55 lines (31 loc) · 3.63 KB

Approximations for constrained implementations

This specification describes a model which includes a number of features that can be computationally expensive and therefore impractical to support in certain contexts, like real-time applications or mobile devices.

The Historical background and objectives section explains how the goal of this specification is to provide an ideal, reference appearance. The implementer is, however, free to make decisions and approximations to satisfy their practical constraints. We do not dictate what those approximations should be, as this depends on the use case. We can, however, propose some possible ones and offer guidelines to help the implementer make those decisions.

As a general rule of thumb, we invite the implementer to think of those approximations in the same way one would think of different levels 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.

This means the implementer must carefully consider what to do with 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.

In the following sections we propose possible approximations for the different components of the OpenPBR Surface material.

Layering and mixing

As mentioned in the Reduction to a mixture of lobes section, the mix and layer operations can be approximated as a weighted sum of BSDF lobes.

Specular lobes

The specular BRDF described in the specification is the classic GGX-Smith model, which has been common in both offline and real-time rendering for a decade. The so called "split-sum" approximation introduced by [#Karis2013] allows efficient rendering of the isotropic version of this BRDF with image-based lighting.

Anisotropic case

Several solutions are possible for the anisotropic case:

  • [#Cocco2024] recently proposed an image-based lighting approximation of anisotropic specular reflection consisting in several samples along the main BRDF axis.

  • [#McAuley15] describes a simpler and cheaper method based on [#Revie2011], consisting in modifying normals and offering a very crude approximation of anisotropic reflection.

  • Finally, the crudest approximation would be to ignore entirely the specular_roughness_anisotropy for the base layer specular lobe (respectively coat_roughness_anisotropy for the coat specular lobe), as the anisotropy parametrization in designed to preserve the average roughness regardless of the anisotropy (see the Microfacet model section for details).

<style class="fallback"> body { visibility:hidden } </style> <script src="style/markdeep-1.04.min.js" charset="utf-8"> window.markdeepOptions = {tocStyle: "long", smartQuotes=true} </script> <script> window.alreadyProcessedMarkdeep || (document.body.style.visibility="visible") </script>