Surface simplification preserving a solid volume
First Claim
1. In a computer system wherein an object is represented by a plurality of triangles, a method for generating a second object which is a simplified representation of the first object by collapsing at least one edge of said first object, the method comprising the steps of:
- i) identifying a first vertex and a second vertex of a candidate edge;
ii) determining a first set of triangles that are adjacent to said candidate edge;
iii) determining coordinates of a simplified vertex replacing said first vertex and second vertex in the event that said edge collapse is performed;
iv) determining properties of said simplified vertex, said properties representing at least one of coordinates, color and texture of said simplified vertex, v) assigning error values to said properties for said vertices of first set of triangles;
vi) assigning at least one tolerance value to said properties for said vertices of said first set of triangles, and vii) selectively performing said edge collapse based upon a comparison operation of said error values and said at least one tolerance value.
2 Assignments
0 Petitions
Accused Products
Abstract
Computer systems may be used to generate and display objects represented by triangles defined by coordinates of vertices. The present invention generates coordinates of a simplified vertex based upon coordinates of vertices adjacent to a first vertex and to a second vertex that define an edge of the triangles. First, a set of triangles that are adjacent to the edge is identified, Second, a first volume associated with the set of triangles is calculated. Finally, the coordinates of the simplified vertex are calculated such that a second volume associated with the simplified vertex corresponds to the first volume.
In addition, a technique is presented that generates a second object which is a simplified representation of a first object. The technique begins by identifying first and second vertices that define an edge. The coordinates of a simplified vertex that corresponds to first and second vertices of the edge is determined. Error values and tolerance values are assigned to vertices. First error volumes corresponding to the vertices of a second vertices of the edge. The first error volumes are based upon the error values assigned to vertices of the first set of triangles. A second set of triangles that share the simplified vertex is identified and partitioned into a set of planar polygons. Second error volumes corresponding to vertices of the set of planar polygons are derived based upon the first error volumes. The second error volumes enclose the first error volumes. Third error volumes corresponding to vertices of the second set of triangles are derived. The third error volumes are based upon the first and second error volumes. The third volumes enclose both the first error volumes and the second error volumes. A tolerance volume corresponding to the simplified vertex is derived. Fianllym, the coordinates of the simplified vertex is stored in memory for subsequent reuse based upon a comparison operation of the third error volume corresponding to the simplified vertex and the tolerance volume.
-
Citations
24 Claims
-
1. In a computer system wherein an object is represented by a plurality of triangles, a method for generating a second object which is a simplified representation of the first object by collapsing at least one edge of said first object, the method comprising the steps of:
-
i) identifying a first vertex and a second vertex of a candidate edge;
ii) determining a first set of triangles that are adjacent to said candidate edge;
iii) determining coordinates of a simplified vertex replacing said first vertex and second vertex in the event that said edge collapse is performed;
iv) determining properties of said simplified vertex, said properties representing at least one of coordinates, color and texture of said simplified vertex, v) assigning error values to said properties for said vertices of first set of triangles;
vi) assigning at least one tolerance value to said properties for said vertices of said first set of triangles, and vii) selectively performing said edge collapse based upon a comparison operation of said error values and said at least one tolerance value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
viii) selectively performing said edge collapse based upon at least one secondary collapsibility test. -
7. The method of claim 6, wherein a second set of triangles share said simplified vertex, and wherein said secondary collapsibility verifies that the angular rotation of normals of said first set of triangles with respect to normals of corresponding triangles of said second set of triangles is less than a predetermined threshold value.
-
8. The method of claim 6, wherein a second set of triangles share said simplified vertex, and wherein said secondary collapsibility verifies that a narrowness coefficient for each triangle in said second set of triangles is less than a predetermined threshold value.
-
-
9. A program storage device for use in a computer system wherein an object is represented by a plurality of triangles, the program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for generating a second object which is a simplified representation of the first object by collapsing at least one edge of said first object, said method steps comprising:
-
i) identifying a first vertex and a second vertex of a candidate edge;
ii) determining a first set of triangles that are adjacent to said candidate edge;
iii) determining coordinates of a simplified vertex replacing said first vertex and second vertex in the event that said edge collapse is performed;
iv) determining properties of said simplified vertex, said properties representing at least one of coordinates, color and texture of said simplified vertex;
v) assigning error values to said properties for said vertices of first set of triangles;
vi) assigning at least one tolerance value to said properties for said vertices of said first set of triangles; and
vii) selectively performing said edge collapse based upon a comparison operation of said error values and said at least one tolerance value. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
viii) selectively performing said edge collapse based upon at least one secondary collapsibility test.
-
-
15. The program storage device of claim 14, wherein a second set of triangles share said simplified vertex, and wherein said secondary collapsibility verifies that the angular rotation of normals of said first set of triangles with respect to normals of corresponding triangles of said second set of triangles is less than a predetermined threshold value.
-
16. The program storage device of claim 14, wherein a second set of triangles share said simplified vertex, and wherein said secondary collapsibility verifies that a narrowness coefficient for each triangle in said second set of triangles is less than a predetermined threshold value.
-
17. In a computer system wherein an object is represented by a plurality of triangles, a method for generating a second object which is a simplified representation of the first object by collapsing at least one edge of said first object, the method comprising the steps of:
-
i) identifying a first vertex and a second vertex of a candidate edge;
ii) determining coordinates of a simplified vertex replacing said first vertex and second vertex in the event that said edge collapse is performed;
iii) generating a first set of triangles that share said simplified vertex;
iv) for each triangle in said first set, generating a coefficient C characteristic of narrowness of said triangle as;
where A is area of said triangle, and l0, l1, l2 are lengths of respective sides of said triangle, and v) in the event that said coefficient C for each triangle in said first set satisfies a predetermined criterion, performing said edge collapse. - View Dependent Claims (18, 19, 20)
-
-
21. A program storage device for use in a computer system wherein an object is represented by a plurality of triangles, the program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for generating a second object which is a simplified representation of the first object by collapsing at least one edge of said first object, said method steps comprising:
-
i) identifying a first vertex and a second vertex of a candidate edge;
ii) determining coordinates of a simplified vertex replacing said first vertex and second vertex in the event that said edge collapse is performed;
iii) generating a first set of triangles that share said simplified vertex;
iv) for each triangle in said first set, generating a coefficient C characteristic of narrowness of said triangle as;
where A is area of said triangle, and l0, l1, l2 are lengths of respective sides of said triangle, and v) in the event that said coefficient C for each triangle in said first set satisfies a predetermined criterion, performing said edge collapse. - View Dependent Claims (22, 23, 24)
-
Specification