Beer glass scene creation
This course contains a little bit of everything with modeling, UVing, texturing and dynamics in Maya, as well as compositing multilayered EXR's in Photoshop.
# 1 16-01-2010 , 08:10 PM
Registered User
Join Date: Jan 2010
Location: Croatia
Posts: 11

HUGE rendering problem - batch render different than single frame

Hello to all.

I am sorry that my first post for this great communitiy is a cry for help... but I desperately need some help. And sorry for my crappy English.

To cut the long story short, my wife and I are taking a course in video animation and so far we come a long way. Started 3 months ago we had no clue about 3D modeling or animation and now we are practically done with our scene, ready to render. But, here came our biggest problems yet...and it's 7 day until our project is due.

Batch render doesn't work as we expected, or as it should...but single frame render does. We started animating our cameras and objects, and we made some changes to some objects after that, moving them and creating some new lights, etc. Those objects and lights that we change don't show in batch rendered images at all!! For example, if we moved an object just a few units to the right, that object didnt show in batch render any more..same with lights...

we are frustrated, its a big problem for us cause we have to be done with our project in 7 days and we started to do single frame render and save them one by one as stills.. but we are dead tiered and not even half way done..

if anyone has any idea why this happens and what to do ti fix this, please help 2 desperate souls.

# 2 17-01-2010 , 12:29 AM
Gen's Avatar
Super Moderator
Join Date: Dec 2006
Location: South FL
Posts: 3,522

Re: HUGE rendering problem - batch render different than single frame

Originally posted by Lokjutus
...... we made some changes to some objects after that, moving them and creating some new lights, etc. Those objects and lights that we change don't show in batch rendered images at all!! For example, if we moved an object just a few units to the right, that object didnt show in batch render any more..same with lights....

Not sure but could it be that your render camera's clipping plane is too low so it's snipping off your scene? That's the only thing that came to mind. Hope you guys sort it out.


- Genny
__________________
::|| My CG Blog ||::
::|| My Maya FAQ ||::
# 3 17-01-2010 , 06:14 AM
NextDesign's Avatar
Technical Director
Join Date: Feb 2004
Posts: 2,988
That's very odd... But it has happened to me as well. Take a look at your ram usage while batch rendering, as it has a tendency to just stop when it hits the limit.

I understand that you are in some trouble with time, so I've made a nasty little hack for you guys. You say single frame renders work? Well, here's a script I've quickly put together for you guys that will render a frame, save it out, render another, etc; therefore bypassing the usage of batch render. One thing to be aware however, is that once it starts, you won't be able to stop it until it finishes, or you force quit the process.

I haven't tested this as I don't have Maya installed on this machine, but it should work without problems.

Open up your script editor, and change the first 4 lines to your requirements.

Filename is used for something like "render.001.jpg"
Camera, is the camera you want to render out of
Start and end frame are self-explanatory.

If you have problems setting this up, just give me your requirements, and I'll do the changes for you.

Edit: The newest version can be found here

Code:
string $filename = "render";
string $cameraName = "persp";

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

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

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

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

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

    renderWindowSaveImageCallback ("renderView", $concatFilename, `getAttr defaultRenderGlobals.imageFormat`);

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

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


Imagination is more important than knowledge.

Last edited by NextDesign; 08-02-2012 at 03:32 AM.
# 4 17-01-2010 , 10:29 AM
Registered User
Join Date: Jan 2010
Location: Croatia
Posts: 11
NextDesign, I am so very much grateful to you and i can certainly say that this is the nicest thing anyone has done for me when i asked for some help online, regarding anything. Thank you so much.

That's so nice that i'm almost sorry that we managed to solve our problem before i read this post user added image.

Anyway, the problem wasn't the far clip plane, full RAM, or anything like that. It seems that somehow (i have no clue how) we had a "DefaultRenderLayer" created in our scene and that layer was checked as unrenderable. Anything that we created or changed after that layer was created seems to be put in that layer, therefor not renderable. (but interesting, still it was renderable as single frame) We haven't created that layer ourselves and have no clue how it was created, and WHY it had uncecked the "Renderable" box..

As for your script, thank you again for making the effort to help us, i will still test it out when we are done rendering. Hope this this thread and your script will help out some other desperate souls.

Cheers.

# 5 17-01-2010 , 05:34 PM
G-Man's Avatar
Subscriber
Join Date: May 2004
Location: Bowling Green. Kentucky U.S.A.
Posts: 810
Damn mate,
That was way above and beyond Next design...
My kinda guy user added image
G-man


Follow My Business
On The Web!
Or
On Facebook!
# 6 17-01-2010 , 06:29 PM
NextDesign's Avatar
Technical Director
Join Date: Feb 2004
Posts: 2,988
Glad to help guys. user added image

You don't know how nice it is to have a request that is fully described, and asked for nicely. It really makes the difference user added image


Imagination is more important than knowledge.

Last edited by NextDesign; 25-10-2011 at 06:01 PM. Reason: Grammar
# 7 12-08-2010 , 01:58 AM
Registered User
Join Date: Aug 2010
Posts: 1

Similar issue.

I am having a similar issue. I do a local render and the image comes out looking great but when I batch render the image is much flatter, some of the textures don't seem to work at all.

