AWS Thinkbox Discussion Forums

3ds Max Submit a Multi-Camera job

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

Hello,
is there any way to prevent Deadline from copying the same assets in the repository scene for each camera separately? I have 8 cameras with different textures and when I submit job to worker each time copy all files to repository separately. Thanks for your help. BTW @Bobo great multi-camera script. It’s save me a lot of time :slight_smile:

The copying of asset files to the Repository is optional (and not recommended, if you ask me). It was added to SMTD because Backburner was doing it, and a bunch of people came over from Backburner and insisted on having that option for when their files were in local folders. If you have good path mapping and central network storage, no files except for the optional scene file would ever be copied to the Repository. But if you rely on copying files to the Repo, there is currently no way to avoid that duplication.

It would be possible to modify SMTD to copy just once though. It would involve a central storage path (similar to the Global or Custom Network Path option we have for scene files). SMTD would then dump every file in a single common folder there, and only copy again if the file is older. This way, the first submission would copy over everything, then the next N submissions would just check the remote folder and skip the operation. Then the jobs would get a Session Path Mapping rule to look for any external files at that network location.

So it is doable, but it does not exist at the moment.

2 Likes

Thanks for the explanation @Bobo .

I do not see any problem with keeping the materials in the local network so that the repository takes materials, but other colleagues who work with the materials on a daily basis do not want such a solution, so I have to duplicate / send tasks as many as cameras in the scene. Maybe in the future such a solution will be implemented, as you wrote above.

It would be perfect if isolating the camera along with the models and materials in the scene would reduce the size of the files being sent - just like rendering in Chaos Cloud.

Is there a way for a multi camera job to always keep one 3ds max instance rendering?

The default commit state now is that every time a camera shot is rendered, the 3dsmax process disappears and then restarts and reopens the same scene.

Then a problem arises: when the scene file reaches a certain size, the startup speed of max will become very slow. Usually takes 2 minutes or more

Is it possible to shorten the time by avoiding launching the same scene repeatedly?

Open a max instance once, load the scene once, and render all cameras in one go.
This will save a lot of time

Hello

When you submit the job how many jobs and how many task appear in Deadline. I believe 1 task each camera?

In our docs we do recommend hooking your own code into max scripts to be able to handle multiple cameras. Here’s more information: 3ds Max — Deadline 10.3.1.4 documentation Look for the word 3ds max cameras in the FAQs.

I have less Max scripting skills, may be someone in the community would know more.

Please, please, please implement this feature - this is so important(!)

I have asked about this a couple times (post1, post2) and struggled to put into words exactly what you have just described here.

Our current 3ds Max workflow requires the entire job (scene) be sent over a network to a remote render farm location, however, sending a 4.5Gb scene from TX to CA for rendering, especially over a WAN.

In the current batch camera workflow, SMTD uses the data from the Batch Render settings in Max, but it RESUBMITS the entire .max scene file for each camera - this is obviously inefficient compared to sending the job once and reusing the data on the server side.

@Bobo would you consider modifying the batch camera .zip or SMTD to support this type of behavior as you have described it? It would massively optimize our workflow for submitting data over the network for rendering, especially for batched camera scenarios.

Hi, it’s been a couple weeks - could y’all take a look at the request?

It seems like Bobo had outlined a workaround for this, could we see an implementation that meets their specifications for Deadline users in 3ds Max?

Privacy | Site terms | Cookie preferences