Fastest way to render 2D Animation (Blender internal)


I’m focusing about 2D animation since I thought it would have been faster. It’s also the occasion to create an animation of a comic strip I did when I was teenager.

So I created this scene

Then I cut all the layers (Background, curtains, seats) to incorporate the characters (also done in 2D) between those layers.
Finally, I made some changes to have the fastest render time (shadeless materials, no light, just the camera, and I even change the resolution from 19201080 to 1280720).

I finally managed to have a render time of 10 seconds, which is (IMO) way TOO long!

Here’s how it looks in Blender

Don’t you have tips? (I know my computer is kinda old, around 6 years or so)

I thought Blender would have render it in a fraction of time since it’s only rendering planes with shadeless images and except for the last plane, all the other one have transparency…

if you dont need a raytracer, then use the game engine. its basically the same but uses opengl.

you can use a python script to output the frames, or use a screen recorder.

OR, try setting the tile size to the output size. or calculate the size for the number of cpu cores you have. reduce the samples.

Assuming that’s 10 seconds per frame, and ~42 minutes for 250 frames.

If what you want is in the viewport, you can save that with render menu -> opengl render animation. 3D view properties -> display: only render hides everything else, and opengl render settings follow the settings in render properties.

Thanks guys!
I never used the render button below, indeed, it’s exactly what I need, when I click, the image directly appears!

Though I’m facing a new prob… :frowning:

Because of the alpha, there are stranges white lines around every borders, here’s how it looks :

My images are .png
When I have an image with an alpha channel I just click on material > transparency > Z transparency and for the texture I click on alpha (set to 1.000), what’s wrong? I don’t have this with Blender Render…

If I find a solution I could set the resolution to 1920*1080 :smiley:

I quickly test the animation button with opengl, it seems it’s only saving the frames, so I guess I should work differently (I used to directly output in H.264), this time I’ll need to save all the frames, save the sounds, then mix everything! Not a prob because it seems it’s gonna be fast if I find a solution for the white lines.

not that familiar with the internal, but try setting alpha type to “clip” in the material settings. that should make the edges sharper.

Indeed, after few researches I found the same prob, I set it to alpha clip (alpha and ever specular to 0), it’s a bit better but not perfect, while it’s perfect in viewport :confused:

Here’s the image rendered (click on link, otherwise it seems ok) :

Here’s the blend.file


The issue has to do with the way Blender handles partial transparency in the GL renderer. You can tell because the lighter bits are checkered if you zoom way in.

I couldn’t figure out a way around this, so I just disabled alpha in the output…

and boom! Problem solved!
You could also just export straight to jpg, which doesn’t support alpha, so that would fix it too.
I fiddled around and did a bunch more optimizations (turning off sampling and mipmaps, cutting out un-used geometry, random other stuff I’ve forgotten)
LAYERS THEATRE V2_dudecon.blend (1.34 MB)
That version renders 100 frames in about 2 seconds (so, 20ms per frame) which is about 500 times faster than you started with! No guarantees on your hardware, of course, but it’s a start!
Do keep us all updated on how this project turns out! Looks fun!

Oh, and just to eliminate ambiguity, use these buttons for the super-fast render times:

They bypass the blender render system entirely and use open GL, which renders on the optimized graphics card hardware, with the disadvantage that some things are a little odd, like the partial alpha stuff above.

dudecon, thanks a lot!

Indeed, I use these buttons :eyebrowlift:
I’m finally motivated to do an animation. (I have a bunch of 3D animation I gave up because of my slow computer).
Now it’s fast as hell!

I’m so dumb I didn’t think about JPG…

Though I still use my file because you cut the layers, I’d like to keep them at that size for other environments. (I turned off mipmaps, didn’t find sampling though I don’t mind, it seems really fast…)

This one as many layers because of the seats rows.

I’ll use 25 frame/second, it’s just convenient, easy to calculate, etc.

Well well well, seems I have to work on my animation :stuck_out_tongue: I didn’t create the characters yet.

I guess I’ll do it in french first, I’m Belgian American, maybe I’ll translate it or firstly subtitle it (I know we can do it with Youtube).

Thanks a lot guys :smiley:

Hi again,

Instead of doing a new thread I rather continue here… I’m facing another problem, I’m still struggling with alpha layers…
I’m doing the opening theme

Click on it for full size, otherwise you won’t see it…

  1. Black lines aren’t smooth with Opengl, it only appears “jaggy” on the glasses and the neck. (Why?)
  2. Also, there’s an awful line near the armpit.

Do I have to work with theses issues? There’s no solution?
On blender game I changed everything to “Alpha clip”.

At least Opengl is really fast, for 10 seconds of animations it takes maybe 10 seconds or less to render, I don’t even bother counting rendering time.

I also had to trick Blender for the fade in/fade out black, instead of using alpha (which seems to don’t work), I changed the color material to shadeless black.

*Oops and I just notice that big mistake, no “e” at the end of ennui…


I realize one weird thing :
If I click on OPENGL to render the video, it renders all the frames on the folder I told him, though there’s the line on the armpit… (jaggy black lines don’t bother me that much)

BUT, If I click on render with OPENGL then click on image>save as image, there’s no more line on the armpit!!!

Aaargh… I won’t save every image, it’s time consuming…

You’ll have to include an attachment that we can play with to see what’s going on here. Could be the texture you’re using. Could be the transparency mode, or the sampling.
In short though, yes, Blender’s OpenGL integration is not the best, and you’ll therefore fight with oddities like these unless you decide to work around them.
One thing you can try for transitions between elements is make a “wing” to hide the edge. It’s a nasty kludge, but it works for some things.

Thanks for the reply!

For this project, I’ll use both render mode I think.
Sometimes OpenGL works good, when he doesn’t, I’ll use Blender…

I compared the rendering time of the opening theme for 100 frames (25/second, so 4 seconds of animation) :
OpenGL = 37 seconds
Blender = 2min 29 seconds

The average time for an animation of 5 minutes :
OpenGL = 46 minutes
Blender = 3hours and 6 minutes

I guess, I’ll be max, at 5 hours of render time, it shouldn’t be an issue and I’ll have better results.

Though OpenGL is still really interesting for other projects.