Substance Painter
In this start to finish texturing project within Substance Painter we cover all the techniques you need to texture the robot character.
# 16 01-03-2011 , 02:44 AM
Registered User
Join Date: Feb 2011
Posts: 2
I have solved my problem... not really... I just switched from Windows to Mac and ran the same script and it worked. Not sure what the difference is but it worked.

NextDesign thank you so much for this helpful script! user added image

# 17 15-03-2011 , 11:26 AM
jabbelmous's Avatar
Registered User
Join Date: Mar 2011
Posts: 2
Thanks a lot... Just what I was looking for! Works perfect!

# 18 29-03-2011 , 04:46 PM
Registered User
Join Date: Mar 2011
Posts: 1
thank you so much ND its working realy good but when i start render i can't stop it user added image any way thanks again

# 19 29-03-2011 , 05:49 PM
LauriePriest's Avatar
Moderator
Join Date: May 2003
Location: London
Posts: 1,001
Can you post a scene please, i'm intreagued by what's causing this.


FX supervisor - double negative
# 20 11-04-2011 , 02:05 PM
Registered User
Join Date: Apr 2011
Posts: 1

help

Hi I know this thread has recently become inactive. But I'm calling out for some help. Hopefully someone will read this and help a very lost person out user added image

So here's the situation:
I am trying to rerender my turntable of my toilet model. Why "rerender"? Because the last time I managed to batch render out the turntable with all it's textures in mental ray- no problems at all. Now, what I am trying to do is rerender a wireframe version of my model using toon lining and a white lambert shade plastered over - using Maya Software.

Like Lokjutus the render view looks perfectly fine. But when it comes to the batch render everything just goes wrong.

I tried using the hack created by NextDesign (both versions) but an error message appeared -
Error: Object not found: renderView

Basically there are two problems. The first is that I can't batch render and second, I still can't render out my render views using the hack.

I am using Maya 2010. Help anyone ? user added image

Here are some images to help you all understand what I'm facing - sorry for the horrible modelling user added image

https://www.flickr.com/photos/26565161@N07/5610063986/

https://www.flickr.com/photos/26565161@N07/5610064048/

# 21 19-04-2011 , 01:51 PM
Registered User
Join Date: Apr 2011
Posts: 1

Please Help - // Error: renderWindowEditor: Object 'renderView' not found. //

Hey there guys, how you doing?

I was wondering if you could help me out with the following error regarding the script for Maya that has been discussed. I am very eager to get this working as my current frame render works considerable faster than Maya batch render which doesn't even load. I am running Maya 2011 x64.

In the script editor I have input the following:



// Batch rendering workaround - John Mather (NextDesign)
string $filename = "ContainmentSHOT1 2";
string $cameraName = "Test:SHOT1";

int $startFrame = 108;
int $endFrame = 234;

string $directory = (`workspace -q -rd` + "images/");

for ($i = $startFrame; $i <= $endFrame; $i++)
{
currentTime $i;

// Old version
// render -x `getAttr defaultResolution.width` -y `getAttr defaultResolution.height` $cameraName;

// New version - supports MR and other renderers!
renderWindowRender redoPreviousRender renderView;

string $concatFilename = $directory + $filename + "." + $i;

if (`getApplicationVersionAsFloat` >= 2011)
// Thanks to nowayfra on creativecrash for his workaround
catch(eval(renderWindowSaveImageCallback ("render view", $concatFilename, `getAttr defaultRenderGlobals.imageFormat`)));
else
renderWindowSaveImageCallback ("render view", $concatFilename, `getAttr defaultRenderGlobals.imageFormat`);

print ("Saved " + $concatFilename + "\n");
}





When I input this into the Mel script the following error comes up:

// Error: renderWindowEditor: Object 'renderView' not found. //

And so I attempted executing it in Python, however only to be greeted with this error message:

# Error: SyntaxError: invalid syntax #

If anyone could possibly help me out with this then I'd greatly appreciate it. I only have a little of a week left to get all this rendered for my final year at university and Maya batch render isn't playing nice. The script would be a dream come true if anyone could help me get it working.

Cheers guys

Derek

# 22 19-04-2011 , 02:38 PM
NextDesign's Avatar
Technical Director
Join Date: Feb 2004
Posts: 2,988
Hey guys. I've figured out the problem. Here's the newest version. Also, please note that it renders out of the current camera (Ie. It renders out of the camera that renders when you press the render button [if that makes any sense user added image])

