Psyop / Cryptomatte

Cryptomatte Nuke plugin, Fusion plugin, sample images, and specification
BSD 3-Clause "New" or "Revised" License
632 stars 151 forks source link

[DR/Fu 16] Official Release Support and Reactor Update #115

Closed omenos closed 3 years ago

omenos commented 5 years ago

With the GA of DaVinci Resolve 16 and Fusion Studio 16, would it be possible to update and test the Fusion plugin against the new SDK? As well as update the Reactor atom package (it's currently 3 versions behind, some of which include Fusion fixes).

Cheers, Mike

cricketbee commented 5 years ago

Hi. I have the same problem with Cryptomatte. it doesnt work with Davinci Resolve 16.1.

cedricduriau commented 3 years ago

Hi @omenos

Not really aware of the status of either Resolve/Fusion or Reactor right now, but ensuring latest versions shouldn't be an issue.

@AndrewHazelden my good sir, any change you have time and energy to provide me some details on whether this can safely be done?

Cheers Cedric

AndrewHazelden commented 3 years ago

Hi Cedric. The last revision to the Reactor bundled version of the Cryptomatte fuse was committed to the GitLab Reactor repo by WSL user movalex.

https://gitlab.com/WeSuckLess/Reactor/-/merge_requests/187

cedricduriau commented 3 years ago

Hi Andrew

Fast as a bullet, as always. Thanks for the confirmation!

Cheers Cedric

AndrewHazelden commented 3 years ago

The left-over support burden of the Fusion 9.0.2 release's fuse bugs still haunts devs who want to target Fusion v9-17.1.

This (ugly) patch is required in my tests:

local cryptoutils = self and require("cryptomatte_utilities") or nil

cedricduriau commented 3 years ago

Hold up this was never merged into the main remote? I have this merged on my fork master for quite some time now! We for sure can call upon the lads @jonahf @acjones to ensure this gets in. I'm pretty sure if we diff my fork master and this master that we get 1 commit popping up.

AndrewHazelden commented 3 years ago

As a quick comment, Resolve users typically try to use a MediaIn node to load in EXR media which doesn't pass the required Filename metadata tag into the Fusion page. This is like reason 1 of an "It doesn't work" report.

Quickly after that issue is 2, the prevalence of Blender and V-Ray users rendering out footage either with 1 pass-per-exr file to disk with no metadata embedded/sidecar, or stripped exr files that have gone from render to Blender's compositor first for pre-processing or denoising and re-saved again before arriving in Fusion.

Then finally 3 is Cryptomatte based multi-part exr files... which are technically possible to process via the fuse API EXR-IO library in Fusion based upon the PL sample code we got back in 2017.

cedricduriau commented 3 years ago

As a quick comment, Resolve users typically try to use a MediaIn node to load in EXR media which doesn't pass the required Filename metadata tag into the Fusion page. This is like reason 1 of an "It doesn't work" report.

Really? I remember asking this specifically to BMD at one point and time.

Quickly after that issue is 2, the prevalence of Blender and V-Ray users rendering out footage either with 1 pass-per-exr file to disk with no metadata embedded/sidecar, or stripped exr files that have gone from render to Blender's compositor first for pre-processing or denoising and re-saved again before arriving in Fusion.

I read extra validation required on our side, can be done to at least report issues in a more human readable format.

Then finally 3 is Cryptomatte based multi-part exr files... which are technically possible to process via the fuse API EXR-IO library in Fusion based upon the PL sample code we got back in 2017.

I quickly researched this recently, can be supported I believe if Fusion EXRIO is stable enough. To be researched in depth.

Cheers Cedric

AndrewHazelden commented 3 years ago

As a quick comment, Resolve users typically try to use a MediaIn node to load in EXR media which doesn't pass the required Filename metadata tag into the Fusion page. This is like reason 1 of an "It doesn't work" report.

Really? I remember asking this specifically to BMD at one point and time.

Cedric, here are the (3 year old) relevant links for the original Resolve support discussion topic with the MediaIn vs Loader issue:

https://forum.blackmagicdesign.com/viewtopic.php?f=21&t=77081&p=440700#p426134

https://github.com/cedricduriau/Cryptomatte/issues/6

Nothing relevant has changed on the BMD side of things...

But as I mentioned back in the Resolve 15 era, a workaround of a SetMetadata node can be used in a Fusion page comp to post-add and live inject the required Filename metadata record downstream from a MediaIn node. Well, assuming some user really really wanted to do that via a ":" character prefixed in front of a simple expression to append the lua string concatenated folder path, base image name, lua formatted zero padded frame number, and image extension.

AndrewHazelden commented 3 years ago

I quickly researched this recently, can be supported I believe if Fusion EXRIO is stable enough. To be researched in depth.

Excellent. 😃

When life gives you some spare time to do your R&D, check out the LifeSaver.fuse in Reactor as it has full multi-channel + multi-part EXR (write) support via the fuse EXR-IO API.

Also, the built-in Fusion Standalone v9.0.2+ bundled "External Matte Saver.fuse" by PL also works with multi-part exr.

P.S. In theory it would be possible to use EXR-IO to offer an exr based crypto image sequence repackager node. It could offer controls to shuffle metadata sidecar info and split channels from separate image stream "input connections" on the fuse node back into an optimized exr file sequence that could be bounced back to disk.

cedricduriau commented 3 years ago

The left-over support burden of the Fusion 9.0.2 release's fuse bugs still haunts devs who want to target Fusion v9-17.1.

This (ugly) patch is required in my tests:

local cryptoutils = self and require("cryptomatte_utilities") or nil

To confirm, 1.4.0 ships with this so no need for Reactor custom patch anymore.