Psyop / Cryptomatte

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

Pre-beta1 cryptomatte shader and user manifests #96

Closed noizfactory closed 6 years ago

noizfactory commented 6 years ago

Hi @jonahfriedman and crypto team,

I have a bit of a situation here on a show where we are stuck with one of the earliest versions of the cryptomatte shader (this is even pre beta-1 when Anders had first integrated the crypto shaders). This show was one of the first shows we moved to Arnold 5 back then so we can't really change anything right now.

However, for some reasons, we have to now add user cryptos into our scenes and while the user crypto renders look alright when viewed in Nuke, the header does not seem to contain any data in the manifest. Its just an empty dictionary. If I render the same scene with alShaders-beta4, I see the user data in the manifest. Upon inspecting the source code, it seems that the newer versions have the bew add_override_udata_to_manifest() function in the cryptomatte.h file and that gets called in the add_obj_to_manifest function. So now I'm trying to backwards port this into our old alShaders crypto but even after adding the relevant functions and changing the function calls in the cryptomatte.cpp file, I do not see any data in the manifest (there are no errors either).

Is there additional stuff I'm missing that I need to add to the old shader cpp file to get the user manifest working? This is a bit of an urgent situation for us so would appreciate any pointers.

Cheers, Sachin

jonahfriedman commented 6 years ago

Hi Sachin @noizfactory,

Unfortunately I don't think so, if I recall correctly that function was added by splitting out code from another function.

Perhaps it would help you to look over the release notes, found here: https://github.com/Psyop/CryptomatteArnold/blob/master/CHANGELOG.md. Beta 2 fixed the metadata for custom Cryptomattes. I don't know if that helps you or not.

I don't know what you're trying to preserve from the pre-beta 1 version, but it might be easier to bring the string processing code forward than to to bring the initialization code backwards.

noizfactory commented 6 years ago

Hi Jonah,

Thanks for the suggestion! I had jumped straight to beta4 and I saw some differences in the crypto results so I did not want to move this legacy show to the new version. But I tried beta2 last night and it seems to match with our older cryptos as well as fixes the empty metadata issue for our custom user cryptos.

Thanks much!

jonahfriedman commented 6 years ago

Glad to hear it!