Power Masker

5 votes
Date Updated: 

The 3dsmax UI only allows you to set material effects ID up to 16 channels. The VRayMtl allows you to go beyond this using the effects ID override but other types of materials don't have any UI to adjust this. This tool using a backdoor into 3dsmax to set the effects ID beyond the 16 limit imposed by the UI.

This means you can create masks for every material in your scene. Using this tool you can either assign effects IDs by hand or just press to automatically create them and their mask render elements.

You can also make a Vray Multi-matte mask for each layer in the scene too, this uses the include/exclude lists rather than the GBuffferIds, so that you can therefore use the GBuffer IDs for doing variation with texture maps or mask objects individually if you want to.

Additional Info: 

Bug found with VRay that made some of the mask render white. Put work-around in the script, don't worry that the layer masks say their ID is 10000.

dwpowermasker.mcr8 KB


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Richard7666's picture

Max 2020

hi Dave,
Seems to not be working on Max 2020

Getting this error:

--Unknown property: "StringStream" in dotNetObject:Autodesk.max.__Global

any ideas?

DaveWortley's picture

Reset to 0 Bug

Found the issue with the Reset to 0. Thanks for reporting.

DaveWortley's picture

Multi-Subs and VrayBlends

Sorry for late reply but if you are generating MMEs for materials inside an Multi-Sub material of Vray Blend mtl, you cannot get an MME for this material as well. I'd suggest using object masks to get around this. Bug Vlado to see if he can change that! ;)

MaximuM's picture

Same thing here

The script works fine for me with VRayBlend and Multi-sub object materials, but at sub level only, not for the main material (with the larger .mcr file).

obaida's picture


for making this script , but if you can make it apply at sub level materials like (multi/sub-object , vrayblend) will be more handy.
thanks in advanced

alessandrod84's picture

All to zero problem

Hi, first of all really thanks for this script i really need it.
Just one thing if i use the All to zero option it do not function with the main material of multisub and vrayblend.

Is my fault or a little bug?

Thanks Again.

MaximuM's picture

Thank you

Thank you Dave,

Your script now works the way I expected, but not with Multiscatter objects which have a Multi-Subobject Material on it. And this is due to Multiscatter creating a temporary layer at rendering time only: so your script can not create the appropriate render element. In this case I think I will rely on another usefull script: Render Mask.

Thank you again for the great work :)

DaveWortley's picture

Test it for me :)

I've added a new version (It's the larger file), see if it works for you.

MaximuM's picture

Thanks ! Why not a switch ?

This is great news Dave, thank you !

I understand what you say and it's true it can quickly become very messy on complex scenes with a lot of Multi/Sub-Object and/or VRayBlendMtl. But as I mainly do exterior visualisations with few materials it should be very acceptable.

So why would'nt you create a simple switch to turn on or off this possibility depending on the user's needs ?

Thanks a lot again !

DaveWortley's picture

I can but....

It's an all or nothing, if you want sub-materials then you get sub-material masks for everything and none for the root materials as 3dsmax/Vray can only give you a gBuffer ID for one material level at a time.

So if you have lots of levels of VRayBlend Materials this could get quite messy!

I've got a version, I'll upload it tomorrow when I've tested it some more.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.