Techniques and workflows for computer graphics animation system
Abstract
The disclosed implementations describe techniques and workflows for a computer graphics (CG) animation system. In some implementations, systems and methods are disclosed for representing scene composition and performing underlying computations within a unified generalized expression graph with cycles. Disclosed are natural mechanisms for level-of-detail control, adaptive caching, minimal re-compute, lazy evaluation, predictive computation and progressive refinement. The disclosed implementations provide real-time guarantees for minimum graphics frame rates and support automatic tradeoffs between rendering quality, accuracy and speed. The disclosed implementations also support new workflow paradigms, including layered animation and motion-path manipulation of articulated bodies.
Claims
exact text as granted — not AI-modified1 . An animation method, comprising:
providing a display environment for presentation on a display device; providing a body for display in the display environment; and determining a motion path for a first portion of the body relative to a second portion of the body.
2 . The method of claim 1 , where determining a motion path further comprises:
displaying a curve in the display environment that defines the motion path in space over time.
3 . The method of claim 1 , further comprising:
providing a control in the display environment for manipulating the motion path; and manipulating the motion path in response to a user interaction with the control.
4 . The method of claim 1 , where the display environment is a three-dimensional space.
5 . The method of claim 1 , where the display environment is a two-dimensional space.
6 . The method of claim 1 , where the body is from a group of bodies including articulated bodies, rigid bodies and bodies with one or more deformable surfaces.
7 . The method of claim 1 , further comprising:
receiving input from an input device manipulated by a user while viewing the body in the display environment.
8 . The method of claim 2 , where manipulating the motion path further comprises:
deforming one or more surfaces of the body.
9 . The method of claim 2 , where displaying a curve further comprises:
determining points along the motion path at discreet sample times; and rendering the points to define the curve through space over time.
10 . The method of claim 9 , further comprising:
rendering the curve using a number of points based at least in part on the speed of the body along the motion path.
11 . The method of claim 9 , further comprising:
automatically rendering the curve to pass through a reference point on the body in response to user input.
12 . The method of claim 9 , further comprising:
dilating the curve about a point in space to improve visibility of the curve in the display environment.
13 . The method of claim 9 , further comprising:
stretching the curve out in time to improve visibility of the curve in the display environment.
14 . The method of claim 9 , further comprising:
rendering the line segments relative to a moving camera view.
15 . The method of claim 1 , further comprising:
displaying one or more portions of the curve in one or more colors to improve visibility of the curve in the display environment.
16 . The method of claim 1 , further comprising:
displaying information along the motion path to indicate rate of movement of the body over a section of the motion path.
17 . The method of claim 1 , further comprising:
displaying information along the motion path to indicate timing and one or more values associated with animation key frames.
18 . The method of claim 3 , further comprising:
rendering ghost geometry along a section of the motion path during interactive manipulation of the motion path.
19 . The method of claim 1 , further comprising:
animating the first portion of the body to follow the motion path.
20 . The method of claim 19 , further comprising:
providing ghost images of the first portion of the body along the motion path during animation.
21 . The method of claim 19 , further comprising:
providing cached data associated with frames of animation over time, where at least some of the cached data is used during animation.
22 . The method of claim 1 , further comprising:
defining the body by an expression graph with cycles.
23 . The method of claim 22 , further comprising:
providing one or more articulated variables for changing values within the expression graph.
24 . An animation method, comprising:
providing a display environment for presentation on a display device; providing a body for display in the display environment; providing a first motion path for a first portion of the body relative to a second portion of the body; providing a second motion path for the first portion of the body relative to a second portion of the body; and providing a mechanism for animating the first portion of the body to follow either the first or second motion path.
25 . The method of claim 24 , further comprising:
associating the first motion path with a first layer; and associating the second motion path with a second layer.
26 . The method of claim 25 , further comprising:
associating the first and second layers with a class from a group of layer classes including: kinematic, forward dynamic, multipoint dynamic, procedural, sampled and stochastic.
27 . The method of claim 24 , further comprising:
defining the first and second layers as a layer set.
28 . The method of claim 24 , further comprising:
performing one or more operations on the first and second layers in response to user input.
29 . A method of creating expression graphs for an animation system, comprising:
providing a graphical user interface; receiving a first node selection from a plurality of node types; receiving a second node selection from the plurality of node types; displaying graphical representations of the selected nodes in the graphical user interface; and providing a connection mechanism for enabling a user to connect at least one output of the first node with at least one input of the second node to form a graphical structure that represents a unified generalized expression graph with cycles.
30 . The method of claim 29 , where at least some of the node types are templates.
31 . The method of claim 29 , where the expression includes one or more conditions.
32 . The method of claim 29 , further comprising:
providing an expression language for entering mathematical expressions into an input of one or more of the first and second nodes.
33 . The method of claim 29 , where at least one of the first and second nodes is associated with a cache structure for storing one or more values for various discrete sample times.
34 . The method of claim 29 , where at least one of the first and second nodes is configurable to broadcast a value on a named channel which can be received by one or more receiver nodes.
35 . The method of claim 29 , where at least one of the first and second nodes is configurable to solve kinematic problems.
36 . The method of claim 29 , where a user can specify either the first node or the second node as a root node.
37 . The method of claim 29 , where the graphical structure is a hierarchy which is configurable to allow data to flow bi-directionally through the hierarchy.
38 . A method of creating an expression graph for an animation system, comprising:
providing a text-based programming language for specifying expression graphs for an animation system; executing a program developed with the programming language to generate an expression graph; and animating a body in a display environment using the expression graph.
39 . An animation method, comprising:
providing a display environment for presentation on a display device; providing a first body for display in the display environment; providing a second body for display in the display environment; and determining a motion path for a portion of the first body relative to the second body.
40 . An animation method, comprising:
providing a display environment for presentation on a display device; providing a body for display in the display environment; and determining a motion path for a portion of the body relative to a coordinate system associated with the display environment.
41 . An animation method, comprising:
providing a display environment for presentation on a display device; providing a body for display in the display environment; evaluating an expression graph associated with the body at a first rate; processing body geometry at a second rate; and rendering the body in the display environment at a third rate, where the first and second rates are decoupled from the third rate.
42 . A computer-readable medium having stored thereon instructions which, when executed by a processor, causes the processor to perform the operations of:
providing a display environment for presentation on a display device; providing a body for display in the display environment; and determining a motion path for a first portion of the body relative to a second portion of the body.
43 . A computer-readable medium having stored thereon instructions which, when executed by a processor, causes the processor to perform the operations of:
providing a display environment for presentation on a display device; providing a body for display in the display environment; providing a first motion path for a first portion of the body relative to a second portion of the body; providing a second motion path for the first portion of the body relative to a second portion of the body; and providing a mechanism for animating the first portion of the body to follow either the first or second motion path.
44 . A computer-readable medium having stored thereon instructions which, when executed by a processor, causes the processor to perform the operations of:
providing a display environment for presentation on a display device; providing a body for display in the display environment; providing a first motion path for a first portion of the body relative to a second portion of the body; providing a second motion path for the first portion of the body relative to a second portion of the body; and providing a mechanism for animating the first portion of the body to follow either the first or second motion path.
45 . A computer-readable medium having stored thereon instructions which, when executed by a processor, causes the processor to perform the operations of:
providing a display environment for presentation on a display device; providing a first body for display in the display environment; providing a second body for display in the display environment; and determining a motion path for a portion of the first body relative to the second body.
46 . A computer-readable medium having stored thereon instructions which, when executed by a processor, causes the processor to perform the operations of:
providing a display environment for presentation on a display device; providing a body for display in the display environment; and determining a motion path for a portion of the body relative to a coordinate system associated with the display environment.
47 . A computer-readable medium having stored thereon instructions which, when executed by a processor, causes the processor to perform the operations of:
providing a display environment for presentation on a display device; providing a body for display in the display environment; evaluating an expression graph associated with the body at a first rate; processing body geometry at a second rate; and rendering the body in the display environment at a third rate, where the first and second rates are decoupled from the third rate.Join the waitlist — get patent alerts
Track US2006274070A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.