Is there a hard requirement that [frame-relative] shutter intervals must include 0.0, and if so, where might this be stipulated? I don’t see it stated explicitly anywhere in OpenUSD. I expect that it may be an industry standard or unwritten rule. If so, it would be sensible to make it explicit for Hydra, since it is implied by the Scene Index / Data Source API:
Getting Started Guide:
If GetContributingSampleTimesForInterval() returns false, this indicates an attribute that’s constant over the shutter window, and the caller should just use GetValue(0).
GetContributingSampleTimesForInterval documentation:
If this call returns
false, this value is uniform across the shutter window and the caller should callGetValue(0)to get that uniform value.
Using a zero shutter offset for getting the uniform value across a shutter window is only valid if the shutter window includes it. If a non-compliant shutter interval is used (shutterOpen > 0.0 or shutterClose < 0.0), GetValue(0) may return a value this is different to the value that is uniform across the shutter window. This is because GetContributingSampleTimesForInterval() discounts variation outside of the interval.
I can, however, imagine that there may be unusual use cases for a shutter interval that doesn’t include zero. Katana, for example, happens to allow for this in its own parameter sampling. The above documentation, as well as existing code would need to change if Hydra were to be similarly permissive.