Different limit surfaces are derived from the same initial arbitrary polygon mesh by sequentially combining different subdivision rules. This added freedom allows for the more efficiently modeling of objects in computer graphics including objects and characters with semi-sharp features.

Patent
   RE41677
Priority
Aug 04 1997
Filed
Dec 03 2004
Issued
Sep 14 2010
Expiry
Aug 04 2017
Assg.orig
Entity
Large
0
12
all paid
4. In a computer graphics system, a method of creating subdivision surface features in graphical objects the method comprising the steps of :
sequentially applying distinct first and second sets of subdivision rules to a polygonal mesh representation of a feature of a limit surface of a graphical object; and
displaying said graphical object having said feature;
wherein said first set of subdivision rules uses one or more shape parameters, wherein the second set of subdivision rules is applied to an intermediate mesh representation, in addition to the polygonal mesh representation, resulting from the application of said first set of subdivision rules to said polygonal mesh representation of said feature of said graphical object , wherein at least one of the shape parameters has a non-integer value that define the limit surface, and wherein the points on the limit surface are determined as the infinite subdivision limit of the intermediate mesh using the second set of rules.
1. A computer-implemented method for generating a surface feature of a limit surface in a graphical object represented at least in part as a polygonal mesh, said computer-implemented method comprising the steps of :
a) subdividing all or part of a polygon mesh representation of at least a portion of said graphical object a first number of times using one or more shape parameters and a first set of rules to produce a first mesh representation in addition to the polygon mesh of said at least a portion of said graphical object, wherein at least one of the shape parameters has a non-integer value that defines the limit surface;
b) subdividing said first mesh representation of said at least a portion of said graphical object a second number of times using a second set of rules, different than said first set of rules, for generating a second mesh representation of said at least a portion of said graphical object in addition to the first mesh representation and the polygon mesh representation; and
c) outputting a representation of said graphical object having said surface feature;
wherein a sum of the first and second numbers is equal to a total number of iterations required to achieve the surface feature of the limit surface; and
wherein the points on the limit surface are determined as the infinite subdivision limit of the second mesh using the second set of rules.
0. 37. A computer-implemented method for generating a feature of a limit surface in a graphical object represented at least in part as a polygonal mesh, the computer-implemented method comprising:
a) receiving one or more shape parameters associated with a polygon mesh representation of at least a portion of the graphical object, wherein at least one of the shape parameters has a non-integer value that defines the limit surface;
b) subdividing all or part of the polygon mesh representation a first number of times using the one or more shape parameters and a first set of rules to produce a first mesh representation in addition to the polygon mesh of the at least a portion of said graphical object;
c) subdividing the first mesh representation a second number of times using a second set of rules, different than the first set of rules, for generating a second mesh representation in addition to the first mesh representation and the polygon mesh representation; and
d) outputting a representation of the graphical object having the surface feature;
wherein a sum of the first and second numbers is equal to a total number of iterations required to achieve the feature of the limit surface; and
wherein the points on the limit surface are determined as the infinite subdivision limit of the second mesh using the second set of rules.
0. 25. A method for a computer system that comprises:
retrieving a polygonal mesh associated with a three-dimensional object;
subdividing the polygonal mesh using one or more shape parameters and a first subdivision rule to form a first subdivided polygonal mesh including a first plurality of vertices, wherein at least one of the shape parameters has a non-integer value that defines a limit surface;
subdividing the first subdivided polygonal mesh one or more times using a second subdivision rule to form a second subdivided polygonal mesh comprising a second plurality of vertices, wherein the first subdivision rule and the second subdivision rule are different;
determining a first plurality of scalar values, wherein the first plurality of scalar values is associated with vertices from the second plurality of vertices;
determining a second plurality of scalar values in response to the first plurality of scalar values, wherein the second plurality of scalar values is associated with vertices from the first plurality of vertices; and
outputting data for rendering at least a portion of the three dimensional object based on the second plurality of scalar values and
wherein the points on the limit surface are determined as the infinite subdivision limit of the second subdivided polygonal mesh using the second subdivision rule.
0. 5. A computer readable medium storing code for controlling a processor to generate render data, the code comprising:
code that directs the processor to retrieve a polygonal mesh associated with a three-dimensional object;
code that directs the processor to subdivide the polygonal mesh to form a first subdivided polygonal mesh using one or more shape parameters and a first subdivision rule, wherein the first subdivided polygonal mesh comprises a first plurality of vertices, and wherein at least one of the shape parameters has a non-integer value that defines a limit surface;
code that directs the processor to subdivide the first subdivided polygonal mesh one or more times to form a second subdivided polygonal mesh using a second subdivision rule, wherein the second subdivision rule is different than the first subdivision rule, wherein the second subdivided polygonal mesh comprises a second plurality of vertices;
code that directs the processor to determine a first plurality of scalar values associated with vertices from the second plurality of vertices;
code that directs the processor to determine a second plurality of scalar values associated with vertices from the first plurality of vertices in response to the first plurality of scalar values; and
code that directs the processor to output data for rendering a portion of the three-dimensional object based on the second plurality of scalar values, and
wherein the points on the limit surface are determined as the infinite subdivision limit of the second subdivided polygonal mesh using the second subdivision rule.
0. 15. A computer system that comprises:
a memory configured to store a polygonal mesh associated with a three-dimensional object, wherein the memory is also configured to store a scalar field; and
a processor coupled to the memory, wherein the processor is configured to retrieve the polygonal mesh associated with a three-dimensional object from the memory, wherein the processor is also configured to subdivide the polygonal mesh to form a first subdivided polygonal mesh using one or more shape parameters and a first subdivision rule, wherein at least one of the shape parameters has a non-integer value that defines a limit surface, wherein the first subdivided polygonal mesh comprises a first plurality of vertices, wherein the processor is configured to subdivide the first subdivided polygonal mesh one or more times to form a second subdivided polygonal mesh using a second subdivision rule, wherein the first subdivision rule is different than the second subdivision rule, wherein the second subdivided polygonal mesh comprises a second plurality of vertices, wherein the processor is configured to determine a first plurality of scalar values associated with vertices from the second plurality of vertices in response to the scalar field,
wherein the processor is configured to determine a second plurality of scalar values associated with vertices from the first plurality of vertices in response to the first plurality of scalar values, and wherein the processor is configured output data for rendering a portion of the three dimensional object based on the second plurality of scalar values, and
wherein the points on the limit surface are determined as the infinite subdivision limit of the second subdivided polygonal mesh using the second subdivision rule.
0. 2. The method of claim 1 wherein the points on a limit surface are determined by taking the infinite subdivision limit of said second mesh using said second set of rules.
3. The method of claim 2 1 comprising the further step of determining the smooth surface limit normals at the limit locations of the points in the final mesh in order to shade the rendered image.
0. 6. The computer readable medium of claim 5 wherein scalar values from the second plurality of scalar values comprise parametric shading values.
0. 7. The computer readable medium of claim 5 further comprising:
code that directs the processor to determine a third plurality of scalar values associated with the vertices from the second plurality of vertices in response to the first plurality of scalar values and the second plurality of scalar values; and
wherein the scalar values from the third plurality of scalar values are used for mapping purposes selected from the group consisting of: texture, surface.
0. 8. The computer readable medium of claim 5 further comprising:
code that directs the processor to determine a third plurality of scalar values associated with the vertices from the second plurality of vertices in response to the first plurality of scalar values and the second plurality of scalar values; and
code that directs the processor to render a portion of the three-dimensional object in response to the third plurality of scalar values.
0. 9. The computer readable medium of claim 5 wherein the scalar values from the first plurality of scalar values comprise parameters selected from the group consisting of: kinematic parameters, animation parameters.
0. 10. The computer readable medium of claim 5 wherein code that directs the processor to determine the first plurality of scalar values comprises code that directs the processor to determine the first plurality of scalar values associated with the vertices from the second plurality of vertices in response to a projection of a two-dimensional image comprising intensity values.
0. 11. The computer readable medium of claim 5 wherein code that directs the processor to determine the first plurality of scalar values comprises code that directs the processor to smooth a third plurality of scalar values associated with the vertices from the second plurality of vertices.
0. 12. The computer readable medium of claim 11 wherein the third plurality of scalar values associated with the vertices from the second plurality of vertices are specified by a user.
0. 13. The computer readable medium of claim 11 wherein the third plurality of scalar values comprise energy values.
0. 14. The computer readable medium of claim 5 wherein the code that directs the processor to determine the second plurality of scalar values comprises:
code that directs the processor to receive a plurality of estimated scalar values associated with the first plurality of vertices;
code that directs the processor to determine a plurality of estimated scalar values associated with the second plurality of vertices;
code that directs the processor to determine a plurality of error values in response to the plurality of estimated scalar values and the plurality of estimated scalar values associated with the second plurality of vertices; and
code that directs the processor to determine the second plurality of scalar values associated with the first plurality of vertices in response to the plurality of estimated scalar values associated with the first plurality of vertices, and in response to the plurality of error values.
0. 16. The computer system of claim 15 wherein scalar values from the second plurality of scalar values comprise parametric shading values.
0. 17. The computer system of claim 15
wherein the processor is configured to determine a third plurality of scalar values associated with the vertices from the second plurality of vertices in response to the first plurality of scalar values and the second plurality of scalar values; and
wherein the scalar values from the third plurality of scalar values are used for a mapping purpose selected from the group consisting of: texture, surface.
0. 18. The computer system of claim 15
wherein the processor is also configured to determine a third plurality of scalar values associated with the vertices from the second plurality of vertices in response to the first plurality of scalar values and the second plurality of scalar values, and wherein the processor is configured to render a portion of the three-dimensional object in response to the third plurality of scalar values.
0. 19. The computer system of claim 15 wherein the scalar values from the first plurality of scalar values comprise parameters selected from the group consisting of: kinematic parameters, animation parameters.
0. 20. The computer system of claim 15 wherein the scalar field comprises a two-dimensional image comprising intensity values.
0. 21. The computer system of claim 15
wherein the scalar field specifies a third plurality of scalar values associated with at least some of the vertices from the second plurality of vertices; and
wherein the processor is configured to determine the first plurality of scalar values by smoothing the third plurality of scalar values associated with the vertices from the second plurality of vertices.
0. 22. The computer system of claim 21 wherein the third plurality of scalar values associated with at least some of the vertices from the second plurality of vertices are specified by a user.
0. 23. The computer system of claim 21 wherein the third plurality of scalar values comprise energy values.
0. 24. The computer system of claim 15 wherein the processor is configured to determine the second plurality of scalar values by being configured to receive a plurality of estimated scalar values associated with the first plurality of vertices, being configured to determine a plurality of estimated scalar values associated with the second plurality of vertices, being configured to determine a plurality of error values in response to the plurality of estimated scalar values and the plurality of estimated scalar values associated with the second plurality of vertices, and being configured to determine the second plurality of scalar values associated with the first plurality of vertices in response to the plurality of estimated scalar values associated with the first plurality of vertices, and in response to the plurality of error values.
0. 26. The method of claim 25 wherein scalar values from the second plurality of scalar values comprise parametric shading values.
0. 27. The method of claim 25 further comprising:
determining a third plurality of scalar values in response to the first plurality of scalar values and the second plurality of scalar values, wherein the third plurality of scalar values is associated with the vertices from the second plurality of vertices;
wherein the scalar values from the third plurality of scalar values are used for mapping purposes selected from the group consisting of: texture mapping, surface mapping.
0. 28. The method of claim 25 further comprising:
determining a third plurality of scalar values in response to the first plurality of scalar values and the second plurality of scalar values, wherein the third plurality of scalar values is associated with the vertices from the second plurality of vertices; and
rendering a portion of the three-dimensional object in response to the third plurality of scalar values.
0. 29. The method of claim 25 wherein the scalar values from the first plurality of scalar values comprise parameters selected from the group consisting of: kinematic parameters, animation parameters.
0. 30. The method of claim 25 wherein determining the first plurality of scalar values comprises determining the first plurality of scalar values in response to a projection of a two-dimensional image comprising intensity values onto the second plurality of vertices.
0. 31. The method of claim 25 wherein determining the first plurality of scalar values comprises smoothing a third plurality of scalar values, wherein the third plurality of scalar values is associated with at least some of the vertices from the second plurality of vertices.
0. 32. The method of claim 31 wherein the third plurality of scalar values are specified by a user.
0. 33. The method of claim 31 wherein the third plurality of scalar values comprise energy values.
0. 34. The method of claim 25 wherein determining the second plurality of scalar values comprises:
receiving a plurality of estimated scalar values associated with the first plurality of vertices;
determining a plurality of estimated scalar values associated with the second plurality of vertices in response to the plurality of estimated scalar values associated with the first plurality of vertices;
determining a plurality of error values in response to the plurality of estimated scalar values and the plurality of estimated scalar values associated with the second plurality of vertices; and
determining the second plurality of scalar values associated with the first plurality of vertices in response to the plurality of estimated scalar values associated with the first plurality of vertices, and in response to the plurality of error values.
0. 35. The method of claim 25, wherein the one or more shape parameters are assigned to one of a vertex, a plurality of vertices, a face, a plurality of faces, an edge, a plurality of edges, or a plurality of connected edges.
0. 36. The method of claim 25, wherein one or both of the first plurality of scalar values and the second plurality of scalar values represent coordinates.
0. 38. The method of claim 37, wherein the one or more shape parameters are selected or input by a user.
0. 39. The method of claim 1, wherein the one or more shape parameters are assigned to one of a vertex, a plurality of vertices, a face, a plurality of faces, an edge, a plurality of edges, or a plurality of connected edges.
0. 40. The method of claim 1, wherein the non-integer value of the at least one shape parameter enables a sharpness of the feature of the limit surface to vary continuously.

