-
Notifications
You must be signed in to change notification settings - Fork 207
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Optimise USD layer writer diffs #6170
Comments
Will you be exporting a single frame, or an animation? I think the single frame case is relatively simple - we can just write a node that compares input hashes and outputs nothing if they match. But the animation case seems potentially trickier - I think we need to still write out objects when they are identical on a particular frame, if and only if they are different on a later frame. Not sure how to achieve that without doing a potentially expensive pre-pass over everything. |
Single frames only. All our shaders are supposed to be handling animation internally i.e. by reading time/frame inside shaders |
Another possible optimisation: do not generate time-samples if exporting single-frame. It is unlikely to speed up export much, but it will generate smaller, more efficient USD layers |
We definitely want to do that, and we even want to do it when exporting an animation but finding a property to be constant. That will need to be implemented in IECoreUSD separately though, at which point USDLayerWriter would benefit from it automatically. How high in priority would you say that part is? |
@tomc-cinesite, would this apply to your light rig exports too? Or would those be animated? |
Light rigs would be animated. |
Very low priority. We optimise samples in our postprocess anyway |
Summary
Optimise the USD layer writer where possible to allow production use of brute-force diffs to define variants.
User story
As a studio, we would like to make the authoring of variants more flexible, based on scene deltas. The current implementation prohibits this due to the time taken to build the diffs. It would be great if we could optimise these two typical scenarios:
The text was updated successfully, but these errors were encountered: