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.
leverkusen's picture

I tried this, but on line

I tried this, but on line 2662: there is no such file path.
how can I fix this? thank you sergo

pressenter's picture

There is only one thing

There is only one thing keeping this script away from perfection: possibility to render from different files, something like: "open 1.max -> Camera01 -> render -> finished -> open 2.max -> camera100 -> render -> finished -> open bla.max -> render -> finished...". Would be really cool.

sergo's picture

Thank you for the

Thank you for the suggestion!

New data structure introduced to make camera data independent from the scene states. Old, "user properties" structure are stored in the scene states, and change when user switches the scene states. Appdata stays the same all the time.

Multiple entries requires a lot of time. This is what I don't have any at this time.

vklein's picture

Sergo: Different colors of

Sergo: Different colors of camera enries is interesting idea, but I don't understand the principle. The color of the list entry should be the same as the color of camera object?

No, I mean to simply assign custom colors to the camera entries, helping the user distinguish between different cameras more easily. If you implement the multiple entries per Camera idea you could color all entries of Camera01 the same color, all Camera02 entries another an so on. The user could assign custom colors to distinguish and help sort the cams, so red cams for real rendering, green for masks and UVs, blue for lightpasses and so.
I saw you introduced the new data structure. Does this brink us closer to the multiple entries per camera?

sergo's picture

Duplicating camera-entries

Duplicating camera-entries would be implemented, but it is a major change, leading to change script's base principles, so it's hard to say when it would be possible for me to do.

Different colors of camera enries is interesting idea, but I don't understand the principle. The color of the list entry should be the same as the color of camera object?

Thank you for suggestion. It's a pity you've decided to switch off from my script :(

vklein's picture

1 Camera multiple jobs?

1 Camera multiple jobs?

Hi, we have switched away from

1. Hi, could it be made possible to duplicate camera-entries for rendering multiple passes with the same cam? Duplicating the camera itself leads to too much confusion and different animations errors.

2. Could you please random-color the camera-entries so one could better distinguish cams in scenes with a lot of cams?
This could also improve 1. by using the same color for a camera and all it's copies.

What do you think of my suggestions?

sergo's picture

No no, only under max2009 and

No no, only under max2009 and above. Render presets don't work with the versions below 2009.

pifitas's picture

Hey Fajar Script works fine

Hey Fajar

Script works fine (untill now) on 2008x64 and vray 1.5.17
maybe you can try it

sergo's picture

Sorry guys, but script is

Sorry guys, but script is fully functional only under 3dsmax 2009 and above. Not your message, fajar, nor pifitas's one are the errors - simply some functions and commands don't exist in maxscript of version below the 2009.

P.S. Fajar, try to delete all @ symbols and recompile and rerun the script. That error should be gone, but I suppose some others appear.

fajar's picture

on open_current_folder

on open_current_folder pressed do
			temp_path = getFilenamePath file_path.text
			while (temp_path != "") and (not (doesFileExist temp_path)) do
				temp_path = pathConfig.removePathLeaf temp_path
			if temp_path[temp_path.count] != @"\" then
			append temp_path @"\"		--complete path with slash to navigate to that folder	
			if (doesFileExist temp_path) then
				temp_res = ShellLaunch ("explorer.exe") ( "/n, " + temp_path)
				messagebox ("Path does not exist: "+ temp_path) title:"Error"

this line make error in max 9 especially in

if temp_path[temp_path.count] != @"\" then
			append temp_path @"\"		--complete path with slash to navigate to that folder	

Sergo, please fix this so I can still work on it on max 9.


Comment viewing options

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