Method and apparatus for adaptive nonlinear projective rendering
First Claim
1. A method of mapping a graphical surface model, comprising a plurality of model values, onto a polygon of a perspective projection of a polygon-based, graphically-represented object defined by points within an object coordinate system, the method comprising the steps of:
- a) subdividing the polygon into subpolygons each having a plurality of sides and a plurality of vertices, the subdivision being such that, given exact model values to be assigned to the vertices, the determination of model values by linear interpolation over the length of any one subpolygon side does not produce an interpolation error which exceeds a predetermined threshold value;
b) determining the exact model values for the vertices of the sub-polygons; and
c) determining the model values corresponding to the non-vertex object points by interpolation.
2 Assignments
0 Petitions
Accused Products
Abstract
In three-dimensional graphics rendering, a method of texture mapping, or shading, applies to triangle-based graphical objects having undergone a perspective transformation. The present invention makes use of linear interpolation for determining the appropriate mapping for the interior points of each triangle, thus reducing the computation-intensive mathematical calculations otherwise required. In order to minimize visual artifacts due to high interpolation errors, the borders of each triangle are tested against a predetermined threshold, and the triangle subdivided if any of the borders contain a maximum error which exceeds the threshold. The subdivision continues until all triangle sides have maximum errors that are less than the threshold value. Linear interpolation is then used to determine all mappings for the sides and interior points of the triangle. In alternative embodiments, the triangle is subdivided without using recursive methods. In one non-recursive method, the entire triangle is subdivided uniformly based on the necessary number of segments into which the triangle sides must be broken to keep the maximum error below the threshold. In another non-recursive method, w-isosceles triangles are subdivided into trapezoids, each of which is then subdivided into w-isosceles, and mostly geometrically isosceles, triangles.
-
Citations
54 Claims
-
1. A method of mapping a graphical surface model, comprising a plurality of model values, onto a polygon of a perspective projection of a polygon-based, graphically-represented object defined by points within an object coordinate system, the method comprising the steps of:
-
a) subdividing the polygon into subpolygons each having a plurality of sides and a plurality of vertices, the subdivision being such that, given exact model values to be assigned to the vertices, the determination of model values by linear interpolation over the length of any one subpolygon side does not produce an interpolation error which exceeds a predetermined threshold value; b) determining the exact model values for the vertices of the sub-polygons; and c) determining the model values corresponding to the non-vertex object points by interpolation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of mapping a graphical surface model, comprising a plurality of model values, onto a triangle of a perspective projection of a triangle-based, graphically-represented object defined by points within an object coordinate system, the method comprising the steps of:
-
a) obtaining the exact model values for each vertex of the triangle; b) determining, for each side of the triangle, a maximum interpolation error which would result from the use of interpolation, based on the model values of the vertices at the endpoints of that side, to assign model values to all object points along that triangle side; c) comparing the maximum error for each side to a predetermined threshold value; d) subdividing the triangle into subtriangles and repeating steps (a), (b), (c) and (d) for each subtriangle if the maximum error for any of the triangle sides exceeds the threshold value; and e) determining the model values corresponding to the non-vertex object points using interpolation. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A method of mapping a graphical surface model, comprising a plurality of model values, onto a triangle of a perspective projection of a triangle-based, graphically-represented object defined by points within an object coordinate system, the triangle having a plurality of sides and a plurality of vertices, the method comprising the steps of:
-
a) creating new vertices along the triangle sides such that each of the triangle sides is divided into a plurality of sections, the length of each section being such that, given exact model values to be assigned to the vertices, the determination of model values by linear interpolation over the length of any one section does not produce an error which exceeds the threshold value; b) interconnecting the new vertices with line segments parallel to the original triangle sides, such as to create interior subtriangles having vertices at crossing points between the line segments; c) determining the exact model values for each of the vertices of the subtriangles; and d) determining the model values corresponding to the non-vertex object points using interpolation. - View Dependent Claims (16)
-
-
17. A method of mapping a graphical surface model, comprising a plurality of model values, onto a w-isosceles triangle of a perspective projection of a triangle-based, graphically-represented object defined by points within an object coordinate system, the triangle having two sides and a base, the base being bounded by two vertices each having a homogeneous coordinate w of the same value, the method comprising the steps of:
-
a) dividing the triangle into a plurality of trapezoids each having four vertices, two bases parallel to the base of the triangle, and two sides, each of which is colinear with one of the triangle sides, the length of the trapezoid sides being such that, given the exact model values to be assigned to the vertices of the trapezoid, the interpolation of model values along the sides of the trapezoid results in no interpolation error that exceeds a predetermined threshold value; b) determining the exact model values for the vertices of each trapezoid; c) subdividing the interior of each trapezoid into a plurality of w-isosceles subtriangles; and d) determining the model values for the remaining object points of the triangle by interpolation. - View Dependent Claims (18, 19, 20, 21)
-
-
22. A computer program product for mapping a graphical surface model, comprising a plurality of model values, onto a polygon of a perspective projection of a polygon-based, graphically-represented object defined by points within an object coordinate system, the program code including:
-
program code for performing the step (a) of subdividing the polygon into subpolygons each having a plurality of sides and a plurality of vertices, the subdivision being such that, given exact model values to be assigned to the vertices, the determination of model values by linear interpolation over the length of any one subpolygon side does not produce an interpolation error which exceeds a predetermined threshold value; program code for performing the step (b) of determining the exact model values for the vertices of the sub-polygons; and program code for performing the step (c) of determining the model values corresponding to the non-vertex object points by interpolation. - View Dependent Claims (23, 24, 25)
-
-
26. A computer program product for mapping a graphical surface model, comprising a plurality of model values, onto a triangle of a perspective projection of a triangle-based, graphically-represented object defined by points within an object coordinate system, the program code including:
-
program code for performing the step (a) of obtaining the exact model values for each vertex of the triangle; program code for performing the step (b) of determining, for each side of the triangle, a maximum interpolation error which would result from the use of interpolation, based on the model values of the vertices at the endpoints of that side, to assign model values to object points along that triangle side; program code for performing the step (c) of comparing the maximum error for each side to a predetermined threshold value; program code for performing the step (d) of subdividing the triangle into subtriangles and repeating steps (a), (b), (c) and (d) for each subtriangle, if the maximum error for any of the triangle sides exceeds the threshold value; and program code for performing the step (e) of determining the model values corresponding to the non-vertex object points using interpolation.
-
-
27. A computer program product for mapping a graphical surface model, comprising a plurality of model values, onto a triangle of a perspective projection of a triangle-based, graphically-represented object defined by points within an object coordinate system, the triangle having a plurality of sides and a plurality of vertices, the program code including:
-
program code for performing the step (a) of creating new vertices along the triangle sides such that each of the triangle sides is divided into a plurality of sections, the length of each section being such that, given exact model values to be assigned to the vertices, the determination of model values by linear interpolation over the length of any one section does not produce an error which exceeds the threshold value; program code for performing the step (b) of interconnecting the new vertices with line segments parallel to the original triangle sides, such as to create interior subtriangles having vertices at crossing points between the line segments; program code for performing the step (c) of determining the exact model values for each of the vertices of the subtriangles; and program code for performing the step (d) of determining the model values corresponding to each non-vertex object point using linear interpolation. - View Dependent Claims (28)
-
-
29. A computer program product for mapping a graphical surface model, comprising a plurality of model values, onto a w-isosceles triangle of a perspective projection of a triangle-based, graphically-represented object defined by points within an object coordinate system, the triangle having two sides and a base, the base being bounded by two vertices each having a homogeneous coordinate w of the same value, the program code including:
-
program code for performing step (a) of dividing the triangle into a plurality of trapezoids each having four vertices, two bases parallel to the base of the triangle, and two sides, each of which is colinear with one of the triangle sides, the length of the trapezoid sides being such that, given the exact model values to be assigned to the vertices of the trapezoid, the interpolation of model values along the sides of the trapezoid results in no interpolation error that exceeds a predetermined threshold value; program code for performing step (b) of determining the exact model values for the vertices of each trapezoid; program code for performing step (c) of subdividing the interior of each trapezoid into a plurality of w-isosceles subtriangles; and program code for performing step (d) of determining the model values for the remaining object points of the triangle by interpolation. - View Dependent Claims (30, 31, 32)
-
-
33. A computer apparatus comprising a storage medium in which is stored program code for mapping a graphical surface model, comprising a plurality of model values, onto a polygon of a perspective projection of a polygon-based, graphically-represented object defined by points within an object coordinate system, the storage medium comprising:
-
program code for performing the step (a) of subdividing the polygon into subpolygons each having a plurality of sides and a plurality of vertices, the subdivision being such that, given exact model values to be assigned to the vertices, the determination of model values by linear interpolation over the length of any one subpolygon side does not produce an interpolation error which exceeds a predetermined threshold value; program code for performing the step (b) of determining the exact model values for the vertices of the sub-polygons; and program code for performing the step (c) of determining the model values corresponding to the non-vertex object points by interpolation. - View Dependent Claims (34, 35, 36)
-
-
37. A computer apparatus comprising a storage medium in which is stored program code for mapping a graphical surface model, comprising a plurality of model values, onto a triangle of a perspective projection of a triangle-based, graphically-represented object defined by points within an object coordinate system, the storage medium comprising:
-
program code for performing the step (a) of obtaining the exact model values for each vertex of the triangle; program code for performing the step (b) of determining, for each side of the triangle, a maximum interpolation error which would result from the use of interpolation, based on the model values of the vertices at the endpoints of that side, to assign model values to object points along that triangle side; program code for performing the step (c) of comparing the maximum error for each side to a predetermined threshold value; program code for performing the step (d) of subdividing the triangle into subtriangles and repeating steps (a), (b), (c) and (d) for each subtriangle, if the maximum error for any of the triangle sides exceeds the threshold value; and program code for performing the step (e) of determining the model values corresponding to the non-vertex object points using interpolation.
-
-
38. A computer apparatus comprising a storage medium in which is stored program code for mapping a graphical surface model, comprising a plurality of model values, onto a triangle of a perspective projection of a triangle-based, graphically-represented object defined by points within an object coordinate system, the triangle having a plurality of sides and a plurality of vertices, the storage medium comprising:
-
program code for performing the step (a) of creating new vertices along the triangle sides such that each of the triangle sides is divided into a plurality of sections, the length of each section being such that, given exact model values to be assigned to the vertices, the determination of model values by linear interpolation over the length of any one section does not produce an error which exceeds the threshold value; program code for performing the step (b) of interconnecting the new vertices with line segments parallel to the original triangle sides, such as to create interior subtriangles having vertices at crossing points between the line segments; program code for performing the step (c) of determining the exact model values for each of the vertices of the subtriangles; and program code for performing the step (d) of determining the model values corresponding to each non-vertex object point using linear interpolation. - View Dependent Claims (39)
-
-
40. A computer apparatus comprising a storage medium in which is stored program code for mapping a graphical surface model, comprising a plurality of model values, onto a w-isosceles triangle of a perspective projection of a triangle-based, graphically-represented object defined by points within an object coordinate system, the triangle having two sides and a base, the base being bounded by two vertices each having a homogeneous coordinate w of the same value, the storage medium comprising:
-
program code for performing step (a) of dividing the triangle into a plurality of trapezoids each having four vertices, two bases parallel to the base of the triangle, and two sides, each of which is colinear with one of the triangle sides, the length of the trapezoid sides being such that, given the exact model values to be assigned to the vertices of the trapezoid, the interpolation of model values along the sides of the trapezoid results in no interpolation error that exceeds a predetermined threshold value; program code for performing step (b) of determining the exact model values for the vertices of each trapezoid; program code for performing step (c) of subdividing the interior of each trapezoid into a plurality of w-isosceles subtriangles; and program code for performing step (d) of determining the model values for the remaining object points of the triangle by interpolation. - View Dependent Claims (41, 42, 43)
-
-
44. A video controller apparatus for exchanging graphics data between a host processor and a display that displays a graphical image to a user, the controller including a graphics processor in communication with a storage medium in which is stored program code for mapping a graphical surface model, comprising a plurality of model values, onto a polygon of a perspective projection of a polygon-based, graphically-represented object defined by points within an object coordinate system, the storage medium comprising:
-
program code for performing the step (a) of subdividing the polygon into subpolygons each having a plurality of sides and a plurality of vertices, the subdivision being such that, given exact model values to be assigned to the vertices, the determination of model values by linear interpolation over the length of any one subpolygon side does not produce an interpolation error which exceeds a predetermined threshold value; program code for performing the step (b) of determining the exact model values for the vertices of the sub-polygons; and program code for performing the step (c) of determining the model values corresponding to the non-vertex object points by interpolation. - View Dependent Claims (45, 46, 47)
-
-
48. A video controller for exchanging graphics data between a host processor and a display that display a graphical image to a user, the controller including a graphics processor in communication with a storage medium in which is stored program code for mapping a graphical surface model, comprising a plurality of model values, onto a triangle of a perspective projection of a triangle-based, graphically-represented object defined by points within an object coordinate system, the storage medium comprising:
-
program code for performing the step (a) of obtaining the exact model values for each vertex of the triangle; program code for performing the step (b) of determining, for each side of the triangle, a maximum interpolation error which would result from the use of interpolation, based on the model values of the vertices at the endpoints of the corresponding side for which the maximum interpolation error is determined, to assign model values to object points along the corresponding side; program code for performing the step (c) of comparing the maximum error for each side to a predetermined threshold value; program code for performing the step (d) of subdividing the triangle into substriangles and repeating steps (a), (b), (c) and (d) for each subtriangle, if the maximum error for any of the triangle sides exceeds the threshold value; and program code for performing the step (e) of determining the model values corresponding to the non-vertex object points using interpolation.
-
-
49. A video controller for exchanging graphics data between a host processor and a display that displays a graphical image to a user, the controller including a graphics processor in communication with a storage medium in which is stored program code for mapping a graphical surface model, comprising a plurality of model values, onto a triangle of a perspective projection of a triangle-based, graphically-represented object defined by points within an object coordinate system, the triangle having a plurality of sides and a plurality of vertices, the storage medium comprising:
-
program code for performing the step (a) of creating new vertices along the triangle sides such that each of the triangle sides is divided into a plurality of sections, the length of each section being such that, given exact model values to be assigned to the vertices, the determination of model values by linear interpolation over the length of any one section does not produce an error which exceeds the threshold value; program code for performing the step (b) of interconnecting the new vertices with line segments parallel to the original triangle sides, such as to create interior subtriangles having vertices at crossing points between the line segments; program code for performing the step (c) of determining the exact model values for each of the vertices of the subtriangles; and program code for performing the step (d) of determining the model values corresponding to each non-vertex object point using linear interpolation. - View Dependent Claims (50)
-
-
51. A video controller for exchanging graphics data between a host processor and a display that displays a graphical image to a user, the controller including a graphics processor in communication with a storage medium in which is stored program code for mapping a graphical surface model, comprising a plurality of model values, onto a w-isosceles triangle of a perspective projection of a triangle-based, graphically-represented object defined by points within an object coordinate system, the triangle having two sides and a base, the base being bounded by two vertices each having a homogeneous coordinate w of the same value, the storage medium comprising:
-
program code for performing step (a) of dividing the triangle into a plurality of trapezoids each having four vertices, two bases parallel to the base of the triangle, and two sides, each of which is colinear with one of the triangle sides, the length of the trapezoid sides being such that, given the exact model values to be assigned to the vertices of the trapezoid, the interpolation of model values along the sides of the trapezoid results in no interpolation error that exceeds a predetermined threshold value; program code for performing step (b) of determining the exact model values for the vertices of each trapezoid; program code for performing step (c) of subdividing the interior of each trapezoid into a plurality of w-isosceles subtriangles; and program code for performing step (d) of determining the model values for the remaining object points of the triangle by interpolation. - View Dependent Claims (52, 53, 54)
-
Specification