This is a Continuation of application Ser. No. 08/905,436 filed Aug. 4, 1997

Where the cj are three dimensional coordinates and/or values of various scalar fields on the surface but are scalars in the vector space in which Mn acts. Applying Mn we get MnV=e1c1E1+e2c2E2+ . . . emcmEm. For (Mn)V to have a nontrivial limit the largest eigenvalue of Mn must equal 1. So that (Mn)V=c1E1. Finally, Affine invariance requires that the rows of Mn sum to 1 which means that E1=(1, . . . , 1). Which gives s=c1.

If one chooses a basis for the left eigenvectors of Mn, L1, . . . Lm so that they form an orthonormal set with their right counterparts, i.e., Lj·Ekjk, this projection is given by the dot product L1·V where L1 is the left eigenvector of Mn with eigenvalue 1 and V is the column vector defined above of points in the neighborhood of S. For Catmull-Clark subdivision, the value of the this dot product and thus the position of the point s after infinite subdivision is given by s = 1 n ( n + 5 ) ( n 2 s + 4 i = 1 n r i + i = 1 n q i ) .

This formula gives not only the smooth surface limit value of the position of the vertex points in R3 but can also be used to calculate the smooth surface limit of any scalar fields at those points as a function of their values at points in the neighborhood of S.

Similarly, with a bit more math, see Halstead, et al. cited above, it can be shown that the eigenvectors for the second and third largest eigenvalues of the local subdivision matrix Mn span the tangent space of the limit surface at the point s∞. One can again project these out of the vector V using the orthonormality property of the left and right eigenvectors giving c2=L2·V and c3=L3·V. Because c2 and c3 span the tangent space at the point s∞, their cross product gives a vector normal to the limit surface at that point, i.e., N=c2×C3 at the point s∞. These tangent vectors have been calculated for Catmull-Clark subdivision and are given by: c 2 = i = 1 n A n cos ( 2 πi / n ) r i + ( cos ( 2 πi / n ) + cos ( 2 π ( i + 1 ) / n ) ) q i

