Windows 10 1909
3ds Max 2019.3.4
V-Ray 43003
Deadline 10.1.9.2
I’m having an issue submitting vrscene animations from 3ds Max
Using the V-Ray Export Workflow, selecting a file per frame, the animation works for only the first 3 frames (0,1,2) then the rest of the files render as the last (2) frame.
This is reproducible, creating a spinning Teapot with V-Ray light, set up animation and export locally before submitting to farm.
So this looks pretty normal, the task reports show that V-Ray’s being passed the right frame number, and the output name looks right. Is it possible that the issue is with the scene? Knowing nothing about Max would it be possible to burn the frame number into the corner? Just wondering if the rotation isn’t happening properly.
Another idea - if you make the chunk size 10 instead of 1 do you see the same behaviour?
I’ve saved this file with a physical camera and attached here, I haven’t added V-Ray lights or set the renderer as I’m using 5, have clients having the issue with various versions of 4 (43003, 42003 etc)frame numbers.zip (64.9 KB)
Yes, so sorry about this!
A really bad case of copy&paste madness.
The logic for the local machine export looks like this:
case SMTDWorkflow_VrayStandaloneExport.ExportAnimationMode of
(
1: (
-- Single VRSCENE file for all frames
exportToVRayStd vrsceneName startFrame endFrame
)
2: (
-- Single VRSCENE file for per frame
for i = startFrame to endFrame do
(
paddedFrame = formattedPrint i format:"04i"
frameVrsceneName = getFileNamePath outputFilename + theMaxFileName + "." + paddedFrame + ".vrscene"
exportToVRayStd frameVrsceneName startFrame (startFrame + 1)
)
)
3: (
-- Single VRSCENE file for per frame (incremental)
paddedFrame = formattedPrint startFrame format:"04i"
frameVrsceneName = getFileNamePath outputFilename + theMaxFileName + "." + paddedFrame + ".vrscene"
exportToVRayStd frameVrsceneName startFrame (startFrame + 1)
vrsceneFileHandle = createfile vrsceneName
for i = (startFrame + 1) to endFrame do
(
paddedFrame = formattedPrint i format:"04i"
frameVrsceneName = getFileNamePath outputFilename + theMaxFileName + "." + paddedFrame + ".vrscene"
exportToVRayStd frameVrsceneName i (i + 1) incrBaseFrame:startFrame
format "#include \"%\"\n" frameVrsceneName to:vrsceneFileHandle
)
close vrsceneFileHandle
)
)
In the case 2:, it should be exporting frames i to i+1 within the loop, but it is exporting the first frame again and again.
So that code block should read
2: (
-- Single VRSCENE file for per frame
for i = startFrame to endFrame do
(
paddedFrame = formattedPrint i format:"04i"
frameVrsceneName = getFileNamePath outputFilename + theMaxFileName + "." + paddedFrame + ".vrscene"
exportToVRayStd frameVrsceneName i (i + 1) --> HERE IS WHERE THE PROBLEM WAS!
)
)
I suspect the problem came from the case 3: where the first (reference) frame export uses the start time as base. It appears that it was copied incorrectly to case 2:… instead of the one using the i/i+1 timing…
Please locate the file “…\DeadlineRepository10\submission\3dsmax\Main\Workflows\SMTDWorkflow_VRayStandaloneExport.ms” and modify the above line!
On a related note, it appears that Frames Per Task (Chunk Size) was locked down to 1 when the Workflow was first implemented, with a note in the code that the V-Ray Standalone plugin might not be supporting it.
It appears that the V-Ray Standalone plugin actually does support the chunking of file per frame jobs, so you can make a few tweaks to reenable the control when this Workflow is selected:
Locate and modify the following function:
fn updateUILayout = --Optional. This function could be used to apply changes to the visilibity of existing controls
(
local inactiveControls = #("chk_restartMax", "chk_forceWorkstationMode", "chk_useSilentMode", "ddl_MaxVersionToForce", "spn_cpuThreads", "chk_EnforceSequentialRendering", "btn_MaxVersionToForce")
for c in SMTD_JobOptions.controls do
(
c.enabled = findItem inactiveControls c.name == 0
if not c.enabled do c.tooltip = "No available in this Workflow!"
)
),
Above, I have already removed the two ChunkSize-related controls from the inactiveControls list, thus enabling them.
Next, locate the code block around line 366 and modify it to look like this:
local frames = SMTDFunctions.GetFrameSequenceString()
format "Frames=%\n" frames to:jobInfoFile
format "ChunkSize=%\n" SMTDSettings.ChunkSize to:jobInfoFile
Save the Workflow script file and reopen SMTD. You should be able to submit with chunks > 1 now. Previously, you had to modify the Frames Per Task value in the Job’s Modify Frame Range dialog.