-
Notifications
You must be signed in to change notification settings - Fork 129
Nuke: update rendered frames in latest version #4362
Nuke: update rendered frames in latest version #4362
Conversation
Collector should get triggered for render family and offer field to input frames that should be re-rendered and replaced ones in latest version
If frames_to_fix is filled, use this to render only these frames, use 'last_version_published_files' for other
New host implementation should be added to hosts filter
This plugin should run only on local (eg not no farm - no one to fill valu in UI).
Without it it will always use version from anatomy, even if it logs that it uses old version.
Allows to rewrite latest version, eg. not duplicating files.
Added new toggle to overwrite files of last version. Fixed version overwriting in (Currently it is not possible to add |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nuke and integration into OP works well, but Ftrack reviewable component is not updating.
Why are we writing it into an existing version instead of generating a new version for which we ONLY render the 'to fix' frames and copy the other frames? To me personally it'd make much more sense to increment a version number if we're changing it. I feel like writing into an existing version will only start complicating thing more and feels kind of counter-intuitive to the whole versioning aspect we'd like to follow, but if we really want to write into an existing publish:
|
This was clients requested feature. Not something you want to use everyday. An issue they were facing were huge resolutions of rendered files - so they didn't want to accumulate frames which were not changed. |
frames_to_render = [] | ||
|
||
for frame_range in frames_to_fix.split(","): | ||
if isinstance(frame_range, int) or frame_range.isdigit(): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this do frame_range = frame_range.strip()
too? Just so that if the user ever typed a space it'd be ignored?
Co-authored-by: Roy Nieterau <roy_nieterau@hotmail.com>
Co-authored-by: Roy Nieterau <roy_nieterau@hotmail.com>
Brief description
Introduced new field to insert frame(s) to rerender only.
Description
Rendering is expensive, sometimes it is helpful only to re-render changed frames and reuse existing.
Artists can in Publisher fill which frame(s) should be re-rendered.
If there is already published version of currently publishing subset, all representation files are collected (currently for
render
family only) and then when Nuke is rendering (locally only for now), old published files are copied into into temporary render folder where will be rewritten only by frames explicitly set in new field.That way review/burnin process could also reuse old files and recreate reviews/burnins.
New version is produced during this process!
Additional info
Currently only implemented for Nuke's local render as a proof of concept. Farm rendering will be implemented afterwards.
Only other host where this workflow can work is for now AfterEffects as they have Publisher implemented.
It might be useful to create abstract extractor class and use it in host extractor as multiple inheritance to highlight that this extractor implements this functionality (kinda trait - expect some specific fields, does something)...
Contains fix for AE found during testing, didn't want to create new PR for this (expected to implement AE first, decided for Nuke instead after commits were done.)
Testing notes: