Suggestion for speeding up animation rendering

Started by Winch Doctor, May 16, 2014, 12:46:56 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Winch Doctor

I was thinking that animations of repeated frames in which there is no movement can simply be copied by Keyshot for that duration. e.g. if I have a box move, stop for a second, and move again, Keyshot renders all of the frames, including those in which the box is not moving. I think it could just copy the first 'still' frame enough times to complete that entire second, and number the copies accordingly. Would cut out a lot of rendering time (depending on the animation).

andy.engelkemier

This is a good idea, however, the better way is to just skip repeated frames altogether, and do any repeating in post. Otherwise, you're just wasting hard drive space.
That being said, not everyone has access to software that can do that, so it's still a good idea. But it should probably get both options.

Render all frames
Skip repeated frames
or Copy repeated frames

One other reason to render all frames is if there is any noise in the render, it looks odd to have the noise suddenly stop. If you render the same frame over and over, it will continue to move around a bit, almost like film grain.

Winch Doctor

I thought about the film grain thing too. For me though, the frames always appear exactly identical even if I'm using the "maximum time" setting where you can really notice the gritty shadows if you set it low. As it renders, each individual dot of grit always overlaps perfectly anyway.

andy.engelkemier

well that's probably a "behind the scenes" setting that keyshot could set. In Vray you can set the noise pattern to always be the same, or to be different for every frame.

The best solution might be to just always move the camera. If you move the camera .001 over your 4 second pause it will appear not to move to the viewer, but that will probably keep the noise moving because every frame is then "slightly" different. The noise probably just does the exact same thing because you are literally rendering the same frame twice.
Alternatively, you could animate the lights just a touch. Again, no one would notice except for the lighting computation, which would alter the noise.

Winch Doctor

mmm, actually, try making a reflective object, and animate the camera rotating around it slowly. With a low setting on the maximum time option, say like 1 second/frame, it appears to reflect grit, i.e. the grit is always calculated in exactly the same fashion and even an individual dot can be tracked with the eye. I think it's much less random than you'd believe, relying on whatever algorithm Keyshot uses to calculate the darkest portions of the object.

Winch Doctor

Just had another thought using the same sort of principle which would be much more useful: Keyshot could be made to detect which parts of the next frame show movement, copy over the unmoving parts of the previous frame, and render only the portion of the image which moved. During zooms and fly-arounds, not much use. During closeups to show individual moving parts, tremendous time-saver.

HaroldL

I'm just getting started with animations and as I was waiting for a 15 second anim to finish (almost 15 hours) I was thinking how much time is taken by rendering all the pixels that do not move in the frame(s). The anim has only one part that fades in, translates along the X axis, Rotates, then reverses back to the original position and fades out.

I thought I'd post a suggestion here but see that it has already been suggested. So I'll just add my "vote" to it and add that I have read about the "render only pixels that move" technique before, I just don't recall what the animation software was.

KeyShot

The challenge is that even a moving part can affect all the other parts (reflections and indirect illumination). The background if static should not take long to render.

Winch Doctor

Argh, didn't consider that. So for example, if an object moves, Keyshot has to check all the tiny lighting and reflection changes that may have occurred? I would still LOVE to have repeated frames copied in instances where animation is not happening, but I guess my follow-up idea is a bust.