Quick Passes

121 votes
3.05 Beta
Date Updated: 
Author Name: 
Arda Kutlu


Easy rendering of commonly used render passes for compositing.

Quick Passes support Default Scanline, Mental Ray Quicksilver and Vray renderers and Materials.

Quick Passes can render:

- Black-White mattes for selected objects or for reflections over selected objects with any supported renderer, with the options of considering current Displacement Maps, Material Opacities, and Object Opacities.

-Ambient Occlusion of the scene with any supported Renderer, with the options of wireframed AO for selected Objects (For Mr only) and considering current Displacement Bump, opacity (Vray only) maps.

-Reflections on selected objects with any of supported Renderer with the options of considering current Displacement and Bump maps. If there is no light in the scene (default lights) selecting only one geometry object is enough. If there are lights in the scene you have to add them also to the selection. Selected lights not necessarily have to be turned on. You can also blur the reflections with the given spread and sampling values. And turn on or off current Environment Map.

-Shadows on selected objects with any ofsupported Renderer. At least one light and one geometry objectmustselected.Selected lights not necessarily have to beturned on or their cast shadowoptions checked.

-ZDepth with any supported Renderer. (except Quicksilver Renderer). You can select auto and manual scene dimensions. If you select auto, at least one object should be selected. Any geometrical or non geometrical object(s) can be selected. If it is geometrical it considers nearest and farthest vertexes. If there are multiple objects in the scene, select two objects (nearest and farthest) for best results.



Quick Passes dont change your scene settings or materials. Ok, it actually changes them but, puts everything back afterwards. Special Thanks to Ivan Tepavicharov for letting me use his Idea of getting and recalling materials. All Get and Recall functions of Quick Passes based on Ivan's idea.

Just run the script, select the pass you want to render, override the renderer if you want, select the necessary objects and/or lights, hit render.

For matte render you must select at least one geometry object

