Multi Matte in Maya using Vray by Mauricio Ricaldi

One tool that is very useful in light and comp pipeline is creating mattes for diverse tasks later in comp, sometimes there is a need to do specific mattes for certain objects or do a lot of mattes at once.

One tool we build with my friend and now sup in Bardel (Mike Tran), was the multi-matte to manage in a fast way this task. It began as a contest who can make the best matte tool for Vray and at the end we fusion both in this one :)

This tool will work using Vray render engine only.


There are diverse ways to generate mattes with this tool, but all will at the end create passes in the layer that you are with the names "Multi_Matte_A" (A-B-C to H) depending the amount of objects you select.

 you need to position in to a render layer to build the passes inside

you need to position in to a render layer to build the passes inside


Auto MultiMatte is the automatic button, just select a bunch of objects or groups, for "each" selection will create a pass to the total of 24 passes. so maximum of 24 objects.

Take in mind that ObjectID is used to tag the proper pass later on, but is parent-child hierarchy driven, so if there an object or a group that has already assigned an ObjectID on top of your selection, that object rules.

Sometimes this could create a mess specially if you didn't model/layout your sets, the next button "remove ObjectID form Geo" will remove it or set to "0", if don't work you will need to remove it manually (reference files do this).


The next tab is to manually assign mattes to objects, to passes from A to H, is very straightforward, select the object or objects  then select the pass name you want to assign it and color. done.

The pass will be created automatically if is not present.

Finally the grid matte


Is for fast assign mattes to objects, just select the objects and press any color of the pass you want to be assigned, for simplicity there is A-B-C Multi_Matte passes.

This tool was very useful in the pipeline of some shows I work on last year.

MultiMatteTool for Vray

(this is a Python script)






Maya scripting 101 by Mauricio Ricaldi

One useful skill to learn in Maya is doing some basic script, it makes repetitive task easier.

Maya has two script languages to work, one is MEL that is the easier one for small tasks and short scripts, this is because you can copy/paste the command from the script editor. The other one is Python that is very similar to MEL, but you can build more complicated tools with it. But don't think MEL is less powerfull, a lot of tools I made was using mel first and then translated to pyhton, and some tools is works better in mel.

As example, we have this scene that have a x number of globes, and we need to select them several times for different tasks.

We open the script editor and make any change to the mesh:

copy/paste this to a MEL window below and it will select that object again.

We need to select all balloons at once, so we enclose the object in "quotes" and add * to any number that we find.

select -r "KJN*Anim_BD:KJN_JungleC_EXT_Auditorium_SD:KJN_BalloonA*:Balloon_Geo" ;

Now we have all selected, we can create a loop to change settings to all of them at once, we need first to store in a container called array, this will be $allObjs[]  and 'ls-sl' will fill the array with the selection.

string $allObjs[] = `ls-sl`;

The next thing is to do a loop, for this we add a variable called $x that will go to each object one by one till runs to the end of the selection that is defined by the size($allObjs).

for($x=0;$x<size($allObjs);$x++) {

As example I'm changing all the object to hold-out, the easier way is change one ballon and check the script editor.

check the last world that the attribute is called ".holdOut", so we need to do this to all the objects.

setAttr ($allObjs[$x] +".holdOut") 1;

setAttr is the command to change things in maya,  we add $allObj[$x] so $x will run from the first object to the last in a loop and then +".holdOut" 1 will change that attribute while looping.

At the end the entire script is:

select -r "KJN*Anim_BD:KJN_JungleC_EXT_Auditorium_SD:KJN_BalloonA*:Balloon_Geo" ;
string $allObjs[] = `ls-sl`;
for($x=0;$x<size($allObjs);$x++) {
 setAttr ($allObjs[$x] +".holdOut") 1;

You can change thie ".holdOut" with any other attribute like ".castsShadows", ".primaryVisibility", ".image" etc.

Vray Lights to render elements by Mauricio Ricaldi

Control lights is one of the most important thing to do when you light a scene, but also if you separate each light in a different pass or render element is very useful to comp it later and tweak anything without re-rendering all again.

To address this in Vray, we can render each light as separate pass, we need to create an render layer and add the lights and set, geometry, etc.

 create a new render layer.

create a new render layer.

As example I have a simple scene that I added five lights.

To have more flexibility in comp I want all the lights in different passes and not all in one RGB like this render:

There is a manual way to do this, assigning each light to a render element and link it, but it takes a lot of time and if you have a bunch of scenes to light, the practical way is to do it with a script.

 Phyton script is available at the end of the page :)

Phyton script is available at the end of the page :)

This small script will do the job, you need to place in the render layer (this example city_SET) and add all the lights, run the script, if you need the specular pass there is that option too. 

The script will create for each light a render element:

Now we render and will have all the passes:

From here we can comp in Nuke and add any light effect, color.

 RGB render

RGB render

Using the light passes to give some mood and color to the scene .

This way we make candles, torches,  interiors and even characters, and have key lights, fill, rims, etc.. Is a better way to iluminate and has the flexibility to make changes in comp later.

Vray render elements documentation:

There is a tutorial for doing this in 3DsMax here.