Updating animated images represented by scene graphs
AssigneeMicrosoft Corporation
InventorsGreg D. Schechter, Chun-Fu R. Yeung, Danny R. Dalal
Life of this patent
Estimating the term…
Abstract
Each frame in an animated graphics sequence has a hierarchical scene graph. Graph elements have creation timestamps that mark them as dirty, requiring rendering, or constant, not requiring rendering anew for the current frame. If an aggregate element is constant, it is rendered as a whole, without investigating its child elements. If dirty elements meet certain criteria, they are merged for rendering as a single unit. In this way, the scene areas to be rendered have variable positions and sizes.
Claims26
A method for generating an updated frame from a previous frame of a sequence of frames of a graphical scene having multiple elements, the updated frame including elements from the previous frame that have been modified, each element from the previous frame having an old timestamp, the method comprising:
- affixing a new timestamp to each element that has been modified;
- constructing a hierarchical graph of the elements in the updated frame, the hierarchical graph having a number of subgraphs;
- while traversing the hierarchical graph,
- detecting that one of the elements has not been modified by comparing the old timestamp of the element to the new timestamp;
- skipping the traversal of a subgraph of the one element, and
- identifying at least some of the remaining elements as dirty elements by comparing the old timestamp of one of those remaining elements to the new timestamp;
- rendering only the dirty elements of the hierarchical graph;
- and
- combining the rendered elements with those elements that have not been modified to produce an image of the updated frame.
A medium containing computer-readable instructions for executing a method for generating an updated frame from a previous frame of a sequence of frames of a graphical scene having multiple elements, the updated frame including elements from the previous frame that have been modified, each element from the previous frame having an old timestamp, the method comprising:
- affixing a new timestamp to each element that has been modified;
- constructing a hierarchical graph of the elements in the updated frame, the hierarchical graph having a number of subgraphs;
- while traversing the hierarchical graph,
- detecting that one of the elements has not been modified by comparing the old timestamp of the element to the new timestamp;
- skipping the traversal of a subgraph of the one element, and
- identifying at least some of the remaining elements as dirty elements by comparing the old timestamp of one of those remaining elements to the new timestamp;
- rendering only the dirty elements of the hierarchical graph;
- and
- combining the rendered elements with those elements that have not been modified to produce an image of the updated frame.
A method for rendering a current frame of an animation having a sequence of frames, each frame having a number of images that are represented by a number of elements, each element including a timestamp, the method comprising:
- replacing an old timestamp of an element with a new timestamp if the element will be modified by an operation;
- constructing a current scene graph for the current frame by executing one or more operations on one or more elements;
- and
- rendering the current scene graph to form a presentation suitable for a display, the act of rendering refraining from rendering an element that lacks a new timestamp.
Dependencies are inferred from the claim text.