An adaptive temporal sampling technique that renders only a subsample of animation frames and interpolates the rest to speed up rendering.
An animation analyzer is configured to receive an animation sequence and to identify a subsample of the frames that are to be rendered. A rendering engine is configured to render the subsample of the frames. The rendering engine isfurther configured to identify the frames that have not been rendered and to generate in-betweens for the frames that have not been rendered. The rendering engine is further configured to assemble the subsample of frames and the in-betweens into a video sequence depicting the animation sequence.
BRIEF DESCRIPTION OF THE DRAWINGS(1) FIG. 1 is an image of an example 3D scene.(2) FIG. 2 is a block diagram of an example system for generating a video from an animated 3D scene.(3) FIG. 3 schematically shows frames of a videobeing rendered, lit, and created.(4) FIG. 4 is an example graphic user interface of a non-linear editor.(5) FIG. 5 is a flowchart of an example process for creating a video from an animated 3D scene.(6) FIG. 6 is a schematic diagram that shows an example of a computingsystem.(7) Like reference symbols in the various drawings indicate like elements.DETAILEDDESCRIPTION(8) In the creation of a video sequence from an animated 3D scene, only a subsample of the animated frames may be rendered. The un-rendered frames may be created by warping preceding rendered frames, following rendered frames, or both, based on the animationof the 3D scene. These frames may be referred to as in-betweens. Similarly, only a secondsubsample of frames may be lit. The unlit frames can have lighting applied by warping preceding lit frames, following lit frames, or both.(9) To identify the subsample to be rendered and the subsample to be lit, which may be the same subsample, an animation analyzer can examine the animated 3D scene and select which frames are to be rendered and/or lit. Theanimation analyzer may consider, for example, motion vectors of pixels in a viewport of avirtual camera of the 3D scene and/or some properties of the objects in the 3D scene (e.g., reflectivi
1. A computer system comprising: an animation analyzer configured to: receive an animation sequence for a 3D virtual scene, the animation sequence indicating movements of one or more objects in the 3D scene, the animation sequence including a plurality of frames and each of the plurality of the frames representing the 3D virtual scene at a specific time point from a particular viewpoint; for each of the plurality frames: identify an absolute value of a motion vector describing the movement of a pixel from the frame to a next frame in the animation sequence; and assign a sample rate tothe frame based on the identified absolute value such that the plurality of the frames have the same sample rate; select one or more frames in the plurality of the frames as a first set of key frames in the animation sequence based on the sample rate; send, to a rendering engine, indication information indicating the first set of key frames in the animationsequence; and the rendering engine configured to: receive the animation sequence; receive, from the animation analyzer, the indication information; render the first set of key frames; and generate in-between frames between the first set of key frames based on the rendered first set of key frames; and assemble the rendered first set of key frames and the generated in-between frames into a video sequence depicting the animation sequence.
7. A computer implemented method comprising: receiving an animation sequence for a 3D virtual scene, the animation sequence indicating movements of one or more objects in the 3D scene, the animation sequence including a plurality of frames and each of the plurality of the framesrepresenting the 3D virtual scene at a specific time point from a particular viewpoint; for each of the plurality frames: identifying an absolute value of a motion vector describing the movement of a pixel from the frame to a next frame in the animation sequence; and assigning a sample rate to the frame based on the identified absolute value such that the plurality of the frames have the same sample rate; selecting one or more frames in the plurality of the frames as a first set of key frames based on the sample rate; sending, to a render engine, indication information indicating the first set of key frames for generatinga video sequence depicting the animation sequence based on the indication information, wherein the generation of the video sequence comprises: rendering the first set of key frames; generating in-between frames between the first set of key frames based on the rendered first set of key frames; and assembling the rendered and lit frames into a video sequence depicting the animation sequence.
10. A computer implemented method comprising: receiving an animation sequence for a 3D virtual scene, the animation sequence indicating movements of one or more objects in the 3D scene, the animation sequence including a plurality of frames and each of the plurality of the frames representing the 3D virtual scene at a specific time point from a particular viewpoint; for each of the plurality frames: identifying an absolute value of a motion vector describing the movement of a pixel from the frame to anext frame in the animation sequence; and assigning a sample rate to the frame based on the identified absolute value such that the plurality of the frames have the same sample rate; selecting one or more frames in the plurality of the frames as a first set of key frames based on the sample rate; receiving, from an animation analyzer, indication informationindicating the first set of key frames in the animation sequence; and generating a video sequence depicting the animation sequence based on the indication information, wherein thegeneration of the video sequence comprises: rendering, by a render engine, the first set of key frames; generating the in-between frames between the first set of key frames based on the rendered first set of key frames; and assembling the rendered first set of key frames and the generated in-between frames into the video sequence depicting the animation sequence.
13. A computer system comprising: an animation analyzer configured to: receive an animation sequence for a 3D virtual scene, the animation sequence indicating movements of one or more objects in the 3D scene, the animation sequence including a plurality of framesand each of the plurality of the frames representing the 3D virtual scene at a specific time point from a particular viewpoint; for each of the plurality frames: identify an absolute value of a motion vector describing the movement of a pixel from the frame to a next frame in the animation sequence; and assign a sample rate to the frame based on the identified absolute value such that the plurality of the frames have the same sample rate; selectone or more frames in the plurality of the frames as a first set of key frames based on the sample rate; send, to a rendering engine, indication information indicating the first set of key frames in the animation sequence; and the rendering engine configured to: receive the animation sequence; receive, from the animation analyzer, the indication information; render the first set of key frames; and generate the in-between frames between the firstset of key frames based on the rendered first set of key frames; and assemble the rendered first set of key frames and the generated in-between frames into a video sequence depicting the animation sequence.