KhronosGroup / KhronosGroup/glTF
Graceful degradation of PBR Next extensions
- Dominant language
- HTML
- Stars
- 7.8k
- Forks
- 1.2k
- Avg merge
- 17h 26m
- Merged PRs (30d)
- 5
Description
As we've discussed on the call recently, a device and client implementation that would support any of our [proposed PBR Next features](https://github.com/KhronosGroup/glTF/milestone/2) individually may not necessarily be able to support them all at the same time. There are multiple reasons for this:
1. Limited number of textures supported per material. We will try to minimize this by efficient texture packing layouts, but we cannot fully eliminate these limits.
2. Rendering expense increases with each feature enabled. This is independent of the textures involved; cost is still incurred if effects are driven by scalars.
An [implementation note](https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#additional-maps) in our existing spec suggests "Resource-bound implementations should drop maps from the bottom to the top" and provides a prioritized list of textures. @bghgary has suggested that a similar approach could be taken for PBR Next extensions.
This proposal seems reasonable to me, I can't think of any way to do better. It cannot be perfect — a model that includes 10 spheres, all sharing a single material, with UVs laid out so as to activate a different PBR next effect on each sphere, will not degrade gracefully.
Feedback, or suggestions for an order of priority?
Contributor guide
Research direction
Review the proposed PBR Next features in milestone 2 and the existing specification's "Additional Maps" implementation note. Compare the proposal for dropping unsupported maps with the listed feature constraints, then document an agreed priority order and graceful-degradation guidance. Done means the project has a decided approach rather than an open request for feedback.
Written by the indexing model from the issue text.
Assessment
- Domain
- computer-graphics
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100