AWS Thinkbox Discussion Forums

Draft failing for 3ds Max (Vray) output when vrmap path is present

Hi,

we stumbled upon an issue with the dependent Draft jobs for some 3ds Max jobs. Basically, Draft is failing due to the existence of a path for a pre-rendered irradiance map (.vrmap). For some reason, it will try to use this as an input file for the dependent Draft job(s) instead of the V-Ray typical ‘image.RGB_color.####.exr’ files. It seems that Draft always uses the ‘first’ output (i’m guessing that from the experience with Nuke Draft jobs) item it can find and for whatever reason the path to the vrmap is the first one. Would it be possible to exclude that in general as input for a Draft job? Ideally, this will not be something that needs to be configured by the user but will be blacklisted by Deadline/Draft in general - this is not a conventional image format anyway and creating a QT/filmstrip from it doesn’t really make any sense. For reference, below is the job report from a Draft job which was failing due to this. Please note that the message ‘file does not exist’ is actually correct as a file with the name X:\wc02\tor_001_030\rndr\max\vrmap\wc02_tor_001_030_rndr_all_v001_an0000.vrmap does indeed not exist. But Draft seems to be deriving that specific filename itself. A bit earlier in the log it says inFile=X:\wc02\tor_001_030\rndr\max\vrmap\wc02_tor_001_030_rndr_all_v001_an.vrmap without the ‘0000’ frame number added.

Cheers,
Holger

[code]=======================================================
Error

Error: Renderer returned non-zero error code, 1. Check the log for more information.
at Deadline.Plugins.ScriptPlugin.RenderTasks(String taskId, Int32 startFrame, Int32 endFrame, String& outMessage, AbortLevel& abortLevel)

=======================================================
Type

RenderPluginException

=======================================================
Stack Trace

at Deadline.Plugins.Plugin.RenderTask(String taskId, Int32 startFrame, Int32 endFrame)
at Deadline.Slaves.SlaveRenderThread.a(TaskLogWriter A_0)

=======================================================
Log

