AcademySoftwareFoundation / AcademySoftwareFoundation/OpenPBR

Refactor layer structure to have gloss sit on top of the entire dielectric base

Open
#282 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
CSS
Stars
793
Forks
44
PR merge metrics
No merged PRs in 30d

Description

We discussed this on Slack recently (see [here](https://academysoftwarefdn.slack.com/archives/C06365EAQMP/p1762166759931629)).

The issue is that the way we set up the dielectric base model is a little confusing. The "glossy-diffuse" slab is represented as an explicit layer of clear dielectric "gloss" on top of an opaque diffuse base (the bottom two nodes in the graph below), but the translucent base slab and subsurface slab are *not*.




Image




This could be misread as meaning that only the glossy-diffuse layer has a specular reflection. But both the translucent base and subsurface slab are intended to have a dielectric BSDF at the interface, with embedded volume. The same dielectric BSDF is supposed to cover the entire dielectric base, but this is not obvious from the graph.

We did it this way because the glossy-diffuse slab *has* to be represented as this explicit layer of clear dielectric gloss on top of an opaque diffuse base, because there is no other well-defined physical model available for the combination of Oren-Nayar diffuse and dielectric Fresnel reflection. Whereas "dielectric with embedded scattering/absorbing volume" is completely standard and well-defined.

Instead of this, it would work and be clearer to have the gloss be a layer of clear dielectric sitting on top of the *entire* (dielectric) base, which is **index-matched** with the embedded volume which begins at some finite (though microscopic) depth beneath it. Note that the BSDF of that configuration would be formally *identical* to what we describe now, since there will be no volumetric interactions in the gloss layer or scattering at the index-matched interface. So there is not actually any need to add language to prevent inter-reflections, beyond what we currently say for the glossy-diffuse and subsurface cases, making the change not difficult. This configuration will be make it more intuitive that the specular reflection is shared across the entire base dielectric.

It does involve a slightly different kind of configuration than we currently describe, i.e. layering a slab of dielectric on top of a slab of index-matched volume, producing a "pass-through" delta-function BSDF at the interface. We will need to add to the formalism some way to indicate that a slab is automatically index-matched with its exterior (which technically the fuzz currently is, though we didn't make it explicit in the formalism, and doing so would also be an improvement).

As noted, it would produce an identical BSDF to the current spec. This amounts therefore just to a change in the language of the spec, an adjustment to the formalism, and updating the layer diagrams accordingly.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading the current dielectric base model specification and its layer diagrams, then compare the glossy-diffuse, translucent base, and subsurface descriptions. Update the formalism to indicate automatic index matching and revise the specification language and diagrams so the gloss covers the entire dielectric base while preserving the stated identical BSDF.

Written by the indexing model from the issue text.

Assessment

Domain
computer-graphics, documentation
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.