Patent ID: 8384715

Claim:
A computer-implemented process for preparing a view of a parametric surface for rendering, comprising performing the following process actions: inputting, by a computer, a set of parametric surface patches representing the parametric surface being rendered; projecting, by the computer, each parametric surface patch onto a scene, producing a set of view-projected surface patches; identifying, by the computer, each view-projected surface patch for either culling, subdivision, or rendering, said identifying comprising, inputting the set of view-projected surface patches into a to-do queue, and for each patch in the to-do queue, determining the screen-space bounds of the view-projection of the patch by computing a bounding box around the original control points for the patch, whenever the bounding box is completely outside a viewing frustum, identifying the patch for culling, whenever the bounding box is not completely outside the viewing frustum, computing a degree-elevated bilinear approximation of the patch, computing a decision bit-field comprising a prescribed number of decision bits from the patch and its corresponding degree-elevated bilinear approximation, whenever all of the decision bits in the decision bit-field are set to one, computing z components of the normals to the degree-elevated bilinear approximation of the patch at the corners of said approximation, whenever all of the z components are negative, identifying the patch for culling, whenever one or more of the z components are not negative, identifying the patch for rendering, and whenever one or more of the decision bits in the decision bit-field are not set to one, identifying the patch for subdivision and assigning the patch a storage requirement value of four; for patches which are identified for subdivision, recursively subdividing, by the computer, the patches into sub-patches until for each sub-patch a prescribed screen-space projection of the sub-patch satisfies a prescribed screen-space error metric, and once said error metric is satisfied, identifying, by the computer, the sub-patch for rendering; and for patches and sub-patches which are identified for rendering, preparing, by the computer, the patches and sub-patches for rendering.