OpenPBR icon indicating copy to clipboard operation
OpenPBR copied to clipboard

Add "Flexibility of implementation" section

Open virtualzavie opened this issue 10 months ago • 6 comments

This PR is an attempt at addressing requests for some guidance from the real-time community, including #241.

The proposal is to state clearly, in one place that is easy to identify and refer to in the document, what is expected from implementations and what they are allowed to do while still complying to the specification.

Ideally, an annex would propose some approximations they can use, with code snippets ready to use.

image

virtualzavie avatar Feb 04 '25 18:02 virtualzavie

this PR seems to include much unrelated history. does it need to be rebased?

Yes, most likely. I think I either didn't branch off the right point, or didn't open the PR towards the proper branch.

virtualzavie avatar Feb 07 '25 17:02 virtualzavie

this PR seems to include much unrelated history. does it need to be rebased?

I've rebased the branch on top of main, excluding the commits from the 1.x branches that were unrelated to the PR.

virtualzavie avatar Feb 11 '25 12:02 virtualzavie

Thanks! The diff is so much easier to look at now :)

meshula avatar Feb 11 '25 21:02 meshula

As proposed in the meeting, perhaps we can repurpose this into two PRs, with:

  • just the wording change that permits approximations, more explicitly. This could maybe just go into the introduction?
  • a separate document that will be the skeleton of the guidelines? This could also move chunks that are essentially just approximations, into the guidelines. Some candidates for moving out of the spec are (these might be better as sub-PRs though):
    • the "Reduction to a mixture of lobes" section, is essentially detailing derivation of one approximate form of the model, that looks like Standard Surface. (This is the main task arguably for an implementer -- i.e. mapping the layer structure to a weighted BSDF combination). It would be interesting to know for example the process that Adobe took, to map the OpenPBR layer structure to a concrete implementation with individual BSDFs.
    • the coat darkening/roughening/TIR math, that amounts to a choice of approximation. (Not the part that specifies what the darkening parameter does).
    • more SSS remapping choices could be stated.

portsmouth avatar Feb 18 '25 20:02 portsmouth

I've reduced this PR to the wording change, with a section in index.html. I've removed the guidelines part, and will reintroduce it with a separate PR.

virtualzavie avatar Apr 15 '25 20:04 virtualzavie

What's the current status? The latest revisions look good from my perspective. I'm looking forward to the proposal being merged.

meshula avatar Apr 16 '25 20:04 meshula