USRE42534EExpiredUtility

Bicubic surface real-time tesselation unit

71
Assignee: SFARTI ADRIANPriority: Jul 28, 2000Filed: Apr 27, 2010Granted: Jul 12, 2011
Est. expiryJul 28, 2020(expired)· nominal 20-yr term from priority
Inventors:Adrian Sfarti
G06T 17/20
71
PatentIndex Score
3
Cited by
33
References
20
Claims

Abstract

The present invention provides a graphics processing unit for rendering objects from a software application executing on a processing unit in which the objects to be rendered are received as control points of bicubic surfaces. According to the method and system disclosed herein, the graphics processing unit includes a transform unit, a lighting unit, a renderer unit, and a tessellate unit for tessellating both rational and non-rational object surfaces in real-time.

Claims

exact text as granted — not AI-modified
1. A system, comprising:
 a processor; and 
 a graphics processing unit (GPU) coupled to the processor, the GPU comprising a transform unit, a lighting unit, a renderer unit, and a tessellate unit coupled between the transform unit and the lighting unit; 
 wherein objects to be rendered by the GPU are transmitted as control points to the GPU, the transform unit transforms the control points, the tessellate unit executes a first set of instructions for tessellating both rational and non-rational object surfaces expressed in screen coordinates (SC), in real-time, the lighting unit lights vertices of the triangles resultant from tessellation, and the renderer unit renders and displays the triangles by executing a second set of instructions. 
 
     
     
       2. The graphics system of  claim 1  wherein the first set of instructions simplifies three dimensional surface subdivision of the object surfaces by reducing surface subdivision to a subdivision of two cubic curves by performing instructions for:
 for each bicubic surface, 
 subdividing a boundary curve representing an s interval until a projection of a length of a height of a curve bounding box is below a certain predetermined number of pixels as measured in screen coordinates; and
 subdividing the boundary curve representing a t interval until a projection of a length of a height of the curve bounding box is below a certain predetermined number of pixels as measured in screen coordinates. 
 
 
     
     
       3. The graphics system of  claim 2  wherein the first set of instructions simplifies three dimensional surface subdivision by reducing it to the subdivision of two cubic curves by simplifying subdivision termination criteria by expressing the termination criteria in screen (SC) coordinates and by measuring curvature in pixels, wherein for each new view, a new subdivision can be generated, producing automatic level of detail. 
     
     
       4. The graphics system of  claim 3  wherein the first set of instructions reduces cracks at the boundaries between surfaces by using a common subdivision for all surfaces sharing a boundary by performing instructions for:
 for all bicubic surfaces sharing a same s or t parameter boundary,
 choosing as a common subdivision a reunion of the subdivisions in order to prevent cracks showing along the common boundary or a finest subdivision, the finest subdivision being the one with the most points inside the set. 
 
 
     
     
       5. The graphics system of  claim 4  wherein the first set of instructions generates vertices, normals, texture coordinates, and displacements used for bump and displacement mapping are generated by performing instructions for:
 for each bicubic surface,
 for each pair (si,tj) of parameters, where i and j represent a number of rows and columns, respectively,
 calculating texture coordinates ((u i,j  v i,j  q i,j ) and displacement coordinates (p i,j  r i,j ) for vertex V i,j ) thru interpolation, 
 looking up vertex displacement (dx i,j , dy i,j , dz i,j ) corresponding to the displacement coordinates (p i,j  r i,j ); and 
 generating triangles by connecting neighboring vertices. 
 
 
 
     
     
       6. The graphics system of  claim 5  wherein the second set of instructions generates vertices, normals, texture coordinates, and displacements used for bump and displacement mapping by performing instructions for:
 for each vertex V i,j ,
 calculating a normal N i,j  to that vertex, which was previously transformed in world coordinates 
 calculating (dN i,j ) as normal displacement for bump mapping as a function of (si,tj) 
 calculating N′ i,j =N i,j +dN i,j  to displace the normal for bump mapping; and 
 calculating V′ i,j =V i,j +(dx i,j , dy i,j , dz i,j )*N i,j  to displace the vertiex for displacement mapping; 
 
 for each triangle,
 executing bump and displacement mapping pixel-by-pixel for all the points inside the triangle; and 
 calculating a normal to the triangle for culling. 
 
 
     
     
       7. The graphics system of  claim 1  further including a Graphics Utility Library (GLU) for implementing drivers. 
     
     
       8. The graphics system of  claim 1  wherein the GLU includes several different types of primitives including, strips, fans, meshes, and indexed meshes of surface patches. 
     
     
       9. A real-time method for tessellating and rendering surfaces of an object on a computer system, comprising:
 (a) performing transformation and tessellation by,
 (i) for each surface, transforming 16 points; 
 (ii) performing three dimensional surface subdivision using the computer system by subdividing only two cubic curves comprising the surface; 
 (iii) terminating the subdivision termination by expressing the subdivision in screen coordinates (SC) and by measuring curvature in pixels; 
 (iv) for each new view, generating a new subdivision, thereby producing automatic level of detail; 
 (v) preventing cracks at boundaries between adjacent surfaces by using a common subdivision for all surfaces sharing a boundary; 
 (vi) for the current subdivision, generating the vertices, normals, texture coordinates, and displacements used for bump and displacement mapping; and 
 (vii) generating triangles by connecting neighboring vertices; 
 (viii) for each vertex, calculating the normal, calculating normal displacement for bump mapping, displacing the normal for bump mapping, displacing the vertex for displacement mapping, wherein bump and displacement mapping are executed pixel by pixel for all the points inside each triangle; and 
 (ix) calculating the normal of each triangle; and 
 
 (b) performing rendering by
 (i) for each triangle, clipping against a viewing viewport, calculating lighting for additional vertices produced by clipping, and culling backfacing triangles; 
 (ii) projecting all vertices into screen coordinates; and 
 (iii) rendering all the triangles produced after clipping and projection. 
 
 
     
     
       10. A system comprising:
 a central processing unit;   a bus operatively connected to said central processing unit; and   a graphics processing unit operatively connected to said bus;   wherein the central processing unit transmits graphic objects to said graphics processing unit via said bus; and   wherein said graphics processing unit comprises a transform unit that transforms the graphic objects into transformed objects;   a tessellation unit for tessellating the transformed objects, wherein said tessellation unit is operatively coupled between said transform unit and a lighting unit; and   said lighting unit comprising means for lighting triangles resulting from said tessellation unit.   
     
     
       11. The system of claim 10 wherein the tessellation unit tessellates the transformed objects into a plurality of triangle vertices. 
     
     
       12. The system of claim 10 wherein the graphic objects have spatial coordinates and said transform unit transforms the spatial coordinates of said graphic objects. 
     
     
       13. The system of claim 10 further comprising a lighting unit operatively coupled to the tessellation unit for lighting the tessellated transformed objects. 
     
     
       14. The system of claim 13 further comprising a rendering unit operatively coupled to the lighting unit for rendering the lighted, tessellated, transformed objects. 
     
     
       15. A method comprising:
 providing a tessellation unit coupled between a transform unit and a lighting unit;   receiving graphic objects to be rendered by a graphics processing unit;   transforming the graphic objects into transformed objects using said transform unit;   tessellating the transformed objects using said tessellation unit; and   lighting vertices of triangles resultant from said tessellating using said lighting unit.   
     
     
       16. The method of claim 15 wherein the graphic objects comprise control points of a bicubic surface. 
     
     
       17. The method of claim 16 wherein the control points comprise spatial coordinates and the transformation step comprises transforming the coordinates of the control points. 
     
     
       18. The method of claim 16 wherein the tessellation step comprises subdividing the surface into a number of triangles. 
     
     
       19. The method of claim 18 wherein the tessellation step further comprises terminating the subdivision when the curvature of a triangle is less than a predetermined amount. 
     
     
       20. The method of claim 19 wherein the degree of subdivision at meeting edges of two bicubic surfaces is equal.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.