Method and system for tessellation of subdivision surfaces
First Claim
Patent Images
1. A method for performing adaptive tessellation on a subdivision surface and rendering the surface on a display, comprising:
- accessing a model of a surface for subdivision processing;
dividing the model of said surface into a plurality of patches comprising a first patch, wherein said first patch comprises extraordinary point data;
storing control points associated with said plurality of patches in a buffer for processing on a per patch basis;
determining whether to subdivide said first patch;
modifying said extraordinary point data of said first patch based on subdivision rules if it is determined that said first patch is to be subdivided;
converting the first patch to an intermediate form to facilitate subdivision processing; and
adaptively tessellating the intermediate form of the model using a DeCasteljau subdivision process, wherein said adaptive tessellation occurs as a rendering process is preparing to render said surface wherein a flatness threshold is adjusted for said tessellating of said intermediate form of said model depending upon the rendered result of the model.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for performing adaptive tessellation of a subdivision surface. The method includes the step of accessing a model of a surface for subdivision processing. The model is converted to an intermediate form to facilitate subdivision processing. The intermediate form of the model is then tessellated.
189 Citations
34 Claims
-
1. A method for performing adaptive tessellation on a subdivision surface and rendering the surface on a display, comprising:
-
accessing a model of a surface for subdivision processing; dividing the model of said surface into a plurality of patches comprising a first patch, wherein said first patch comprises extraordinary point data; storing control points associated with said plurality of patches in a buffer for processing on a per patch basis; determining whether to subdivide said first patch; modifying said extraordinary point data of said first patch based on subdivision rules if it is determined that said first patch is to be subdivided; converting the first patch to an intermediate form to facilitate subdivision processing; and adaptively tessellating the intermediate form of the model using a DeCasteljau subdivision process, wherein said adaptive tessellation occurs as a rendering process is preparing to render said surface wherein a flatness threshold is adjusted for said tessellating of said intermediate form of said model depending upon the rendered result of the model. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A non-transitory medium having computer readable code which executed by a computer system causes the computer system to implement a method for performing adaptive tessellation on a subdivision surface, comprising:
-
accessing a model of a surface for subdivision processing; dividing the model of said surface into a plurality of patches comprising a first patch, wherein said first patch comprises extraordinary point data; storing control points associated with said plurality of patches in a buffer for processing on a per patch basis; determining whether to subdivide said first patch; modifying said extraordinary point data of said first patch based on subdivision rules if it is determined that said first patch is to be subdivided; converting the first patch to an intermediate form to facilitate subdivision processing; and iteratively tessellating the intermediate form of the model using a DeCasteljau subdivision process until a predetermined degree of flatness is achieved wherein a flatness threshold is adjusted for said tessellating of said intermediate form of said model depending upon the rendered result of the model, and wherein said predetermined degree of flatness is interactively adjustable by a user, wherein said iteratively tessellating occurs as a rendering process is preparing to render said surface. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer system having a processor, a bus, a memory, and a graphics rendering pipeline for displaying 3D graphics on a display, the memory having computer readable code which when executed by the computer system causes the computer system to implement a method for performing adaptive tessellation, wherein the computer system:
-
accesses a model of a surface for subdivision processing; divides the model of said surface into a plurality of patches comprising a first patch, wherein said first patch comprises extraordinary point data; stores control points associated with said plurality of patches in a buffer for processing on a per patch basis; determines whether to subdivide said first patch; modifies said extraordinary point data of said first patch based on subdivision rules if it is determined that said first patch is to be subdivided; converts the first patch to an intermediate form to facilitate subdivision processing; tessellates the intermediate form of the model using a DeCasteljau subdivision process, wherein said tessellation occurs as a rendering process is preparing to render said surface; determines whether a patch in the intermediate form is within a desired degree of flatness; subdivides the patch in the intermediate form if it cannot be represented as a single fiat polygon to the desired accuracy; and outputs the polygon to the graphics rendering pipeline for rendering if the patch in the intermediate form is within a desired degree of flatness wherein a flatness threshold is adjusted for said intermediate form depending upon the rendered result of the model. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A method for performing adaptive tessellation on a subdivision surface and rendering the surface on a display, comprising:
-
receiving a model of a surface for subdivision processing; dividing the model of said surface into a plurality of patches comprising a first patch, wherein said first patch comprises extraordinary point data; storing control points associated with said plurality of patches in a buffer for processing on a per patch basis; determining whether to subdivide said first patch; modifying said extraordinary point data of said first patch based on subdivision rules if it is determined that said first patch is to be subdivided; converting the first patch to an intermediate form to facilitate subdivision processing; tessellating the intermediate form of the model using a DeCasteljau subdivision process, wherein geometry closer to a viewer is tessellated more in comparison to geometry further to said viewer, wherein said tessellating occurs as a rendering process is preparing to render said surface; determining whether a patch in the intermediate form is within a desired degree of flatness; and subdividing the patch in the intermediate form into a plurality of daughter patches when said flatness is not within said desired degree of flatness wherein a flatness threshold is adjusted for said intermediate form depending upon the rendered result of the model. - View Dependent Claims (31, 32, 33, 34)
-
Specification