Arnold 5 Cryptomatte and Cryptomatte 1.2.0 Beta

1,468 views
Skip to first unread message

Jonah Friedman

unread,
Jul 11, 2017, 11:57:28 AM7/11/17
to The Maya-to-Arnold plugin, The Houdini-to-Arnold plugin, C4DtoA, The Softimage-to-Arnold plugin, alshaders
Inline image 1

We’re thrilled to announce the beta release of Cryptomatte for Arnold 5, as well as version 1.2.0-Beta of the Cryptomatte specification, and reference Nuke implementation.

Arnold 5: (AlShaders2): https://github.com/anderslanglands/alShaders2/releases
Nuke and Fusion: https://github.com/Psyop/Cryptomatte

Arnold 5 Cryptomatte

Cryptomatte for Arnold 5 is being released as part of AlShaders, as before, but is now a standalone node.  Arnold 5.0.1 adds support for “AOV shaders”, which allow code to run on all materials in a scene, without manually connecting passthrough nodes.  This improves the workflow in numerous ways.  Using a central AOV shader node gives easy access to global Cryptomatte settings (on the one central Cryptomatte node).  It is now also much easier for a studio to create a customized version of Cryptomatte, since the code does not need to be embedded in a surface shader.  In addition to adopting the AOV shader methodology, we’ve added other features as well, such as sidecar manifests that work with deferred-loaded stand-ins, and “integer offsets” for modifying names.

Arnold 5 Documentation: Cryptomatte documentationMtoAC4dtoA

Nuke

The big new features in the Nuke plugin are support for sidecar manifests, and a new “Encryptomatte” gizmo.  Although sidecar manifests were already in the specification, there was no implementation for them in the plugins.  The sidecar manifests are UTF-8-encoded json.

The Encryptomatte gizmo provides Nuke users with the ability to generate Cryptomattes from scratch, or composite new mattes into an existing set of Cryptomatte channels.  For example, given a set of conventional roto mattes, Encryptomatte can be used to consolidate the mattes into the more compact Cryptomatte encoding.  This could be useful, for example, when handing off mattes between comps, or between compositing packages.  Our hope is that this will open up Cryptomatte to a wider set of users not working exclusively with rendered images.  In the event that Cryptomatte support gets added to color-correction tools, we think the technology could significantly streamline the handoff of mattes between VFX and DI.

Cryptomatte news

The 1.2.0 release includes several important updates and clarifications to the specification -- many of which were driven by the recent addition of Cryptomatte support for VRay.  Most notably, we have clarified that hashes should be computed based on the UTF-8 encoding of a given Unicode string.  UTF-8 provides backwards-compatibility with ascii-based hashes, but also allows hashing non-ascii characters.  We have added some step-by-step examples to the specification to help with validation and debugging for those implementing Cryptomatte hashes.

This is a beta release, both for AlShaders and Nuke. We feel pretty good about it but it hasn’t seen a lot of production testing yet, so we definitely appreciate any help here. Existing comps and older Cryptomattes will continue to work with the 1.2.0 upgrade, and the new Nuke plugins are not required to use Arnold 5 Cryptomattes (with the exception of sidecar manifests).

Thanks to everyone in the community who has contributed, and also the support from Solid Angle, Chaos Group, and Isotropix.  As always: we hope you never manually make a matte again!

Jonah, Andy and Psyop

-- 

JONAH FRIEDMAN


psyop_logo_signature.png


PSYOP

NYC | LA

OFFICE: +1 (212) 533-9055

MOBILE: +1 (347) 873-3992

45 HOWARD ST, 5TH FLOOR, NEW YORK NY 10013

b-facebook-128.png   b-twitter-128.png   b-instagram-128.png

Jonah Friedman

unread,
Jul 11, 2017, 12:21:00 PM7/11/17
to C4DtoA, The Houdini-to-Arnold plugin, The Maya-to-Arnold plugin, The Softimage-to-Arnold plugin, alshaders
Yes, the new Cryptomattes will also work in Fusion (by Cédric Duriau and Grid), same as the old ones. (Sidecar manifests are not supported yet though). 

Also I really wanted the logo at the head there. Not sure what went wrong but here it is :)

Inline image 1




On Tue, Jul 11, 2017 at 12:15 PM, Tobias Steiner <tob...@framehaus.net> wrote:
Great news! Assuming this will work in Fusion?

Sent from TypeApp

