Does anyone knows if there is any sort of an automatic process to be able to submit from 3ds max to deadline a multiple-camera job for still images?
I don’t know if your scene is simple enough to manage this, but I have solved (worked around) the issue in the past by animating a single camera, and submitting the frame range.
I’ve done that as well, but it doesn’t work most of the time because usually I have too many specific adjustments for each camera and would take longer to setup an animation.
There are two major 3dsMax-native ways to submit multiple cameras to Deadline:
Batch Submission - you can define any number of views to render, each with a specific Camera, and optional resolution override, output override, render preset override, and even scene state override. You define these through the Batch Render dialog of 3ds Max, and then enable Batch submission in the Misc. tab of the integrated submitter (SMTD). When you hit the submit button, multiple jobs get created, each with its own Camera (and the other overrides, if specified)
State Sets - you can create multiple State Sets, each with its own Camera. You can also set the render output name to be different, if you want. Then enable the State Sets submission in the respective tab, and voila - each State Set will render the scene with its own Camera. (You can make any other changes to the scene, obviously, it is a Render Pass system after all). If you don’t set the render output name for each State Set, you can enable the option to prefix the render output with the State Set name, so you don’t end up overwriting the render outputs.
It would be possible to write a Workflow for SMTD to submit multiple Cameras, but given the two options above, it seems pointless. If you feel it would be needed, we could discuss this too…
Hi @Bobo, thanks for your help! These two ways you’ve pointed can work but I think that they are time consuming and can lead to do something wrong… at least that’s is my experience!
I use sometimes an online renderfarm. With just one submission I can render all cameras, render files are saved according the their camera name and it also has feature that enables to select a specific frame for each camera.
This would be really an amazing feature on deadline!
Sure, that is definitely doable
That would be awesome!!!
I have the basics in place - it already submits multiple cameras with a single click.
It supports most advanced features of SMTD, minus State Sets, Stereo Cameras, and the old Batch rendering which cannot mix with this workflow. The render outputs are already handled automatically with a camera name prefix using the code that was in place to support stereo cameras. So V-Ray paths, Render Elements etc. will all work without extra effort.
A bunch of useful features are still missing though, here is a list of some of them:
- Currently it renders using the Render dialog’s Time settings. I am working on the UI to allow custom frames/frame ranges to be specified per camera.
- Resolution overrides are in the UI already, but are not being passed to the submission yet. Should be done sometime today. EDIT: Done!
Here is a first look at the Workflow’s UI:
I cant wait to try!
I’m sure that this will speed up my rendering workflow by 1000%
SMTDWorkflow_MultiCameraSubmit.zip (8.4 KB)
This is still WIP, but it should be mostly functional.
- Download the zip
- Unzip to your DeadlineRepository10\submission\3dsmax\Main\Workflows folder
- Restart SMTD
Features and Usage
- It will list all scene cameras and let you toggle a checkbox in front of each individually to enable submission.
- Use the Check All and Invert buttons to mass-change the checked states.
- Press the Update… button when you make changes to the scene like adding/deleting cameras, or changing the Render Setup dialog and scene time settings to refresh the ListView.
- By default, all cameras will be rendered at the current Resolution with the current Time settings from the Render Setup dialog.
- You can override the resolution of every camera individually. Currently, Image and Pixel Aspect are not exposed as overrides (TBD?)
- You can override the time settings of every camera individually. Currently, only a single frame or a continuous range are supported. (Every Nth TBD?). You can use the buttons at the bottom of the rollout to quickly set one or more cameras to override with current slider time, current scene range, or current render range.
- Note that if SMTD is set to render Tiles or Jigsaw in Single Frame mode, the Tiles tab setting will override user overrides or global Render Setup dialog settings and will always render the current slider time’s frame. The ListView will reflect that by showing “Tile Frame” or “Jigsaw Frame” followed by the current slider time.
- The Render Output will always be taken from the Render Setup dialog, with the camera name inserted as defined by the tag normally used for “stereo camera” rendering. Note that Stereo Camera rendering is not supported when in this Workflow.
- In addition, Batch Rendering and State Sets submissions are also not supported by this Workflow as they would conflict with it.
- Most other functions of SMTD can be used with this Workflow, including Tile/Jigsaw Rendering, running Pre/Post Scripts, etc.
- To allow for this level of SMTD features support, the Workflow will submit each camera with its own .MAX file, which makes the process slower with big scenes. The alternative would have been to save the scene once and submit new jobs with the same scene, only changing the camera in the JOB file. A “Fast Submission” mode without the Tiles/Jigsaw etc. support might be added in future updates.
More Feature Details
- The color of the cameras in the ListView will be based on the overrides -
- white (or black in light scheme) means both resolution and timing are taken from the Render Dialog.
- green means the Resolution override is enabled
- blue means the Range override is enabled
- orange means both overrides are enabled
- You can right-click camera(s) in the ListView to get a context menu with options to select the camera(s) in the scene, copy and paste either the resolution or the time range via an internal “clipboard”, for example if you want to copy the custom resolution settings of one camera to one or more other cameras.
- If multiple cameras are highlighted, the controls underneath the ListView will show the values of the last camera highlighted on the list. Entering a value in any of the spinners will change all highlighted cameras.
- The Time Range Start and End values are set to bump each-other. If you try to enter a Start value greater than the End value, the End value will change to follow, and vice-versa. So if Start is 0 and End is 10 and you enter 20 in Start, both will change to 20. This works for interactive spinning of the values too.
- The camera-specific settings are stored in the User Properties buffer of each camera. This means that if you merge a camera from one scene into another, the camera will bring over its Multi-Camera override settings with it.
- The checked state of the cameras on the list is saved with the MAX scene file using the standard SMTD mechanism for storing Workflow settings. Re-opening SMTD in the scene should retain the checked state of any cameras that were tagged for submission.
- Each job will have the same base name, with an additional tag containing the Camera name.
- All jobs will be submitted under the same Batch title which will contain the job base name, the date and time of submission, and the tag [MULTI-CAMERA]. This includes any jobs generated by Tiles/Jigsaw features, Draft tile assembly jobs etc.
Have fun and please report any and all issues, bugs and ideas for more features within this thread.
Once the code is deemed production-ready, we will consider it for inclusion in the shipping Deadline 10 builds.
@Bobo I can’t thank you enough for this.
I’ve already made some tests and worked really well.
I will keep testing and will report any issues.
I found a issue with the multi-camera submitter.
When submitting multiple cameras but with the Render setup is locked to one camera… it will render all images with the same camera.
This is not exactly an error but I thought it could be useful to flag this
Thanks for the report! That lock has been the source of frustration for many many years.
I will look into it and post an update when I have it.
The fix is just one additional line to unlock the viewport:
... --Store previous states of render scene dialog before modifying them local old_rendTimeType = rendTimeType local old_rendStart = rendStart local old_rendEnd = rendEnd local old_rederWidth = renderWidth local old_renderHeight = renderHeight rendUseActiveView = true --Make sure the view is unlocked! --Override any features that are not supported in this mode but might be active from a different workflow setup: SMTDSettings.UseBatchRender = false SMTDSettings.StateSetsSubmit = false ...
I found a issue with the multi-camera submitter.
When I turn on V-Ray / Corona DR render,output name prefix is not working,it will override with one name.
I will need more information about the setup, and what goes wrong.
I assume you are using the native render output options of the renderer as opposed to the 3ds Max render output?
In general, SMTD is supposed to handle that, so I wonder if it is a bug in SMTD itself and not in the Workflow. If you can provide a simple scene with multiple cameras and the proper V-Ray Frame Buffer / output paths setup, I will try to reproduce and debug.
test.zip (65.1 KB)
It is a simple scene with 4 cameras,and this is SMTD settings:
output setting: C:\test\1.jpg
output result: C:\test\10000.jpg no camera name prefix
I added DBR manually:
I looked, and the problem is NOT in the Workflow script, but in the main SubmitMaxToDeadline_Functions.ms code. It turns out the value RenderOutput= is being defined twice in the INI file - once by the DBR export code, and once by the regular SMTD code. Since when you have two entries with the same key name in the same INI file only the FIRST one is taken as part of the Job, the DBR code masks the correctly renamed RenderOutput value coming in later. Also, the V-Ray Frame Buffer Split Channels / Raw File outputs are handled properly by the script, just the Common 3ds Max render output has the issue.
To fix the SMTD main functions code,
Open the file
Locate the code block
format "ContinueOnError=True\n" to:JobInfoFile if rendSaveFile and rendOutputFilename != "" then ( format "RenderOutput=%\n" rendOutputFilename to:JobInfoFile ) format "Atmospherics=%\n" rendAtmosphere to:JobInfoFile
Modify it to comment out the extra RenderOutput entry:
format "ContinueOnError=True\n" to:JobInfoFile /* if rendSaveFile and rendOutputFilename != "" then ( format "RenderOutput=%\n" rendOutputFilename to:JobInfoFile ) */ format "Atmospherics=%\n" rendAtmosphere to:JobInfoFile
Save the file.
Reopen SMTD and see if that fixes it.
Yes it fixed.
Thank you for your help!!!