IP Library Granted Patent US 7,176,915
Granted Patent B1
US 7,176,915 · App. 10/216,402 · Granted Feb 13, 2007

Subdividing rotation in a character using quaternion interpolation for modeling and animation in three dimensions

Assignee: Avid Technology, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,176,915
App. No.
10/216,402
Granted
Feb 13, 2007
Kind
B1
Abstract

Subdividing rotation between two poses in three dimensions may be accomplished in three parts. First, data defining the two poses is obtained from the animation or modeling interface. Second, a path associated with the two poses is determined. Third, using quaternion interpolation, the roll between the two poses is interpolated at intermediate positions along the path. The amount of roll at each of these intermediate positions then may be applied to three dimensional structures used for character rigging.

Claims (49)

1. An apparatus for subdividing rotation among three dimensional structures along a path in a three dimensional model, wherein each three dimensional structure is associated with an intermediate position along the path, comprising:

means for receiving data defining a first pose and a second pose in three dimensions, wherein a pose is defined by at least a direction and a roll around the direction;

means for receiving data defining the path associated with the first pose and the second pose;

means for determining a direction for each of the intermediate positions along the path;

means for determining an amount of roll around the direction at each of the intermediate positions along the path using quaternion interpolation between the roll of the first pose and the roll of the second pose; and

means for applying the determined amount of roll at the intermediate positions along the path to the three dimensional structures associated with the intermediate positions.

2. A method for subdividing rotation among three dimensional structures along a path in a three dimensional model, wherein each three dimensional structure is associated with an intermediate position along the path, comprising:

receiving data defining a first pose and a second pose in three dimensions, wherein a pose is defined by at least a direction and a roll around the direction;

receiving data defining the path associated with the first pose and the second pose;

determining a direction for each of the intermediate positions along the path;

determining an amount of roll around the direction at each of the intermediate positions along the path using quaternion interpolation between the roll of the first pose and the roll of the second pose; and

applying the determined amount of roll at the intermediate positions along the path to three dimensional structures associated with the intermediate positions.

3. A computer program product comprising:

a computer readable medium;

computer program instructions stored on the computer readable medium that, when executed by a computer, cause the computer to perform a method for subdividing rotation among three dimensional structures along a path in a three dimensional model, wherein each three dimensional structure is associated with an intermediate position along the path, comprising:

receiving data defining a first pose and a second pose in three dimensions, wherein a pose is defined by at least a direction and a roll around the direction;

receiving data defining the path associated with the first pose and the second pose;

determining a direction for each of the intermediate positions along the path;

determining an amount of roll around the direction at each of the intermediate positions along the path using quaternion interpolation between the roll of the first pose and the roll of the second pose; and

applying the determined amount of roll at the intermediate positions along the path to three dimensional structures associated with the intermediate positions.

4. An apparatus for subdividing rotation among three dimensional structures along an element of a three-dimensional object, wherein each three dimensional structure is associated with an intermediate position along the element, comprising:

means for receiving data defining a first pose in three dimensions associated with an end of the element and a second pose in three dimensions associated with another end of the element, wherein a pose is defined by at least a direction and a roll around the direction;

means for determining a direction at each of the intermediate positions along the element;

means for determining an amount of roll around the direction at each of the intermediate positions along the element using quaternion interpolation between the roll of the first pose and the roll of the second pose; and

means for applying the determined amount of roll at the intermediate positions along the element to the three dimensional structures associated with the intermediate positions.

5. A method for subdividing rotation among three dimensional structures along an element of a three-dimensional object, wherein each three dimensional structure is associated with an intermediate position along the element, comprising:

receiving data defining a first pose in three dimensions associated with an end of the element and a second pose in three dimensions associated with another end of the element, wherein a pose is defined by at least a direction and a roll around the direction;

determining a direction at each of the intermediate positions along the element;

determining an amount of roll around the direction at each of the intermediate positions along the element using quaternion interpolation between the roll of the first pose and the roll of the second pose; and

applying the determined amount of roll at the intermediate positions along the element to the three dimensional structures associated with the intermediate positions.

6. A computer program product comprising:

a computer readable medium;

computer program instructions stored on the computer readable medium that, when executed by a computer, cause the computer to perform a method for subdividing rotation among three dimensional structures along an element of a three-dimensional object, wherein each three dimensional structure is associated with an intermediate position along the element, comprising:

receiving data defining a first pose in three dimensions associated with an end of the element and a second pose in three dimensions associated with another end of the element, wherein a pose is defined by at least a direction and a roll around the direction;

determining a direction at each of the intermediate positions along the element;

determining an amount of roll around the direction at each of the intermediate positions along the element using quaternion interpolation between the roll of the first pose and the roll of the second pose; and

applying the determined amount of roll at the intermediate positions along the element to the three dimensional structures associated with the intermediate positions.

7. The apparatus of claim 1 , wherein the three dimensional structures define a spine of the three-dimensional object.

8. The apparatus of claim 1 , wherein the quaternion interpolation permits a determination of a rotation greater than 180 degrees.

9. The method of claim 2 , wherein the three dimensional structures define a spine of the three-dimensional object.

10. The method of claim 2 , wherein the quaternion interpolation permits a determination of a rotation greater than 180 degrees.

11. The computer program product of claim 3 , wherein the three dimensional structures define a spine of the three-dimensional object.

12. The computer program product of claim 3 , wherein the quaternion interpolation permits a determination of a rotation greater than 180 degrees.

13. The apparatus of claim 4 , wherein the three dimensional structures define a spine of the three-dimensional object.

14. The apparatus of claim 4 , wherein the quaternion interpolation permits a determination of a rotation greater than 180 degrees.

15. The method of claim 5 , wherein the three dimensional structures define a spine of the three-dimensional object.

16. The method of claim 5 , wherein the quaternion interpolation permits a determination of a rotation greater than 180 degrees.

17. The computer program product of claim 6 , wherein the three dimensional structures define a spine of the three-dimensional object.

18. The computer program product of claim 6 , wherein the quaternion interpolation permits a determination of a rotation greater than 180 degrees.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2008
From: AVID TECHNOLOGY, INC.
To: AUTODESK, INC.
Reel/Frame 021962/0974 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2004
From: ISNER, MICHAEL
To: AVID TECHNOLOGY, INC.
Reel/Frame 015284/0470 →