--
You received this message because you are subscribed to the Google Groups "C4DtoA" group.
To unsubscribe from this group and stop receiving emails from it, send an email to c4dtoa+unsubscribe@solidangle.com.

Mark Wallman

unread,
Jul 11, 2017, 2:29:15 PM7/11/17
to mt...@solidangle.com, C4DtoA, The Houdini-to-Arnold plugin, The Softimage-to-Arnold plugin, alshaders
Hi Jonah

Thanks.  Unfortunately It does not seem to work in Nuke.   I have made two screengrabs for you.  I cannot get a matte out of it.  Im using Windows 10 Nuke 10.5v4 with the GPU for the viewer turned off.

Best

MarkInline images 2Inline images 1

--
You received this message because you are subscribed to the Google Groups "MtoA" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mtoa+unsubscribe@solidangle.com.



--
"Sometimes it's the people no one imagines anything of who do the things that no one can imagine" The Imitation Game

Mark Wallman
Senior VFX artist

Jonah Friedman

unread,
Jul 11, 2017, 2:39:39 PM7/11/17
to Mark Wallman, mt...@solidangle.com, C4DtoA, The Houdini-to-Arnold plugin, The Softimage-to-Arnold plugin, alshaders
Looks like that's a mistake on our part, not realizing that PyYAML was a dependency. For the moment you can make it work by installing PyYAML.

We'll consider how best to fix this. Thanks for reporting. 

To unsubscribe from this group and stop receiving emails from it, send an email to mtoa+uns...@solidangle.com.



--
"Sometimes it's the people no one imagines anything of who do the things that no one can imagine" The Imitation Game

Mark Wallman
Senior VFX artist

--
You received this message because you are subscribed to the Google Groups "alshaders" group.
To unsubscribe from this group and stop receiving emails from it, send an email to alshaders+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Jonah Friedman

unread,
Jul 11, 2017, 8:15:47 PM7/11/17
to Mark Wallman, mt...@solidangle.com, C4DtoA, The Houdini-to-Arnold plugin, The Softimage-to-Arnold plugin, alshaders
The issue with YAML is fixed (no more dependency on it) in a new version (1.2.0-beta2), if you would like to re-download the Nuke plugins. 

Mark Wallman

unread,
Jul 12, 2017, 2:30:36 AM7/12/17
to Jonah Friedman, si...@solidangle.com, mt...@solidangle.com, alshaders, The Houdini-to-Arnold plugin, C4DtoA
Wow   that was fixed superfast.  Thanks for that. Best mark

Kevin Tsui

unread,
Jul 13, 2017, 4:16:15 AM7/13/17
to alshaders, mt...@solidangle.com, ht...@solidangle.com, c4d...@solidangle.com, si...@solidangle.com
Awesome,I just try it and everything worked perfectly both in maya and katana,great job!

在 2017年7月11日星期二 UTC+8下午11:57:28,Jonah Friedman写道:

Sergio LoDolce

unread,
Jul 23, 2017, 3:01:44 AM7/23/17
to alshaders, mt...@solidangle.com, ht...@solidangle.com, c4d...@solidangle.com, si...@solidangle.com
Having some issues with Houdini implementation.

Had it working with Arnold 4.2 using the passthrough for each Shader Network I wanted to include into cryptomatte.

For Arnold 5 I'm going off this guide: https://support.solidangle.com/display/A5AFHUG/Cryptomatte

It looks like we now have to create a new Shader Network dedicated to outputting AOVs? As seen below?

And then we need to take that Shader Network and plug it into the AOV Shaders input on the ROP?


For this test I have three different Shader Networks for three different objects. I'd like to have them all use Cryptomatte. Right now they're all coming out as one object.






How do I separate them out?

Frederic Servant

unread,
Jul 24, 2017, 3:46:39 PM7/24/17
to Sergio LoDolce, alshaders, The Maya-to-Arnold plugin, The Houdini-to-Arnold plugin, c4d...@solidangle.com, The Softimage-to-Arnold plugin
Hi Sergio,

Is this the crypto_asset AOV? The current implementation of cryptomatte does not seem to handle HtoA names very well and cannot infer the asset from the object name. I've already notified Jonah about that.

A workaround is to create a "crypto_asset" string attribute on the geometry to override the automatic asset detection. Materials and object IDs should just work out of the box though.

Cheers,
--
Fred

--

Sergio LoDolce

