LogicReinc / LogicReinc.BlendFarm

A stand-alone Blender Network Renderer
GNU General Public License v3.0
412 stars 35 forks source link

Cache blend file across frame renders during animations? #96

Open dnalbach opened 6 months ago

dnalbach commented 6 months ago

First, thank you immensely for the work you've done on this. It really was fast and easy to get set up and working and rekindled my interest in Blender.

When I render animations out, it seems like a lot of the time per frame (50-75%) is setup and loading of the blender file when doing simple renders with Cycles. The actual render time per frame is very fast for my test scenes, in one case 2-3 seconds out of a 15 second total frame time. Is there any way to cache the blenderfile across/between frame renders so the network render target can immediately move to the next frame? I think this would dramatically speed up animation rendering.

I have a bit of an unusual render farm. My main desktop has an RTX 2070 Super in it and can do light duty in blender, but I am using an AI workstation with dual 4090s as the network node, and I want to render animation frames exclusively to it, so I can use my desktop to work on other things during the frame rendering. The dual 4090s render simple frames really fast, and the bottleneck is really the blender file load and prep process, not the actual rendering. The blend file doesn't change between frames and doesn't seem like there would be any value in resyncing it and reloading it between frames, though I do understand why an ephemeral process like that would be desirable. Since I'm really just using BlendFarm as a way to render off-machine to a single node, is there anything I can do to cache the blendfile setup for the next frame?

I'm on Ubuntu 22.04 for both systems, although the AI workstation is running Ubuntu server and has no GUI, just terminal access. Any advice is welcome, and I'm a pretty technical guy, though this is not my area of expertise.

LogicReinc commented 5 months ago

It should already be doing what you describe. A file is synced once, then when you start rendering, it will run multiple tasks against the same Blender instance (till a certain idle timer is reached, after which it kills the process). So I'd have to retest it. I have a dual 3090 headless server as well. Sadly I'm quite swamped with my job so haven't had time to work on BlendFarm.