2015-07-29 21:28:02: BEGIN - CELL-RS-19\render
2015-07-29 21:28:02: 0: Loaded plugin Draft (\cell-dead-01\deadlinerepo\plugins\Draft)
2015-07-29 21:28:02: 0: Start Job timeout is disabled.
2015-07-29 21:28:02: 0: Task timeout is disabled.
2015-07-29 21:28:02: 0: Loaded job: wc02_tor_001_030_rndr_all_v014_pj [Shotgun H264 Movie Creation] (55b91dcf84ec6819a418c1d2)
2015-07-29 21:28:02: 0: INFO: Executing plugin script C:\Users\render\AppData\Local\Thinkbox\Deadline7\slave\CELL-RS-19\plugins\55b91dcf84ec6819a418c1d2\Draft.py
2015-07-29 21:28:02: 0: INFO: Found Draft python module at: ‘C:\Users\render\AppData\Local\Thinkbox\Deadline7\slave\CELL-RS-19\Draft\Draft.pyd’
2015-07-29 21:28:02: 0: INFO: About: Draft Plugin for Deadline
2015-07-29 21:28:02: 0: INFO: The job’s environment will be merged with the current environment before rendering
2015-07-29 21:28:02: 0: Plugin rendering frame(s): 1-51
2015-07-29 21:28:04: 0: INFO: Draft job starting…
2015-07-29 21:28:04: 0: INFO: Stdout Redirection Enabled: True
2015-07-29 21:28:04: 0: INFO: Stdout Handling Enabled: True
2015-07-29 21:28:04: 0: INFO: Popup Handling Enabled: False
2015-07-29 21:28:04: 0: INFO: Using Process Tree: True
2015-07-29 21:28:04: 0: INFO: Hiding DOS Window: True
2015-07-29 21:28:04: 0: INFO: Creating New Console: False
2015-07-29 21:28:04: 0: INFO: Running as user: render
2015-07-29 21:28:04: 0: INFO: Looking for bundled python at: ‘C:\Program Files\Thinkbox\Deadline7\bin\dpython.exe’
2015-07-29 21:28:04: 0: INFO: Executable: “C:\Program Files\Thinkbox\Deadline7\bin\dpython.exe”
2015-07-29 21:28:04: 0: INFO: Argument: -u “\cell-dead-01\deadlinerepo\events\Shotgun\Draft_CreateShotgunMovie.py” frameList=0-50 startFrame=0 endFrame=50 inFile=“X:\wc02\tor_001_030\rndr\max\vrmap\wc02_tor_001_030_rndr_all_v001_an.vrmap” outFile=“X:\wc02\tor_001_030\rndr\max\vrmap\Draft\shotgun_h264.mov” outFolder=“X:\wc02\tor_001_030\rndr\max\vrmap\Draft” deadlineJobID=55b8f1b384b0187c484f3944 deadlineRepository="\cell-dead-01\deadlinerepo" taskStartFrame=1 taskEndFrame=51
2015-07-29 21:28:04: 0: INFO: Startup Directory: “C:\Users\render\AppData\Local\Thinkbox\Deadline7\slave\CELL-RS-19\Draft”
2015-07-29 21:28:04: 0: INFO: Process Priority: BelowNormal
2015-07-29 21:28:04: 0: INFO: Process Affinity: default
2015-07-29 21:28:04: 0: INFO: Process is now running
2015-07-29 21:28:04: 0: STDOUT: Checking for a license…
2015-07-29 21:28:04: 0: STDOUT: Draft 1.3.2.58232
2015-07-29 21:28:04: 0: STDOUT: Command line args:
2015-07-29 21:28:04: 0: STDOUT: frameList=0-50
2015-07-29 21:28:04: 0: STDOUT: startFrame=0
2015-07-29 21:28:04: 0: STDOUT: endFrame=50
2015-07-29 21:28:04: 0: STDOUT: inFile=X:\wc02\tor_001_030\rndr\max\vrmap\wc02_tor_001_030_rndr_all_v001_an.vrmap
2015-07-29 21:28:04: 0: STDOUT: outFile=X:\wc02\tor_001_030\rndr\max\vrmap\Draft\shotgun_h264.mov
2015-07-29 21:28:04: 0: STDOUT: outFolder=X:\wc02\tor_001_030\rndr\max\vrmap\Draft
2015-07-29 21:28:04: 0: STDOUT: deadlineJobID=55b8f1b384b0187c484f3944
2015-07-29 21:28:04: 0: STDOUT: deadlineRepository=\cell-dead-01\deadlinerepo
2015-07-29 21:28:04: 0: STDOUT: taskStartFrame=1
2015-07-29 21:28:04: 0: STDOUT: taskEndFrame=51
2015-07-29 21:28:04: 0: STDOUT: Traceback (most recent call last):
2015-07-29 21:28:04: 0: STDOUT: File “\cell-dead-01\deadlinerepo\events\Shotgun\Draft_CreateShotgunMovie.py”, line 24, in
2015-07-29 21:28:04: 0: STDOUT: frame = Draft.Image.ReadFromFile( inFile )
2015-07-29 21:28:04: 0: STDOUT: RuntimeError: Magick: UnableToOpenBlob `X:\wc02\tor_001_030\rndr\max\vrmap\wc02_tor_001_030_rndr_all_v001_an0000.vrmap’: No such file or directory @ error/blob.c/OpenBlob/2643
2015-07-29 21:28:05: 0: INFO: Process exit code: 1
2015-07-29 21:28:06: 0: An exception occurred: Error: Renderer returned non-zero error code, 1. Check the log for more information.
2015-07-29 21:28:06: at Deadline.Plugins.ScriptPlugin.RenderTasks(String taskId, Int32 startFrame, Int32 endFrame, String& outMessage, AbortLevel& abortLevel) (Deadline.Plugins.RenderPluginException)
[/code]

Ah yes. I understand the problem. We are currently changing the way Draft output files are named. So I will make sure that this work. It gets kind of tricky because Draft is a general event plugin that gets called on all sorts of input. Thank you for alerting us to this problem!

Hi Conrad,

then maybe it makes more sense to actually tackle this in the submitter of 3ds Max and to exclude it upon submission so Draft will actually never ‘see’ it? I can see that it might make sense to not exclude the vrmap output completely for some cases. But in our environment we never need it to be accessible through Deadline. When sending a 3ds Max job to the farm that has the path to the vrmap set it is because it had already been created and is now being read by 3ds Max to render the current job. So in that case it’s not an output of but actually an input to to the 3ds Max scene so it doesn’t make any sense that it’s being listed as an output in the first place. Should be possible for the 3ds submitter to check whether the status of the vrmap is ‘write’ or ‘read’ and exclude it from the output(s) accordingly, no?

Cheers,
Holger

FYI. The renderer specific light cache / GI / caustic / FinalGather, etc map files are gathered during SMTD submission and listed as “output” paths in a Deadline - 3dsMax job so that their paths can be browsed via the right-click menu, “View Output…” system in Deadline Monitor. This can actually be kinda useful if a user wants to quickly browse to review the *.vrlmaps or carry out some down-stream processing via script API in Deadline, such as write an event plugin, which checks that the file size is valid for each *.vrlmap due to corruption and possibly re-queue it. I can see this situation probably cropping up for other Deadline application “plugins” as well, either now or in the future, so the best solution is as Conrad mentioned, to consider a solution on the Draft side of things.

Yeah, this is probably the best compromise here as it will stop the output path from being submitted with the 3dsMax job. I’ll have a look at doing this.

However, I’m not sure why Draft is adding the padding: “0000”, it shouldn’t be doing that if there was no padding in the first place to be swapped out for a particular frame…

Hi Mike,

thanks for the info. So i guess it’s best to tackle it from both sides - Draft and the 3ds Max submitter.
Would you mind posting an updated submitter here in case it’s done before a new Deadline/Draft is released? Really looking forward to a solution for this.

Cheers,
Holger

Hi,
See attached updated SMTD _Functions & UI files.

Few changes here:

  1. Exposed global setting in SMTD to enable/disable all renderer specific caching files from being added to Monitor RC output menu (see screen-grab)
  2. Update Mental Ray, Corona & VRay renderer specific output caching files to only be exported if they are in “Write” mode (ie: being created)
  3. Handled cache files which are automatically padded: #### at render time.

Backup first and then overwrite the same named files here in your repo:

<your_repo>/submission/3dsmax/Main/

Let us know if it works ok and I’ll include it in v7.2

Archive.zip (170 KB)

Hi Mike,

thanks a lot for the SMTD update!
This seems to work really well. I did two tests with different settings.

A) ‘Export Renderer Caching Output Files’ switched ON but the vrmap of V-Ray set to ‘read’.
B) "Export Renderer Caching Output Files’ OFF and V-Ray vrmap set to ‘Single Frame’.

In both cases it did not export the .vrmap files to the Monitor output menu as expected.

Just to confirm i understand correctly:

This means that - at least in the UI - i can’t even accidentally force the vrmap to show up in the output menu?

If unchecking this no caching files will ever be added to the output menu regardless of their ‘read/write’ status?

If both are true then i’d say we’re done here :wink:

Cheers,
Holger

Cool.

Correct.

Not quite. I’ve completely removed the ability for ‘read-only’ cache files to EVER be included in the monitor output paths, because logically they are NOT ‘output’ paths/files but rather ‘input’ files for the 3dsmax scene file. So, if:

SMTDSettings.ExportAdvancedRenderOutputFiles = true

then if in the case of VRay, if there are any cache files (vrmap, vrlmap, photon or caustic) which are set to ‘write’, then they will be exported into the Deadline job. ‘read’ based input cache files are always ignored. If:

SMTDSettings.ExportAdvancedRenderOutputFiles = false

then doesn’t matter if there are any ‘write’ cache files set or not, they will NOT be exported into the Deadline job. ‘read’ based input cache files are always ignored.

This setting can also be made default/sticky via the usual INI files:

ExportAdvancedRenderOutputFiles = false or ExportAdvancedRenderOutputFiles = true

By default, it is set to true in the shipping version of SMTD.

Alright. Thanks for the explanation!

Btw, we ran into serious errors before with a stereo job that was submitted through SMTD (your mod from today and the previous un-modified version). I don’t think this is related to your modifications but maybe you’re still interested:

https://forums.thinkboxsoftware.com/viewtopic.php?f=205&t=13681

Cheers,
Holger

Privacy | Site terms | Cookie preferences