Rendering time (image vs image series vs movie)
Hi all, first approch in 3d animation here (sorry in advance for my english).
I have been trying to render a 6 second animation (just two character, no background... made in half an hour of time) for a week...
Pc spec:
cpu: i9
gpu: rtx 2080
render type: invidia iray
ram: 64 gb
The first time I tried to render it as a movie (after 18 hours I stopped manually, I couldn't take it anymore and I needed the PC).
Then I tried to save the individual frames with various settings finding a good compromise (HD 1280x720): total time 2'30'' time.
So I decided to render all the frames (180) via the "image series" settings. The first frame take around 2:30... but the second... take 15' (???)
How is it possible that by rendering the frames in series the time is so much longer than by rendering them individually? Is a bug?
Comments
Try using the Public Build, https://www.daz3d.com/daz-studio-beta , which has made soem chnages to the way the resources are shuffled after each render to try to remove or at least reduce the dropping to CPU on later frames in animations.
Thanks i will try!
WOW "image series" seems fixed with that release. Thanks!
I share what I have done in the hope that it will help someone!
Rendering a frame of a scene with 2 characters in a furnished house takes about about 15 minutes, no less with my pc (powerful enough, see the spec in first p).
1. Since the background in my case is static it is useful to render it for all the frames (180), therefore it is rendered only once (12-13 min).
2. After that, rendering all the frames with the characters (going to remove the background from the scene first). For this I use the "image series" function. (About 2 min per frame: 180 frame total = 6 hours).
3. Last step is to make a video from that images (characters frames and stage-background image). To make that step is possible to use any proigrams but i prefer line command with ffmpeg (1 min in total this step).
3a. First, let merge all characters frames with the background image.
/usr/bin/ffmpeg -i '$stageIMGwithpath' -i '$charactersFrameIMGnamewithpath001' -filter_complex 'overlay' '$outputIMGnamewithpath001.png'
/usr/bin/ffmpeg -i '$stageIMGwithpath' -i '$charactersFrameIMGnamewithpath002' -filter_complex 'overlay' '$outputIMGnamewithpath002.png'
/usr/bin/ffmpeg -i '$stageIMGwithpath' -i '$charactersFrameIMGnamewithpath003' -filter_complex 'overlay' '$outputIMGnamewithpath003.png' ...
For all frames (if you are developer like me, is a simple "for".
3b. Let a make a movie with all complete (background + characters) frames.
/usr/bin/ffmpeg -framerate $framerate -r $framerate -i '$outputIMGwithpath%03d.png' -c:v libx264 -vf 'fps=$framerate,format=yuv$dpip' '$outputVIDEOwithpath'
The bold are params, example:
$stageIMGwithpath=my-project-path/bg/bg.png $charactersFrameIMGnamewithpath001=my-project-path/characters/frame001.png $outputIMGnamewithpath001=my-project-path/complete-frames/frame001.png $framerate=30 $outputIMGwithpath=my-project-path/complete-frames/frame (the %03d is a var in ffmpeg) $dpi=420 $outputVIDEOwithpath=my-project-path/video.mp4
So total rendering time with this system for a 6 seconds animation in HD 1280x780 420dpi 30 frame per second (total 180 frames) is 6 hours and 20 mins.Hope can be helpful for someone!
Edited to fix formatting for forum
Welcome UNIX user :)
With ffmpeg, you don't need the for-loop. It supports a form of filename globbing:
-i %04d.png
Can I ask, as I'm interesting in any/all tips, is the lighting still "correct" if you composite background and characters like this? What about shadows on the environment and bounce lighting from characters and to them?
Thanks for the tip!
No, the shadows aren't correct. :(
Anyway, is a good compromise with some precautions
I know this is an old thread, but with respect to shadows, I would mention that I have done something similar, but use a "floor mat" to catch the shadows of the figure(s) when rendering the frames without the background. Also, it seems to me to help to use DOF in rendering the background as the blurring looks more "real" to me.
I've also witten a program to watch the render directory and overlay the frames as they are created, which is helpful in showing progress, etc., and it also can be set up for left and right eye and create SBS stereo frames as the pairs become available. I haven't made it available but I could release it on github if there is interest.
/t