Add "Flexibility of implementation" section
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.
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.
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.
Thanks! The diff is so much easier to look at now :)
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.
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.
What's the current status? The latest revisions look good from my perspective. I'm looking forward to the proposal being merged.