AWS Thinkbox Discussion Forums

3ds Max Submit a Multi-Camera job

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.

image

This would be really an amazing feature on deadline!

Sure, that is definitely doable :slight_smile:

That would be awesome!!! :slightly_smiling_face:

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:

Stay tuned.

1 Like

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.

To install,

  • 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
      image
  • 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.

image

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.

1 Like

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

Thanks again.

@Bobo

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

1 Like

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.

1 Like

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
 ...
1 Like

@Bobo
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

@Bobo
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 "SubmitMaxToDeadline_Functions.ms" in the \\YourRepository\Submission\3dsmax\Main\ folder.

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

Cheers,
Bobo

Yes it fixed.
Thank you for your help!!!

@Bobo
I downloaded it and put it in the folder, the menu is not coming, can I get any advice in this regard?

Assuming you copied the file to the folder and then opened the SMTD UI, the only thing that comes to mind is that your Client might be connecting to a different Repository. The title bar of SMTD shows in your case a cache path due to connecting to a Remote Connection Server (you are not connecting to the Repository directly). So it is hard to tell what Repository you are connecting to, but there is a chance it is not the one shown in the File Explorer.

Is the RCS connecting to the Repository on your C: drive shown in the screenshot? Is the RCS running on that same machine or somewhere else? Can you look at your deadline.ini to check what the RCS settings are?

1 Like

Thank you very much @Bobo.
Yes, my client was connected to a different repository. When I copied that repository
Then it’s working perfectly.

one thing more, it’s a very nice tool but I create a batch render with it, it renders to Max’s own frames instead of the VRay frame buffer. Is it possible to render with Vray frame buffer?

I don’t have access to 3ds Max on my current machine (I am on vacation on a different continent), so I cannot verify what is happening with the Frame Buffer.

The Workflow is supposed to respect the SMTD settings. I would expect a job submitted by SMTD without the MultiCamera Workflow to use the same settings as one submitted by the Workflow…

2 Likes
Privacy | Site terms | Cookie preferences