unread,
Jul 24, 2017, 6:53:08 PM7/24/17
to alshaders, sergio....@gmail.com, mt...@solidangle.com, ht...@solidangle.com, c4d...@solidangle.com, si...@solidangle.com
Hey Frederic,

I believe I'm just working with materials at the moment. Do you mean adding an attribute to each object with a crypto_asset string like this?


I'm attaching the file as it might make things easier. Not sure how to migrate from the previous workflow of putting cryptomatte passthroughs between the Standard Surface and OUT_material to the current workflow. It's this part in particular that I find a little confusing, especially since it's not showing the parameters


Thanks,

Sergio



To unsubscribe from this group and stop receiving emails from it, send an email to alshaders+...@googlegroups.com.
arnold_cryptomatte_test_7_23_2017.hiplc

Frederic Servant

unread,
Jul 24, 2017, 7:23:58 PM7/24/17
to Sergio LoDolce, alshaders, The Maya-to-Arnold plugin, The Houdini-to-Arnold plugin, c4d...@solidangle.com, The Softimage-to-Arnold plugin
Hi Sergio,

crypto_material works for me, but strangely crypto_object does not. I had previously tried with instances only. 

Here's my test scene.



To unsubscribe from this group and stop receiving emails from it, send an email to alshaders+unsubscribe@googlegroups.com.
cryptomatte_v2.hip.zip

Mayur Bhosle

unread,
Aug 10, 2017, 4:40:51 AM8/10/17
to alshaders, mt...@solidangle.com, ht...@solidangle.com, c4d...@solidangle.com, si...@solidangle.com

I am not able to extract matte info using cryptomatte node in Nuke 10.5v2,  i believe i have missed something while installing crypto nuke plugins or maybe i am missing something here and unaware of it..
What am i suppose to do when i already have init.py and menu.py in nuke directory.
I have edited the init.py and menu.py manually adding 
{import cryptomatte_utilities
cryptomatte_utilities.setup_cryptomatte_ui()}
Somehow nuke opens but cryptomatte but doesn't give any result
I downloaded and tried using the bunny_Object_Crypto.exr as well.

Jonah Friedman

unread,
Aug 10, 2017, 10:31:15 AM8/10/17
to Mayur Bhosle, alshaders, The Maya-to-Arnold plugin, The Houdini-to-Arnold plugin, C4DtoA, The Softimage-to-Arnold plugin
I take it you were following the instructions from here: https://github.com/Psyop/Cryptomatte#nuke-installation, for how to install it if you're a single user. From your description you've added: 

import cryptomatte_utilities
cryptomatte_utilities.setup_cryptomatte_ui()

To both init.py and menu.py. That's only for menu.py, the code for init.py is different. 

If that doesn't fix your issue, please check your console for any error messages when trying to use it and make sure you've copied all the files correctly. 


--
You received this message because you are subscribed to the Google Groups "alshaders" group.
To unsubscribe from this group and stop receiving emails from it, send an email to alshaders+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

karas

unread,
Aug 11, 2017, 6:07:41 AM8/11/17
to alshaders, mt...@solidangle.com, ht...@solidangle.com, c4d...@solidangle.com, si...@solidangle.com
crypto_object and crypto_material is work fine but how to define the name for "crypto_asset"?


在 2017年7月11日星期二 UTC+8下午11:57:28,Jonah Friedman写道:
Inline image 1

Jonah Friedman

unread,
Aug 11, 2017, 11:13:01 AM8/11/17
to karas, alshaders, The Maya-to-Arnold plugin, The Houdini-to-Arnold plugin, C4DtoA, The Softimage-to-Arnold plugin
On Fri, Aug 11, 2017 at 6:07 AM, karas <karas...@gmail.com> wrote:
crypto_object and crypto_material is work fine but how to define the name for "crypto_asset"?

Hi Karas, 