I am using final gather and it seems that its not using the effect in the batch render. I also loose glows and incandescence but fur looks like its on fire.

I don't have any render layers and Im not sure how to set up a final gather render pass. Would NextDesign's code work to render what I need? And if so how do you use that code in Maya 2010?

I have attached a RAR with a local screen capture jpeg of an .iff and a batch Tiff Frame so you can see the difference.

Thanks.

Attached Files
File Type: rar shot2.rar (144.6 KB, 2042 views)
# 8 07-01-2011 , 05:26 PM
michaelcawood's Avatar
Registered User
Join Date: Jan 2011
Location: Austin TX / Los Angeles CA
Posts: 4
We've had similar problems on our short film. One thing to look out for is that if you have some referenced and instanced objects you may need to import the references into your scene for Batch rendering to work. We had some referenced clouds instanced across the scene that didn't show up in batch render until we imported the reference. Very odd but it's a work around.

# 9 09-01-2011 , 04:22 PM
Registered User
Join Date: Jan 2011
Posts: 2

adjusting the render script

Hi,
I tried your script- it works fantastic!
Is there anyway to make it work with mental ray as the rendering engine?
I cant figure out where or what to adjust.
Many thanks
a






I haven't tested this as I don't have Maya installed on this machine, but it should work without problems.

Open up your script editor, and change the first 4 lines to your requirements.

Filename is used for something like "render.001.jpg"
Camera, is the camera you want to render out of
Start and end frame are self-explanatory.

If you have problems setting this up, just give me your requirements, and I'll do the changes for you.

Code:
string $filename = "render";
string $cameraName = "persp";

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

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

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

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

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

    renderWindowSaveImageCallback ("renderView", $concatFilename, `getAttr defaultRenderGlobals.imageFormat`);

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

print ("Completed rendering of " + ($endFrame - $startFrame) + " frames.\n");
Hope this helps guys.[/QUOTE]

# 10 13-01-2011 , 10:07 PM
Registered User
Join Date: Jan 2011
Posts: 2

Glad to helps guys. user added image

You don't know how nice it is to have a request that is fully described, and asked for nicely. It really makes the difference user added image

Hi there,
Im hoping you can tell me how to revise your script so that it calls on the Mental ray engine instead of the Maya software.
I am using Maya 2009 and the render view & globals are set to MR.
Any help would be so very appreciated.
Best,
a

# 11 14-01-2011 , 07:04 AM
NextDesign's Avatar
Technical Director
Join Date: Feb 2004
Posts: 2,988
Wow, it seems this script has attracted quite a bit of attention user added image

Here is a fixed version that will allow rendering in multiple renderers, as well as work in Maya 2011!

Code:
// Batch rendering workaround - John Mather (NextDesign)
string $filename = "render";
string $cameraName = "persp";

int $startFrame = 1;
int $endFrame = 3;

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 ("renderView", $concatFilename, `getAttr defaultRenderGlobals.imageFormat`)));
    else
        renderWindowSaveImageCallback ("renderView", $concatFilename, `getAttr defaultRenderGlobals.imageFormat`);

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

print ("Completed rendering of " + ($endFrame - $startFrame) + " frames.\n");
P.s. Many thanks goes out to nowayfra on CreativeCrash for his Maya 2011 fix! (https://www.creativecrash.com/forums/...on_post_306312)

Edit: Fixed a small bug that would stop all frames from being rendered.


Imagination is more important than knowledge.

Last edited by NextDesign; 24-01-2011 at 01:14 AM.
# 12 14-01-2011 , 07:57 AM
bullet1968's Avatar
Lifetime Member
Join Date: Feb 2010
Location: Australia
Posts: 4,255
ND you are a bloody champignon mate...kudos to you for the help with these problems..

cheers bullet


bullet1968

"A Darkness at Sethanon", a book I aspire to model some of the charcters and scenes
# 13 14-01-2011 , 10:18 AM
Registered User
Join Date: Jan 2011
Posts: 2
u r great...man.
it really works great.
it will avoid many internal errors during batch render.

# 14 17-02-2011 , 11:45 PM
Registered User
Join Date: Feb 2011
Posts: 2
Hey I am having a similar problem with my batchrender. This script could really come in handy but whenever I try and run it I am also having an error. If someone could help out I would be very grateful.

the error is ( // Error: renderWindowEditor: Object 'renderView' not found)

I am trying to render in Mental Ray out of a camera I have set up. anyone know what is causing that error?


maybe I am just filling in something in the first 4 lines incorrectly ...

# 15 22-02-2011 , 01:31 PM
BabyDuck's Avatar
Subscriber
Join Date: Nov 2002
Location: USA
Posts: 1,170
user added image Awesome script ND. 2 little things - just tested in maya 2011 and I get before each render this error:
Code:
# Error: AttributeError: ImageFormats instance has no attribute 'oldOutf' #
Not a deal breaker since the render does work w/o problems.

And also the last line should read
Code:
print ("Completed rendering of " + ($endFrame - $startFrame + 1 ) + " frames.\n");
otherwise it is saying completed one less render than it actually did (not really an issue, just a nitpick.

And I noticed if the files already exists it will ask each time if you want to overwrite it - nice feature, but might be annoying if you got a lot to render - so if you do, just delete the files beforehand.

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