Region rendering fails

Hi there,

I’m having a bit of a trouble with region rendering.

I tried to modify the submission script (3ds Max) for the Monitor to include the possibility of rendering a region in Max. I simply added a Left, Top, Right and Bottom spinners for typing in the region coords, similarly to the SMTD from Deadline. But when I submit the job, I’m getting this error:

0: An exception occurred: Exception during render: An error occurred in RenderTasks(): RenderTask: Unexpected exception (Failed to allocate Bitmap: TheManager->Create() return NULL 2013/08/01 11:21:36 INF: Loaded //RAMMSTEIN/__UNMANAGED_PROJECTS__/Mountfield_Lusknuti/SHOTS/S1_1_1/3D/S1_1_1_Layout_Max2013_loocas_001.max 2013/08/01 11:21:36 ERR: Missing dll: Built-in - AnchorHelperObject 2013/08/01 11:21:38 INF: Job: //RAMMSTEIN/__UNMANAGED_PROJECTS__/Mountfield_Lusknuti/SHOTS/S1_1_1/3D/S1_1_1_Layout_Max2013_loocas_001.max 2013/08/01 11:21:38 INF: SYSTEM: Production renderer is changed to CoronaRenderer. Previous messages are cleared.

Any idea what the exception is about and what the AnchorHelperObject is?

I’m using Max 2013, if it makes any difference.

Is there a way to render a region in Deadline without having to explicity submit it like this? Can I just set it up in Max and not worry about it?

Thanks in advance!

Can you post your modified submitter, a simple test scene that reproduces the error, and the values for L, T, R, and B? That would really help us figure out what’s happening here.

For that AnchorHelperObject, these threads seem to explain it:
forums.cgsociety.org/archive/ind … 92456.html
forums.cgsociety.org/archive/ind … 59628.html

Cheers,

  • Ryan

Yeah, State Sets… man…

Anyways, thank you for the tip! I’ll give it a try.

As for my modifications, here they are (in the 3dsmaxSubmission.py):

	scriptDialog.AddRow()
	scriptDialog.AddSelectionControl( "RegionRendering", "CheckBoxControl", False, "Region", dialogWidth - 18 - 400, -1 )
	scriptDialog.AddControl( "LeftLabel", "LabelControl", "Left", 30, -1 )
	scriptDialog.AddRangeControl( "LeftBox", "RangeControl", 0, 0, 10000, 0, 1, 50, -1 )
	scriptDialog.AddControl( "TopLabel", "LabelControl", "Top", 25, -1 )
	scriptDialog.AddRangeControl( "TopBox", "RangeControl", 0, 0, 10000, 0, 1, 50, -1 )
	scriptDialog.AddControl( "RigthLabel", "LabelControl", "Right", 40, -1 )
	scriptDialog.AddRangeControl( "RightBox", "RangeControl", 0, 0, 10000, 0, 1, 50, -1 )
	scriptDialog.AddControl( "BottomLabel", "LabelControl", "Bottom", 45, -1 )
	scriptDialog.AddRangeControl( "BottomBox", "RangeControl", 0, 0, 10000, 0, 1, 50, -1 )
	scriptDialog.EndRow()

if scriptDialog.GetValue("RegionRendering") == True: writer.WriteLine("RegionRendering=1") writer.WriteLine("RegionLeft=%s" % scriptDialog.GetValue("LeftBox")) writer.WriteLine("RegionTop=%s" % scriptDialog.GetValue("TopBox")) writer.WriteLine("RegionRight=%s" % scriptDialog.GetValue("RightBox")) writer.WriteLine("RegionBottom=%s" % scriptDialog.GetValue("BottomBox"))

and the input values were: submission_values.png

Thanks! I was able to reproduce, but I think the problem is that the region you’re specifying isn’t valid:

Left: 681
Top: 567
Right: 327
Bottom: 153

The left setting is greater than the right setting, and the top is greater than the bottom. I then tried swapping the Left/Right and Top/Bottom values, and it worked:

Left: 327
Top: 153
Right: 681
Bottom: 567

Cheers,

  • Ryan

Oh, aha! I’ll give that a try! :slight_smile:

Thanks a lot, Ryan, I appretiate it!

Hmm, but strangely enough, these are the coords (Box2) that I get from the

viewport.getRegionRect (viewport.activeViewport)
(Box2 681 567 327 153)

LEFT, TOP, RIGHT, BOTTOM in this order

It seems to work so that it sets the LEFT and TOP borders for the render region and then ADDS on top of that the RIGHT and BOTTOM borders, so the RIGHT and BOTTOM are, in fact, relative coordinates, but the LEFT and TOP are absolute coordinates.

How does this work in Deadline?

Btw: I’m testing this on Max 2014, if it makes any difference.

Ah, okay, that makes sense. Deadline treats all four as absolute coordinates, so what you could do is change your max submission script to do this:

if scriptDialog.GetValue("RegionRendering") == True:
    writer.WriteLine("RegionRendering=1")
    writer.WriteLine("RegionLeft=%s" % scriptDialog.GetValue("LeftBox"))
    writer.WriteLine("RegionTop=%s" % scriptDialog.GetValue("TopBox"))
    writer.WriteLine("RegionRight=%s" % (scriptDialog.GetValue("LeftBox") + scriptDialog.GetValue("RightBox")))
    writer.WriteLine("RegionBottom=%s" % (scriptDialog.GetValue("TopBox") + scriptDialog.GetValue("BottomBox")))

So you can enter your coordinates like you were doing before, but then the submitter would translate them to how Deadline is expecting them.

Awesome! Thank you for this and I’ll go test it out. :slight_smile:

It is working, finally!

Thank you very much! :slight_smile:

FYI. Latest news from ADSK on the “Missing dll: Built-in - AnchorHelperObject” issue:

2012 PU10 - Success
2013 PU6 - ERROR: 3dsmax adapter error : Autodesk 3dsMax 15.6 reported error: Missing dll: Built-in - AnchorHelperObject
2014 SP3 - Success

So, the issue can currently be fixed with the latest PU/SP, unless you are running Max2013. I have asked ADSK if they can release a retro PU7 to Max2013 to resolve this issue. Awaiting feedback.

I doubt they will, but success nontheless! :slight_smile: Thank you for the info.

I’m actually runnign 2013 on the farm, but planning a huge update soon as I’ll have to update all my machines and it’s always something I’m not really looking forward to. :smiley: