-
Notifications
You must be signed in to change notification settings - Fork 288
Description
--Issue Summary--
Various users have been complaining on recent issues with long-er animation projects that are failing to be rendered. I investigated and found that Pencil2D eats your RAM memory (at least on windows) when trying to render export video or image sequences.
With this in mind I'd like to propose to model a feature similar to one found in After Effects. This would depend on having caching system for our animation frames and / or our layers as a whole, as well as a purge system to "liberate" the memory that's being used by Pencil2D resources.
Here's a brief explanation an After Effects user on how these reference features works in after effects:
A)"Disable Layer Cache: This tells AE not to retain layer information during it's renders. "
Note: It's use case is that if you edit one layer our of many, only that layer with change in the cache and when you render "previews" you won't have AE caching all the layers but only those that were modified.
B)"Purge Every X frames during Make Movie:
This tells AE how often to purge its memory. The smallest allowable number is 1 - which means AE will purge its memory at each frame. The smaller the number the less likely it will be that AE will face a memory issue. The trade-off is that at smaller values, your renders will be slower, as occasionally, stuff will be purged that AE still requires. Under such circumstances AE will have to recalculate that information again - purging also takes time."
This is important because the most common pitfall I've seen from users that experience rendering failures, is because they don't have top grade hardware. And even if they do, be it with Pencil2D or with After Effects, there's a moment when the memory becomes full and the process cannot continue, so the application either crashes, or else.
Programming wise I have no idea how to implement this, but by having a purge system along the mem cache implementation we could simulate how the feature works, and similar to AE it should be a feature only to be used with longer animation projects.
This is a feature that is used in real-world scenarios and productions when rendering projects, because no amount of optimization will help you when your project is big enough and you don't have access to a render farm or 32 gigs of RAM to render solo.
Would love to hear your thoughts on this later on.
--Video or Image Reference--
This happened when I rendered file with 800 frames and also 4K resolution. This was the amount of memory being used just at 9% of the export operation, and before I canceled.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status