In Maya and Softimage this will use the namespace, otherwise you need to create string user data called "crypto_asset". (I don't know which DCC you use, please consult your *toA docs on how to create user data). 

Docs on the various override mechanisms: https://github.com/anderslanglands/alShaders2/wiki

On Thu, Aug 10, 2017 at 6:52 PM, Martin Kindl <Mar...@altvfx.com> wrote:

Hi Jonah.
sorry for bothering here.
Any chance someone is looking into override/custom crypto bug i reported in HtoA?
This holds us from using Arnold5 in production.

Martin

For everyone else, Martin's issue is that when he does string-per-polygon user data to make a single mesh separable as separate meshes, those strings don't end up in the manifest but otherwise work properly. There are a few other issues I'm aware of as well, which is to be expected, this is a beta. If anyone else finds any please don't hesitate to report them (preferably on the AlShaders2 github, with reproductions). 

There's no reason for this to hold you back from using Arnold 5. Cryptomattes work perfectly without the manifest, with the exception of compositors seeing numbers instead of names. 

I'm thinking about how best to support workflows like this, but I don't think string user data per polygon is a good answer and I can't recommend it. Even a short string per polygon can easily dwarf the rest of the mesh in size on disk in an ass file, and I have no idea what it's doing in memory. Even if Arnold de-duplicates strings, de-duplication is work too. We're considering other solutions that I think will be much better, but I can't say when that will be available. There was a recent bug fixed regarding metadata, but that will not cause per-primitive string user data to end up in the manifest so it won't fix your issue.

Please be patient Martin. However again, compositors having to see numbers instead of names should not hold you back from using Arnold 5. 



karas

unread,
Aug 11, 2017, 11:42:15 AM8/11/17
to alshaders, karas...@gmail.com, mt...@solidangle.com, ht...@solidangle.com, c4d...@solidangle.com, si...@solidangle.com
在 2017年8月11日星期五 UTC+8下午11:13:01,Jonah Friedman写道:
> On Fri, Aug 11, 2017 at 6:07 AM, karas <karas...@gmail.com> wrote:
>
> crypto_object and crypto_material is work fine but how to define the name for "crypto_asset"?
>
>
>
>
>
>
> Hi Karas, 
>
>
> In Maya and Softimage this will use the namespace, otherwise you need to create string user data called "crypto_asset". (I don't know which DCC you use, please consult your *toA docs on how to create user data). 
>
>
> Docs on the various override mechanisms: https://github.com/anderslanglands/alShaders2/wiki
>
>
> On Thu, Aug 10, 2017 at 6:52 PM, Martin Kindl <Mar...@altvfx.com> wrote:
>
>

Hi Jonah,I'm use maya and i make it work by using string user data,everything is fine now ,but seems cryptomatte is not support aiStandard Volume yet? I've tried render vdb or render geo as volume,not work.
Thanks!

Jonah Friedman

unread,
Aug 11, 2017, 11:46:42 AM8/11/17
to karas, alshaders, The Maya-to-Arnold plugin, The Houdini-to-Arnold plugin, C4DtoA, The Softimage-to-Arnold plugin
Glad to hear it. 

We can't support volumes yet, Arnold doesn't support writing custom AOVs or AOV shaders on volumes yet.  

--
You received this message because you are subscribed to the Google Groups "alshaders" group.
To unsubscribe from this group and stop receiving emails from it, send an email to alshaders+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Sergio LoDolce

unread,
Aug 20, 2017, 7:15:22 PM8/20/17
to Jonah Friedman, karas, alshaders, The Maya-to-Arnold plugin, The Houdini-to-Arnold plugin, C4DtoA, The Softimage-to-Arnold plugin
Hey guys,

Working in Houdini I have an object, an eye, with transparency on the cornea. Motion blur and depth of field seem to work fine but transparency isn't coming through:

Inline image 1


Inline image 2

Is there anything else I need to be adding into Houdini to make the transparency work?

Thanks,
Sergio




You received this message because you are subscribed to a topic in the Google Groups "alshaders" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/alshaders/-kbIvHSeIAg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to alshaders+unsubscribe@googlegroups.com.

Tino

unread,
Aug 21, 2017, 1:45:18 AM8/21/17
to alsh...@googlegroups.com

cryptomatte isn't supporting this ... i had some brainstorming with them and our shader programmer ... it's quite complictaed to implement and would cost quite some extra rendertime

so i wouldn't wait for  it to come


Am 21.08.17 um 01:14 schrieb Sergio LoDolce:
To unsubscribe from this group and stop receiving emails from it, send an email to alshaders+...@googlegroups.com.

Ilyas DIZDAR

unread,
Aug 22, 2017, 4:21:18 AM8/22/17
to alshaders, mt...@solidangle.com, ht...@solidangle.com, c4d...@solidangle.com, si...@solidangle.com
Hi ! 

Does it mean that support of refraction is on the roadmap of Cryptomatte or it will never comes ?
I think is the last bing thing to reach for cryptomatte with the support of volumes.

Jonah Friedman

unread,
Aug 23, 2017, 11:16:18 AM8/23/17
to Ilyas DIZDAR, alshaders, The Maya-to-Arnold plugin, The Houdini-to-Arnold plugin, C4DtoA, The Softimage-to-Arnold plugin
Transparent (opacity, not refraction) Cryptomattes work just fine. Refracted Cryptomattes, if we had a roadmap, would be somewhere on it but I'm not sure where :)

In any case, it isn't easy. Right now we need to transmit one piece of information from the shader to our filter, the ID. Coverage is computed based on opacity and subpixel coordinates. For refraction, we would need to transmit multiple pieces of information for each AA sample - the ID and sub-coverage for everything refraction rays hit. AOV shaders run on all samples, not just AA samples, so I think we do have the opportunity to create this data for the refracting shader to then collect up, and we may or may not have all the other information we need available, like the weight of the refraction sample. 

Other things we want to do require some of this functionality anyway, so maybe not that far out. Obviously, no promises. 



--
You received this message because you are subscribed to the Google Groups "alshaders" group.
To unsubscribe from this group and stop receiving emails from it, send an email to alshaders+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ilyas DIZDAR

unread,
Aug 25, 2017, 9:12:24 AM8/25/17
to alshaders, dizdar...@gmail.com, mt...@solidangle.com, ht...@solidangle.com, c4d...@solidangle.com, si...@solidangle.com
Thanks for the answer Jonah !

UDIT GUPTA

unread,
Jan 26, 2018, 4:24:26 AM1/26/18
to alshaders
Hi, I've been trying to make crypto_asset work using aiUserDataString. Can you please post a screenshot or a sample maya scene file on how exactly to use crypto_asset.

Jonah Friedman

unread,
Jan 26, 2018, 10:28:48 AM1/26/18
to UDIT GUPTA, alshaders
Hi Udit,

I assume based on the name of the shader you're referencing that you're using Maya. You don't actuall need the AiUserDataString shader at all, and plugging it into any port of Cryptomatte can break things, so first:

1. Delete aiUserDataString and reset whatever you plugged it into to default
2. Create user data called "crypto_asset" on the shapes you want to set - instructions for that are here: https://support.solidangle.com/display/A5AFMUG/Ai+User+Data+String. It'll involve making an attribute called mtoa_constant_crypto_asset.

And that's it, whatever you set the user data on your shapes to will be the name in crypto_asset. 



--
You received this message because you are subscribed to the Google Groups "alshaders" group.
To unsubscribe from this group and stop receiving emails from it, send an email to alshaders+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

pramod...@graphicaroma.com

unread,
Dec 27, 2018, 8:52:14 AM12/27/18
to alshaders
Hello People,
Can you please help me how to Install Cryptomatt for Arnold 5.0.2.3. 
I tried copying the file from the beta version (alShaders-win-2.0.0b4-ai5.0.1.0) to Arnold dir. But it's not showing in Arnold Aovs.
Also, I have downloaded 
https://github.com/Psyop/CryptomatteArnold
and install document file instructed to copy or set path from Cryptomatte  Bin and Ae Directory to Mota Directory. But there is no such folder called "Bin" and "Ae" in CryptomatteArnold-master folder which I downloaded from above path. 
Can you please help me with it. Thanks with Season Greetings!
..
Pramod 

Daniel Wong

unread,
Dec 27, 2018, 11:09:03 PM12/27/18
to alsh...@googlegroups.com

Hi Pramod,

The "Bin" and "Ae" folder should be generated automatically when compiling the code. Are you using the binary release?

https://github.com/Psyop/CryptomatteArnold/releases/tag/1.1.0

Cheers, 
Daniel

FATface Post-Production Limited
http://fatface.hk
--
You received this message because you are subscribed to the Google Groups "alshaders" group.
To unsubscribe from this group and stop receiving emails from it, send an email to alshaders+...@googlegroups.com.

Pramod Nirwan

unread,
Dec 28, 2018, 4:57:13 AM12/28/18
to Daniel Wong, alsh...@googlegroups.com
Hey Daniel,
You are the champ bro. It's working like a charm you made my day. Wish happy new year ahead.!  and of course beer on me :D

Daniel Wong

unread,
Dec 28, 2018, 6:54:47 AM12/28/18
to Pramod Nirwan, alsh...@googlegroups.com

You're welcomed Pramod. ;)

Cheers, 
Daniel

FATface Post-Production Limited
http://fatface.hk
Reply all
Reply to author
Forward
0 new messages