KhronosGroup / KhronosGroup/glTF

Graceful degradation of PBR Next extensions

Open
#1,789 0 comments 1 reaction 0 assignees View on GitHub
PBR
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.