Code:
// Batch rendering workaround V3 - John Mather (NextDesign)
// Author page: https://www.creativecrash.com/users/john-mather
// Check for updates here: https://simplymaya.com/forum/showthread.php?p=318227
string $filename = "render";

int $startFrame = 1;
int $endFrame = 24;

string $directory = (`workspace -q -rd` + "images/");

// check for render panel. Found here: https://www.creativecrash.com/forums/mel/topics/error-object-not-found-renderview
string $renderPanel;
string $renderPanels[] = `getPanel -scriptType "renderWindowPanel"`;

if(size($renderPanels)) 
    $renderPanel = $renderPanels[0];
else
{
    $renderPanel = `scriptedPanel -type "renderWindowPanel" -unParent renderView`;

    scriptedPanel -e -label "Render View" $renderPanel;
}

for ($i = $startFrame; $i <= $endFrame; $i++)
{
    currentTime $i;

    renderWindowRender redoPreviousRender renderView;

    string $concatFilename = $directory + $filename + "." + $i;

    if (`getApplicationVersionAsFloat` >= 2011)
        // Thanks to nowayfra on creativecrash for his workaround
        catch(eval(renderWindowSaveImageCallback ($renderPanel, $concatFilename, `getAttr defaultRenderGlobals.imageFormat`)));
    else
        renderWindowSaveImageCallback ($renderPanel, $concatFilename, `getAttr defaultRenderGlobals.imageFormat`);

    print ("Saved " + $concatFilename + "\n");
}

print ("Completed rendering of " + (($endFrame - $startFrame) + 1) + " frames.\n");
Hope it helps guys!

-John


Imagination is more important than knowledge.

Last edited by NextDesign; 19-04-2011 at 10:00 PM.
# 23 18-08-2011 , 05:19 AM
NextDesign's Avatar
Technical Director
Join Date: Feb 2004
Posts: 2,988
Alright! New version! This version now displays a progress bar while rendering, which also allows the user to cancel the rendering by pressing the ESC key. It also now has support for frame padding, of which the number can be easily controlled with the nFramePadLength variable. The last change is that it will also render in any selected image format from the render globals, not just iff!

Hope you guys enjoy!

-John Mather

Code:
// Batch rendering workaround V4 - John Mather (NextDesign)
// Author page: https://www.creativecrash.com/users/john-mather
// Check for updates here: https://simplymaya.com/forum/showthread.php?p=318227
string $filename = "render";

int $startFrame = 3;
int $endFrame = 24;
int $nFramePadLength = 4; // eg name.0000.ext (4 zeros)

string $directory = (`workspace -q -rd` + "images/");

// check for render panel. Found here: https://www.creativecrash.com/forums/mel/topics/error-object-not-found-renderview
string $renderPanel;
string $renderPanels[] = `getPanel -scriptType "renderWindowPanel"`;

if(size($renderPanels)) 
    $renderPanel = $renderPanels[0];
else
{
    $renderPanel = `scriptedPanel -type "renderWindowPanel" -unParent renderView`;

    scriptedPanel -e -label "Render View" $renderPanel;
}

// get the image format in the render globals
int $format = `getAttr "defaultRenderGlobals.imageFormat"`;
string $extension = "";

switch($format)
{
    case 0: $extension = "gif"; break;
    case 1: $extension = "pic"; break;
    case 2: $extension = "rla"; break;
    case 3: $extension = "tif"; break;
    case 4: $extension = "tif"; break;
    case 5: $extension = "sgi"; break;
    case 6: $extension = "als"; break;
    case 7: $extension = "iff"; break;
    case 8: $extension = "jpg"; break;
    case 9: $extension = "eps"; break;
    case 10: $extension = "iff"; break;
    case 11: $extension = "cin"; break;
    case 12: $extension = "yuv"; break;
    case 13: $extension = "sgi"; break;
    case 19: $extension = "tga"; break;
    case 20: $extension = "bmp"; break;
    case 22: $extension = "mov"; break;
    case 30: $extension = "pntg"; break;
    case 31: $extension = "psd"; break;
    case 32: $extension = "png"; break;
    case 33: $extension = "pict"; break;
    case 34: $extension = "qtif"; break;
    case 35: $extension = "dds"; break;
    case 36: $extension = "psd"; break;
}

// start the progress bar
global string $gMainProgressBar;

progressBar -edit -beginProgress -isInterruptable true -status "Rendering..." -maxValue $endFrame $gMainProgressBar;