For AO render you dont have to select anything (if you check Wireframed AO, and usin MR renderer, selected objects will be wireframed.

For Reflection rendering you must select at least one geometry object and one light. If there isnt any light in the scene, only selecting one object is enough

For Shadow rendering you must select at least one geometry object and one light. Selected light dont have to be casting shadows or turned on. In any case light will be turned on and its current shadow type will be used.

It will render the scene using current common properties of the scene.

Feel free use, distribute, alter and impove it. I appreciate if you let me know about your opinions, bug reports, requests or improvements.

Version History


3.05 Beta

-Fix for the 400 mb Dynamic Memory limitation of Vray

3.04 Beta

-BugFix: Re-enabling forgotten "face matte" function with improvements. It is not limited with editable poly and edit poly modifiers. You dont have to be in the Face selection mode. Supports multiple objects. Just select faces in each object that  you want to be rendered

-BugFix: Light support fixes in shadow and reflection passes.

-BugFix: While rendering ZDepth with Auto Dimension feature on, it no longer leaves unnecessary Edit Mesh modifiers on top of the selected objects.

3.0 Beta

- Added ZDepth Pass. With this option, you can quickly render Zdepth passes while keeping opacity and cutout maps, as well as displacement maps. You can enter the far and near plane manually, or use auto mode to make the script calculate the distances automatically according to the selection.

Thanks to Eren Saritas for the idea and technique used in ZDepth pass.

- Added Quicksilver Renderer support. It is a partial support, since due to the limitations of QS renderer, it is limited with basic AO and Matte Passes.

- Vray AO pass method is changed. Now it uses Dirt Map technique instead of Skylighting, which makes it possible to keep Opacity and Cutout maps.


-One version for both Max 2008 and 2009, no idea with 2010, so if anyone try that out on 2010, I would appreciate information about that.

-Added Sub-Object function to the Matte Pass. Now it can render mattes of selected faces.

-Know issue: Matte Sub-Object function currently support only Editable Poly objects and edit poly modifiers. Selections made with editable_meshes, edit mesh modifiers, poly and mesh select modifiers will be ignored.


- Bugfix - qp now overrides network render option when it is off in qp and on in render options.

- Bugfix - If an object is invisible  to camera, it now stays same after rendering AO with "AO on selected objects" option checked.

- Bugfix - if render elements are on now it renders AO pass as it should.

- Bugfixes regarding to the save file option. 


-Several Bug Fixes with save options.

-Added new option to AO Pass. Now it is capable of rendering AO passes only on selected objects.


-matte pass support for AfterBurn

-Daylight System Support


-Added support for Vray Camera. Exposure control, Vignetting and White Balance issues handled (Thanks to birket)

-Regarding to reflection passes, Now it considers the scenes FG, Caustics, GI and Exposure Control settings (if the renderer is not overrided) (Thanks to Iain Banks) 


-Bug Fix => now returns back environment map and exposure control settings (Thanks to Iain Banks)

-Added Reflection Matte option to the Matte section, which allowsrendering black and white mattes of reflections of other objects onselected objects. (Thanks to birket for the idea)

-Added an UNTESTED version of the script for the compatibility with Max 2009 and Vray Sp2

-When rendering with current renderer, and current renderer is Mental Ray, every pass uses the present antialiasing settings


-New UI

-Support for Mental Ray, Scanline and Vray for each pass.

-Network render option

-Override Renderer Option

-Wireframed AO

-Options of Preserving Bump, Displacement and Opacity Maps.


-First Release



Additional Info: 

This is a Macroscript. After you run the script, you can find the
script under customize => customize user interface - category: Tik
Works, and can assign it to a hotkey, menu or quad menu

Version Requirement: 
2008 and above
Other Software Required: 
Vray is not required but supported. (Above 1.5sp)


Comment viewing options

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

Thats a good Idea birket. If

Thats a good Idea birket. If I understand it correctly you want to render a matte pass to seperate object reflections and environment reflections, right? So both making all object reflections on selected objects white and everything else black, or making all objects' reflections black and environment reflections white should work for you.

Let me know If I understood something wrong.

Ill try to implement it to matte section as soon as I can.


birket's picture

Thanks for that. I'll give

Thanks for that. I'll give it some testing.

Another very (VERY) useful feature would be to be able to render a 'reflection matte'. i.e. where an object reflects the environment, it shows white. Where an object reflects another object, it shows black. In this way, *just* the reflections can easily be isolated in post production without resorting to screen layers etc that can knock out any dark areas of reflection and result in poor antialiasing of the reflective component.

Is this something that you could implement?


masquerade's picture

Thanks Chris. That was

Thanks Chris. That was really helpful.

I didnt try but I think both "qmc" s should be replaced with dmc. So I think the line should be


Thanks again for the list.




Admin's picture

Just jumping in here. The

Just jumping in here.

The VRay parameter is actually "moblur_dmc_minSamples" (DMC instead of QMC)

So the line in your script becomes:


FYI, masquerade I've attached a text file with all the VRay renderer properties.

Christopher Grant

vray-renderer-properties.txt 9.61 KB

Christopher Grant
Admin, ScriptSpot.com

masquerade's picture

I unfortunately have no

I unfortunately have no chance to try it with max 2009 or Vray sp2 cause I dont own them. If I have the chance, I will look for that.

The line which throws the error is motion blur subdivision samples of Vray.

there could be some changes on motion blur sampling in Vray 1.5 sp2. Because until that line the script checks for camera properties and depth of field properties of the current Vray renderer (if the current renderer is Vray) If there was a problem related with initializing of Vray it would throw an error with a previous line.

you can try this,

-Assign Vray renderer as the render engine

-open maxscript listener

-write "show renderers.current" and press "Shift+Enter" to execute

-look for the lines starting with moblur.(I also appreciate if you can post me this list)

-check if there is the line ".moblur_qmc_minSamples : integer"

 if that line exists, I dont have any idea how to fix it right now.

if that line doesnt exist, look for a similar one. It may contain also subdivision or subdiv.

-replace the "VrayRR.moblur_qmc_minSamples=renderers.current.moblur_qmc_minSamples" line with "VrayRR.moblur_qmc_minSamples=renderers."The new property"

You can also delete the whole line for good, but that means your passes' motion blur wont match with the scene's if you change the subdivision levels from default.

hope this helps.

birket's picture

I get the following "unknown

I get the following "unknown property" error:


However, I am using Max 2009 64bit with vray 1.5 sp2. Any ideas? Sounds very useful


masquerade's picture

yes you are right.. Ill test

yes you are right.. Ill test that out.

MarTroYx's picture

Yes it does work, but I'm

Yes it does work, but I'm not absolutely sure that it will find the vray renderer with this line thought... maybe you could findstring every element of the RendererClass for the "vray" string, just to make sure it not "vray_1_70" or something like that.


masquerade's picture

replaced the line with local

replaced the line with

local vr=try(RendererClass.classes[(findItem RendererClass.classes vray)]())catch()

now it works

thanks again

masquerade's picture

oh gee.. thanks. I actually

oh gee.. thanks. I actually missed that one. Thanks for pointing me out.

Comment viewing options

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