Batch Camera Render

272 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.


  • Support for 3ds max 2023 Update fixed


  • Corona and Vray Sun inside Daylight System fixed (thanks to busseynova for reporting)


  • 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-202x
batchcamerarender_1.17.ms245.88 KB
batchcamerarender_1.18.ms245.92 KB


Comment viewing options

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

New version is ready! Major

New version is ready!

Major new feature is netrender job autosubmitting. I was wrong saying that committing netrender jobs
requires exclusive backburner control. So now it is implemented and working with script became much more productive.

Enjoy and let me know how script works!

my scripts and tips/tricks:

sergo's picture

I've found the workaround!

I've found the workaround!

Maxscript gives almost full access to Batch Render functions, so I've decided to change the way this script is submitting render jobs.

Presently it submits jobs in simple cycle through all checked camera, one by one. This is why user should name network jobs one by one. I think it should be better if this script will be something like frontend for the max's standard Batch Render command. Workflow will be something like that - when you hit render button in this script it creates render jobs for the max's Batch Render and submits network rendering through it. So naming network job problem will be gone, since this is what makes max's Batch Render so useful. And light state information could be passed by the dynamically created scene states.

It'll take some time, to implement this algorithm, but I think it makes whole workflow clearer and more familiar to max users. 

Ideas and suggestions are welcome.

my scripts and tips/tricks:

sergo's picture

Hi! This script is a


This script is a macroscript thing, so you can not run it simply from the  MaxScript Listener Run command. It deliberately configured to run from toolbar button or rightclick menu command. And I didn't change anything in this configuration since the very first version. You can run this macroscript by the "Sergo Pogosyan" "BatchCameraRender"command entered to the listener.

About render job autonaming I've written in the description at This is known drawback and I really don't know what to do with it.

Maxscript's netrender interface allows you to name netrender jobs before submitting, BUT you  have to be queue controller to submit render job. As for me to request queuecontrol everytime I submit the render job is more evil restriction then to name each render job manually. Anyway, I should confess that this is a serious drawback, and I'll be thankful if someone shows me the workaround.


my scripts and tips/tricks:

bragibjornson's picture

Odd issue with Batch Camera

Odd issue with Batch Camera Render 1.4, plus one improvement.

The odd thing happening is that the script only works if i make a shortcut button to a toolbar through "Customize/Toolbar/Sergo Pogosyan"

If i try to open the script in the editor and evaluate it, it doesn't run. It does produce the following in the listner "27654"

Also - i have a custom ui interface/dialog bar (similar to rappa tools) that i use, and if i create a button and link it to the path where i saved the 1.4 script, the script will not run (Although the previous versions of it ran just fine)

What changed since earlier versions that would cause this?

One Improvement would be the auto-naming of render jobs to backburner when using the "Net Render" feature.

Currently, I have to name each job being sent. The native batch render in max allows you to specify a generic name, then it tags the generic name with the camera name which is displayed in backburner. For Example:

lets say i want to send a network job to backburner through the batch renderer, I select two cameras: Shot_01 and Shot_02.

In the network job assignment dialogue I type "Test_Frames_" as the Job Name. Batch Renderer then Sends both jobs, using the Job Name + Camera Name, resulting in the following in Backburner.


I suppose that this could be a checkbox, so folks who want to name each job individually could, and lazy folks like myself could just let max figure it out! :)

Many thanks,

sergo's picture

Thank you! my scripts and

Thank you!

my scripts and tips/tricks:

Smola Martin's picture

Robust script and really

Robust script and really save your time for creative.

sergo's picture

Ok, it's not a problem to

Ok, it's not a problem to add this field to the script. Added to TODO list.

Thank you for suggestion!

my scripts and tips/tricks:

bragibjornson's picture

Sergo: This is a great


This is a great script. Wondering if you could make one improvement. I was trying to use this yesterday to submit tests of several animations that are in one file.

It would be great if under the FrameRange Groupbox, there was an option to render "Every Nth Frame" like in the main renderer.

This way - you could have say, five animations in the top matrix, but instead of rendering every frame, you could render only ever say, 24th frame.

Then, when your done with the tests, you can shut off "Every Nth Frame", and render the whole thing.

Anyway - just a thought, thanks again for the script.

Comment viewing options

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