Batch Camera Render

270 votes
Date Updated: 
Author Name: 
Sergo Pogosyan

This script aims to replace standard 3dsmax's Batch Render and imitates Houdini Output Node workflow. Using it you can specify rendering parameters - frame size, frame number, output path - directly to camera object, so every camera in scene 'knows' what it intended to render. Additional functionality is Lighting Assignment - you can specify which light will be turn on or off for selected camera during the rendering.


  • CoronaSun supported inside Daylight System


  • Don't Save Render Elements Checkbox (Thanks to antomor)
  • Limited support for camera objects in xref scene files (Only root objects in first level xrefs. Cameras in nested xrefs not supported)

1.13 Bugfix:

  • Deadline submission should work now

1.12 New Feature:

  • Deadline support.
    Very basic imlementation, it allows you to submit your jobs on a deadline server. Enter deadline repository address and check "Use Deadline" checkbox. Other checkbox doesn't matter in this case ("Net render", "Show Submit Dialog").
    Probably it requires Deadline 3ds max Submitter installed. I didn't have a chance to check it on a clean machine.

1.11 Features and fixes:

  • State sets support added
  • "projectname" keyword added which resolves to project's folder name
  • other fixes and improvements

1.10.3b Fixes:

  • Crash when vray ir/lcache maps are set to auto-save
  • Region render was not set properly during the rendering

This is major update of the script, so it may not be as stable as before. Backup scenes or cameras at least before running this version. More information can be found here - 1.10b Multiple presets for each camera

Previous updates:

1.10.2b Fixes:

  • Problems with render elements paths
  • Copy/paste of render region settings
  • Properly convert render region values when change resolution

New features:

  • Multiple presets for each camera
  • New keyword %presetname% to support multiple presets
  • Distributed rendering checkbox added to vray common settings
  • Bugfix - Net render not starting after cancelling during local rendering.
  • Improved performance with scenes with lots of cameras
  • Added support of Vray RT as a production renderer
  • Added support of using MFRender script to render scenes through BatchCamera script.
  • Bugfix - Error was popping up sometimes during drag-n-drop
  • Bugfix - Render elements didn't render in certain conditions
  • Bugfix - Pre-render/post-render scripts didn't work on network rendering
  • Bugfix - Select All and Toggle All buttons didn't work properly

Here are some details:

Script's website -

Github -

2015 Updates

  • Region render parameter can be specified for each camera
  • Set Viewport button sets viewport camera and resolution and aspect as well
  • It is possible now to specify backburner servers and server groups for silent rendering submit (code editing required)
  • Vray Elements fixed for Vray 3 and Vray output saving with VFB color correction
  • Cancelling of rendering of multiple cameras at once,
  • Hierarchical ini files

2013 Updates

  • Drag-n-drop of cameras in list
  • Camera list window size can be changed (script restart required)
  • When committing region render it is possible to switch to view render without restarting the render
  • Keyword syntax can be used in Scene State names - thanks to Stefan Runevik for suggestion

2011 Updates

  • Preview button added - renders only current frame without saving anything - no images, no vray maps, no scripts running, no elements.
  • Ortho mode added to Vray rollout - it turns any camera to orthographic, including Vray Physical camera.
  • Copy/Paste from one camera to one/several cameras - use new buttons at the top of the window.
  • Submit Scripts section - you can assign script files that will run on each render submit. Per Submit script runs once per render submit and Per Camera script runs for each camera before submit. All these scripts run on local machine, not on render server.
  • Last Rendered Location field - here is stored last render file location. Very useful for locating last-time rendered images.
Additional Info: 


Run this script with Maxscript -> Run Script command from any folder on your hard drive, then go to the *'Customize User Interface' -> 'Toolbars'*, browse to category 'Sergo Pogosyan' and add 'Render scene cameras...' button to the toolbar or to the menu.


When you start this script it iterate over all cameras in scene and list them in the dialog box. To each of these cameras you can assign frame resolution, number of frames to render including nonsequential frames, output file location and lighting setup. All these properties can be changed for one or several selected cameras. Output file location is split to folder path and file name, so you can specify new folder for all selected cameras in scene. 'Lighting assignement' section contains three list: Solo light list contains lights that will be only lights turned on during the rendering, 'Forced On' and 'Forced Off' lights are turned on or off respectively during the rendering. After all these setting will be set up (if some properties is not set value from the Render Setup will be used), check the camera(s) in the list and hit Render button. Check Net Render checkbox to submit network render job.