for ($i = $startFrame; $i <= $endFrame; $i++)
{
    // check for user termination
    if(`progressBar -query -isCancelled $gMainProgressBar`)
        break;

    currentTime $i;

    renderWindowRender redoPreviousRender renderView;

    // pad the frame number
    string $framePadded = $i;
    
    while (`size($framePadded)` < $nFramePadLength)
        $framePadded = ("0" + $framePadded);

    string $concatFilename = $directory + $filename + "." + $framePadded + "." + $extension;

    if (`getApplicationVersionAsFloat` >= 2011)
        // Thanks to nowayfra on creativecrash for his workaround
        catch(eval(renderWindowSaveImageCallback ($renderPanel, $concatFilename, `getAttr defaultRenderGlobals.imageFormat`)));
    else
        renderWindowSaveImageCallback ($renderPanel, $concatFilename, `getAttr defaultRenderGlobals.imageFormat`);

    progressBar -edit -step 1 -status ("Rendering frame " + (($i - $startFrame) + 1) + " of " + (($endFrame - $startFrame) + 1)) $gMainProgressBar;    // update the progress bar
        
    print ("Saved " + $concatFilename + "\n");
}

progressBar -edit -endProgress $gMainProgressBar;    // clear the progress bar

print ("Completed rendering of " + (($endFrame - $startFrame) + 1) + " frames.\n");


Imagination is more important than knowledge.

Last edited by NextDesign; 18-09-2011 at 10:52 PM.
# 24 10-09-2011 , 01:29 PM
farbtopf's Avatar
Subscriber
Join Date: Jul 2005
Location: London
Posts: 520

THANK YOU SIR!

wow, thanks a lot for your great script. I had the wiredest error with one of my renders. Whatever I rendered out of batch was a couple of pixels off from where it should be.

Same file, same camera same everything on single frame gives the correct result... No idea why but I'm trying your single frame technique and it works for me.

Thanks again
user added imageuser added image


www.animateme.me.uk
# 25 11-09-2011 , 03:02 AM
NextDesign's Avatar
Technical Director
Join Date: Feb 2004
Posts: 2,988
Thanks farbtopf, I'm glad you found it useful!


Imagination is more important than knowledge.
# 26 20-10-2011 , 09:48 AM
Registered User
Join Date: Oct 2011
Posts: 3
Thanks Next Design.

A question:
How could I customize this to grab all the settings from a render layer, and render out multiple layers without having to babysit each one?


Last edited by kayveedeeoh; 20-10-2011 at 10:28 AM.
# 27 20-10-2011 , 02:13 PM
NextDesign's Avatar
Technical Director
Join Date: Feb 2004
Posts: 2,988

Thanks Next Design.

A question:
How could I customize this to grab all the settings from a render layer, and render out multiple layers without having to babysit each one?

Hi kayveedeeoh, what do you mean by "grab all the settings from a render layer"? Do you just want all of the render layers to be batched out?


Imagination is more important than knowledge.
# 28 24-10-2011 , 06:40 AM
Registered User
Join Date: Oct 2011
Posts: 3
That's exactly it yes. Assuming I have multiple cameras and frame ranges(assigned to different layers) I would like to batch out without having to create a new script for each one.

# 29 24-10-2011 , 11:09 AM
ctbram's Avatar
Moderator
Join Date: Jan 2004
Location: Michigan, USA
Posts: 2,998
Nice script ND. I like the comments very clear and kudos for giving folks recognition.

Just out of curiosity, why do you have to call "renderWindowSaveImage" in the catch(eval(...)) block in maya 2011 or higher?

I am guessing it is because it is in a try block inside maya 2011 and higher and not in earlier versions?


"If I have seen further it is by standing on the shoulders of giants." Sir Isaac Newton, 1675

Last edited by ctbram; 24-10-2011 at 11:13 AM.
# 30 25-10-2011 , 05:58 PM
NextDesign's Avatar
Technical Director
Join Date: Feb 2004
Posts: 2,988

That's exactly it yes.

Hi kayveedeeoh, could you send me a test file? I'll take a look into it. Is the normal batch not working?

Just out of curiosity, why do you have to call "renderWindowSaveImage" in the catch(eval(...)) block in maya 2011 or higher?

Hey ctbram, it's due to an annoying little bug in 2011+ with the ImageFormats:

# Error: AttributeError: ImageFormats instance has no attribute 'oldOutf' #

It still writes out the file, but since it throws an error, the scripts halts. The catch eval pretty much just states "I know there's a problem, just keep going."


Imagination is more important than knowledge.
Posting Rules Forum Rules
You may not post new threads | You may not post replies | You may not post attachments | You may not edit your posts | BB code is On | Smilies are On | [IMG] code is On | HTML code is Off

Similar Threads