IP Library Patent Application 11374770
Patent Application
App. No. 11/374,770

Abstracting transform representations in a graphics API

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 None
App. No.
11/374,770
Abstract

Various technologies and techniques are disclosed that improve the process of working with 3D rotations. Rotations are treated as a separate abstract entity from general transforms. By having rotations separate from general transforms, the user can perform the various operations on any “rotation” regardless of its encoding. An abstract 3D transform class is provided that represents a transform that can be applied to 3D a mesh or scene node, and an abstract 3D rotation class is provided which is exposed separately from other general transforms. A concrete implementation of the 3D transform class uses a 3D rotation class to apply a rotation to a 3D mesh or scene node. One or more concrete implementations of the 3D rotation class are provided which represent a separate rotation encoding.

Claims (32)

1 . A method for separating 3D rotations from general 3D transformations comprising the steps of:

providing at least one class for performing general transforms;

providing an abstract 3D rotation class which is exposed separately from the general transforms; and

providing at least one concrete implementation of the abstract 3D rotation class.

2 . The method of claim 1 , further comprising:

providing a plurality of operations that can be applied to the 3D rotation class.

3 . The method of claim 2 , wherein the plurality of operations are selected from the group consisting of an addition operation, a subtraction operation, a magnitude computation operation, a rotation interpolation operation, and a key frame interpolation operation.

4 . The method of claim 2 , wherein at least a portion of the plurality of operations can be performed between at least two separate rotations.

5 . The method of claim 1 , wherein the at least one concrete implementation of the abstract 3D rotation class comprises a plurality of concrete implementations, each of the plurality of concrete implementations representing a separate rotation encoding.

6 . The method of claim 5 , wherein the plurality of concrete implementations comprises a first concrete implementation and a second concrete implementation, and wherein the first concrete implementation has a first rotation encoding that is different than a second rotation encoding of the second concrete implementation.

7 . The method of claim 5 , wherein the separate rotation encoding is selected from the group consisting of an axis/angle encoding, a quaternion encoding, an euler angle encoding, a look at encoding, and a billboard encoding.

8 . The method of claim 1 , further comprising:

providing a 3D transform class that represents a transform that can be applied to a 3D mesh; and

providing a concrete implementation of the 3D transform class which uses the 3D rotation class to apply a rotation to the 3D mesh.

9 . A computer-readable medium having computer-executable instructions for causing a computer to perform the steps recited in claim 1 .

10 . A computer-readable medium having computer-executable instructions for causing a computer to perform steps comprising:

provide an abstract 3D rotation class which is exposed separately from other general transforms;

provide a plurality of concrete implementations of the abstract 3D rotation class, each of the plurality of concrete implementations representing a separate rotation encoding; and

provide a plurality of operations that can be applied to the 3D rotation class.

11 . The computer-readable medium of claim 10 , wherein at least one of the operations is an addition operation between a first rotation and a second rotation.

12 . The computer-readable medium of claim 11 , wherein the first rotation is operable to use a first concrete implementation of the plurality of concrete implementations, the first concrete implementation having a first rotation encoding of the separate rotation encodings; and wherein the second rotation is operable to use a second concrete implementation of the plurality of concrete implementations, the second concrete implementation having a second rotation encoding of the separate rotation encodings.

13 . The computer-readable medium of claim 10 , wherein at least one of the operations is a subtraction operation between a first rotation and a second rotation.

14 . The computer-readable medium of claim 10 , wherein at least one of the operations is a magnitude computation of a rotation.

15 . The computer-readable medium of claim 10 , wherein at least one of the operations is an interpolation operation between a first rotation and a second rotation.

16 . The computer-readable medium of claim 15 , wherein the first rotation is operable to use a first concrete implementation of the plurality of concrete implementations, the first concrete implementation having a first rotation encoding of the separate rotation encodings; and wherein the second rotation is operable to use a second concrete implementation of the plurality of concrete implementations, the second concrete implementation having a second rotation encoding of the separate rotation encodings.

17 . The computer-readable medium of claim 10 , wherein at least one of the operations is an interpolation operation between a series of key frame animations.

18 . A method for separating 3D rotations from general 3D transformations comprising the steps of:

creating an instance of a concrete 3D rotation class from an abstract 3D rotation class which is exposed separately from other general transforms;

creating an instance of a 3D transform class that represents a transform that can be applied to a 3D mesh; and

applying a rotation transform to the 3D mesh using the 3D transform instance with the 3D rotation instance.

19 . The method of claim 18 , wherein a plurality of operations can be performed using at least the 3D rotation instance, and wherein the plurality of operations are selected from the group consisting of an addition operation, a subtraction operation, a magnitude computation operation, a rotation interpolation operation, and a key frame interpolation operation.

20 . A computer-readable medium having computer-executable instructions for causing a computer to perform the steps recited in claim 18.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034766/0509 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2006
From: SMITH, ADAM M.; STEVENSON, ALEXANDER; WOOD, DANIEL N.; LEHENBAUER, DANIEL R.; TEITLEBAUM, DAVID B.
To: MICROSOFT CORPORATION
Reel/Frame 017630/0547 →