Supported lights: All bundled 3ds max lights, all Vray Lights
Supported cameras: All bundled 3ds max cameras, Vray PhysicalCamera

Version Requirement: 
3ds max 2008-2019
batchcamerarender_1.15.ms245.66 KB
batchcamerarender_1.16.ms245.73 KB


Comment viewing options

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

Thanks for the informations

Thanks for the informations and your reactivity!

1.the options with %scenefolder% and %projectfolder% are not usable in my case. The only solution will be usable is %up%. I have trying but it don't work. I use this:

Render Elements Folder/Subfolder:

and the main path is like that:

2. great!

3. i'am using 3ds max 2016 SP3. I can assign the servers who don't rendering images by the backburner monitor interface, but i don't understand for wich reason they don't do the job when i unchecked "show submit dialog".

4. is it possible to desactivate a render element pass for one camera and let's it activate for the other cameras?

Thanks Sergo

sergo's picture

Probable solutions...


1. If I get your case right I think you can put folders to the root of the project by using %up% keyword in elements path. That keyword moves path one folder up.
Other option is to use %scenefolder% keyword in both paths, which forces them to start from the scene folder.
And there's also %projectfolder%, if you are using max's project folder.

2. You can resize the camera list with parameter "Listview Height" in Options rollout. It doesn't resize immediately, you need to restart the script.

3. Never came across that kind of thing. Which version of max you're using?

nobo's picture

Hi Sergo, Thanks for the bug

Hi Sergo,
Thanks for the bug fix, it's ok for me!
I'd like to mention 3 differents points:

1- just a suggestion: it will be interesting to put the files pass of render element in a folder located in the root of the project like this:
my project/camera_01_main_pass
my project/camera_01_matte

At the moment, the render elements pass are located in the camera_01_main_pass.
For big projects it's not easy to have everything in the same folder.

2- another suggestion:
it will be useful to be able to resize the camera manager setting where the camera list appears.
with many cameras, the scroll bar is not useful.

3- Last thing:
When i send a net render with "show submit dialog" unchecked, i have some kind of bug. Several servers don't render the images, it's like if this machine don't see the request. The backburner server is active, obviously. If i check "show submit dialog", it works but then it become tedious.
Have you got an idea to solve this problem?


sergo's picture

Good suggestions, thanks.

Good suggestions, thanks. Will definitely add them to top of todo list.

hippiearchitect's picture

Two Suggestions / Requests

Hey Sergo, I cannot stop singing the praises of this sctipt. However I have two suggestions / requests:
1. Ability to organize cameras by name alphabetical order, or frames, or resolution, or aspect (basically the tabs under camera manager settings).
2. When clicking "Set Viewport" the aspect ratio of the safe frame updates to the settings of the camera, could the scene states also update? I use several scene states and usually link them to cameras so when switching cameras if the scene states could update in the viewport as well that would be awesome!

Again Thank you so much for your hard work on this wonderful script.

sergo's picture

bugfix uploaded

That was a bug. I fixed it and uploaded new version.
You can put full path into subfolder or you can put only subfolder name there. In your case that should look like:
main output: \\SERVER\projet\Cam01a_diffuse\
subfolder (slashes are optional here): \matte\

Hope this helps. Thanks for the report!

nobo's picture

Render element

Hi Sergo,
It's a powerful script!!
but I've got a problem with the render element Folder/Subfolder.
when i enter a path in this field a message error appear "unknown property: "baseObject" in "Cam01a"
the main output is like this:
and the subfolder is like this:
I don't understand what i should input in this field
have you got an idea for solve this problem

locb's picture

Multiple presets is work for

Multiple presets is work for me, this script is brilliant.
Now i render 5 cameras with 4 diffrent scene states.
Thank you.

sergo's picture

1.9.22 -> 1.10

Yes, multiple presets per camera seems pretty major change to me :)

fajar's picture

1922 ->1.10 b?

Just little question, is there something behind why after v1.922 it became 1.10b, is there any big change behind it regardless new feature or its just on a whim ?


Comment viewing options

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