Where A n = 1 + cos ( 2 π / n ) + cos ( π / n ) 2 ( 9 + cos ( 2 π / n )

and c3 is obtained by replacing r1 with ri+1 and qi with qi+1.

After constructing N∞, the smooth surface limit normal, at each of the vertices of the refined mesh. One can then interpolate these normals across the subpixel faces of the refined mesh to render the character using Phong shading.

Hybrid Subdivision Schemes

One aspect of the present invention is a method for creating surfaces by sequentially combining different subdivision rules. By subdividing a mesh a finite number of times with one or more sets of “special rules” before taking the infinite subdivision limit with the “standard rules”, one can produce different limit surfaces from the same initial mesh. Combining different subdivision rules thus provides an additional degree of freedom which can be a more efficient means for obtaining the desired limit surface than adding points to the initial mesh. Below we describe in detail two particular exemplary uses of this aspect of the invention in modeling Geri. Many others will be readily apparent to those of ordinary skill in the art.

Semi-Sharp Edges and Creases

Human skin is not a completely smooth surface. Faces and hands, for example, contain somewhat sharp features, both creases and edges. To model these features using the general smooth-surface-limit subdivision techniques outlined above, or more conventional B-spline patch methods, would require a very complicated initial control mesh in which the vertex spacing in regions of sharp features would have to be very small, leading to lots of points and quadrilaterals. One method for modeling sharp features with subdivision surfaces without adding substantially to the complexity of the initial control mesh is to alter the subdivision rules for points lying on corners or sharp edges or creases. As described above, these features can be incorporated and tagged in the initial control mesh.

The sharpness of these features can be maintained throughout the otherwise smoothing subdivision process by decoupling the subdivision process along sharp edges so that points on either side of the sharp feature do not contribute to the position of points on the edge in subsequent subdivisions. Locally modifying the subdivision algorithm in this way results in a limit surface with sharp edges or creases across which the tangent plane is discontinuous. Details of this method for modeling various sharp features using Loop subdivision on a triangular mesh can be found in Hoppe, et al. Piecewise smooth surface reconstruction. Computer Graphics (SIGGRAPH '94 Proceedings) (1994) 295-302.

The problem with using the Hoppe, et al. approach for the realistic animation of characters is that skin surfaces do not have infinitely sharp edges. All real objects, including humans, have some finite radius of curvature along their otherwise sharp features. This fact may be ignored when rendering machined metal objects but is very apparent when modeling and rendering human faces. The exemplary embodiment includes a modification of the above described subdivision algorithm to allow the modeling and rendering of edges and creases of arbitrary and continuously variable sharpness.

FIG. 11 shows a portion of the initial control mesh of Geri's hand with sharp features highlighted. As described above, care was taken in the initial choice of mesh vertices so that these sharp features lay along edges of the initial mesh. Their position in the mesh was stored along with a sharpness value between 0 and 5 (assuming 5 explicit subdivisions was the maximum performed before pushing the vertices to their limits). Because the skin mesh has the same topology as the control mesh, the corresponding edge in the skin mesh is uniquely identified. To model an edge or crease with sharpness N where N is an integer, one applies the sharp edge subdivision technique described in Hoppe et al. to determine the locations of points along the designated edge or crease for the first N subdivisions. Thus to determine new edge and vertex locations along the crease or edge instead of applying the standard Catmull-Clark formulas described above, one uses for example the following sharp edge formulas: r i = 1 2 R i + 1 2 S s = 1 8 R j + 1 8 R k + 3 4 S
where Rj and Rk are the points on either side of S along the sharp edge or crease, as shown in FIG. 10. If S is a vertex at which a crease or edge ceases to be sharp its position after subdivision is calculated using the normal Catmull-Clark formulas.

After N subdivisions one applies the normal smooth algorithm for subsequent explicit subdivisions and then pushes the points to their smooth surface limits. Thus for sharpness 2 features, one applies the sharp formulas for the first two subdivisions and then uses the smooth formulas for subsequent subdivision and for taking the smooth surface limit. One can get “fractional sharpness” e.g., 1.5, by linearly interpolating edge point locations between the sharpness 1 and 2 results, i.e., calculate the position of control points after performing one sharp and one smooth subdivision and calculate the position of control points after subdividing twice with the sharp subdivision rules and take the average of the two locations before subdividing farther with the smooth rules or pushing the points to their smooth surface limits.

One can also determine the positions and tangents on the limit surface of points in the initial mesh on a semisharp feature without explicitly iterating the semisharp rules, by analyzing the eigenstructure of the combined transformation matrix in a manner similar to that described above for the case of smooth subdivision. The limit surface position for the neighborhood of a semisharp feature of sharpness k is given by

v=(Msmooth)(Msharp)kV where we have suppressed the n index indicating the number of edges and added a subscript designating smooth and sharp transformations. As above for the smooth case, we can replace the application of Msmooth an infinite number or times with dotting by L1 its dominant left eigenvector, giving v=L1·(Msharp)kV. We can then replace L1 by its decomposition in terms of left eigenvectors of Msharp. L1=t1l1+t2l2+ . . . tmlm where li are left eigenvectors of Msharp and tj are expansion coefficients, scalars under Msharp. Applying Msharp k times from the right to this expansion, we get: v=(t1λ1kl1+ . . . tmλmklm) where the λj are the eigenvalues of Msharp.

One may also create a feature with varying sharpness along its length. Assuming again that the initial mesh is created so that the sharp feature lies along one or more connected edges, one can specify sharpness values at the vertices of the feature either by hand or by one of the scalar field techniques described above, limited to one dimension. One can calculate the limit values of the sharpness field treating the sharp feature as a subdivision curve and taking its limit value using the dominant left eigenvector as described above for two dimensional surface subdivision. For uniform cubic B-Spline subdivision along a curve, that vector is given by u1=⅙[1,4,1]. See, e.g, E. Stollnitz, T. DeRose and D. Salesin. Wavelets for Computer Graphics, 1996, 61-72. The limit value of the field on a point along the semi-sharp feature is thus given by ⅔ of its value plus one ⅙ of the value of each of its nearest neighbors.

The location of each vertex point on the semisharp feature is then calculated using the limit value of its sharpness field, i.e., one applies the sharp rules in the neighborhood of that point the number of times specified by the point's sharpness value (including interpolation, as described above for non-integer sharpness values).

This continuous smoothing of sharp edges can be used in conjunction with other subdivision schemes as well including those proposed by Loop and Doo and Sabin, cited above. In particular, all of the sharp edge techniques and results of Hoppe, et al. can be extended to allow for the efficient modeling of semi-sharp features by combining smooth and sharp subdivision rules in the manner described above for Catmull-Clark subdivision.

Improving The Surface In the Neighborhood of Triangular Faces

A second application of hybrid subdivision used in the exemplary embodiment involves a modification to the standard Catmull-Clark rules used to determine the location of face points in the first subdivision of a triangular face. As described above, if one begins with an arbitrary polygon mesh which includes non-quadrilateral faces, after one subdivision with Catmull-Clark rules, all faces in the refined mesh will be quadrilateral (though some vertices will have more than four edges). If one has an initial mesh which is convex with some triangular faces, e.g., the initial control point mesh of Geri's head, the smooth surface resulting from standard Catmull-Clark subdivision will be somewhat “lumpy” in regions in which there were triangular faces in the original mesh. The shape of the limit surface can be improved if when calculating the location of the face point for a triangular face in the first subdivision (the only time there will be triangular faces), one takes its location to be the average of the locations of its surrounding edge points after subdivision rather than the average of the its surrounding vertices in the undivided mesh, the standard Catmull-Clark rule. This is illustrated in FIG. 13. The solid lines and points Pi are points in the initial mesh. The dashed lines show the once subdivided mesh with points ei and ƒ. Under normal Catmull-Clark rules the location of ƒ is given by: ƒ=⅓(P1+P2+P3). Instead, we take ƒ=⅓(e1+e2+e3). Because the ei locations of neighboring faces as well as the Pi, ƒ will be drawn closer to the center of a convex mesh and the limit surface will have a smoother contour.

The specific arrangements and methods described herein are merely illustrative of the principles of the present invention. Numerous modifications in form and detail may be made by those of ordinary skill in the art without departing from the scope of the present invention. Although this invention has been shown in relation to particular embodiments, it should not be considered so limited. Rather, the present invention is limited only by the scope of the appended claims.

Kass, Michael, DeRose, Anthony David

Patent Priority Assignee Title
Patent Priority Assignee Title
5083262, Apr 28 1986 International Business Machines Corporation Language bindings for graphics functions to enable one application program to be used in different processing environments
5179647, Jan 09 1989 SUN MICROSYSTEMS, INC , A CORP OF DE Method and apparatus for implementing adaptive forward differencing using integer arithmetic
5602979, Aug 27 1993 Apple Inc System and method for generating smooth low degree polynomial spline surfaces over irregular meshes
5929860, Jan 11 1996 Microsoft Technology Licensing, LLC Mesh simplification and construction of progressive meshes
5963209, Jan 11 1996 Microsoft Technology Licensing, LLC Encoding and progressive transmission of progressive meshes
5966133, Jan 11 1996 Microsoft Technology Licensing, LLC Geomorphs and variable resolution control of progressive meshes
6078331, Sep 30 1996 Microsoft Technology Licensing, LLC Method and system for efficiently drawing subdivision surfaces for 3D graphics
6130673, Apr 18 1997 AUTODESK, Inc Editing a surface
6222532, Feb 03 1997 U S PHILIPS CORPORATION Method and device for navigating through video matter by means of displaying a plurality of key-frames in parallel
WO8907301,
WO8907301989,
WO9506291,
///
Executed onAssignorAssigneeConveyanceFrameReelDoc
Dec 03 2004Pixar(assignment on the face of the patent)
Mar 10 2005DEROSE, ANTHONY DAVIDPixarASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0162730935 pdf
Mar 11 2005KASS, MICHAELPixarASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0162730935 pdf
Date Maintenance Fee Events
May 07 2014M1553: Payment of Maintenance Fee, 12th Year, Large Entity.


Date Maintenance Schedule
Sep 14 20134 years fee payment window open
Mar 14 20146 months grace period start (w surcharge)
Sep 14 2014patent expiry (for year 4)
Sep 14 20162 years to revive unintentionally abandoned end. (for year 4)
Sep 14 20178 years fee payment window open
Mar 14 20186 months grace period start (w surcharge)
Sep 14 2018patent expiry (for year 8)
Sep 14 20202 years to revive unintentionally abandoned end. (for year 8)
Sep 14 202112 years fee payment window open
Mar 14 20226 months grace period start (w surcharge)
Sep 14 2022patent expiry (for year 12)
Sep 14 20242 years to revive unintentionally abandoned end. (for year 12)