A computer implemented method is disclosed for increasing the level of detail of a polygonal surface. A first step of the method provides data in a memory of a computer (50) for representing a polygonal surface that is defined at least by a plurality of vertices, triangles and edges. Further steps of the method include providing a list of marked edges; cutting through the marked edges thereby creating new boundary vertices; applying displacements to the new boundary vertices thereby generating at least one hole in the surface, the hole being bounded by the displaced new boundary vertices; and filling the at least one hole with a forest of triangles. The step of providing data for representing the polygonal surface preferably includes a step of appending artificial vertices and triangles to the polygonal surface to fill potential boundary holes; and then subsequently removing or ignoring the artificial vertices and triangles when rendering the surface for display. Also disclosed is an improved data structure for representing a polygonal surface. The data structure is composed of a surface description containing a list of vertices and a list of triangles, said further includes data for specifying edge marks, vertex displacements, and a triangle forest.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A computer implemented method for increasing the level of detail of a polygonal surface, comprising steps of: providing data in a memory of a computer for representing a polygonal surface defined at least by a plurality of vertices, triangles and edges; providing a list of marked edges; cutting through the marked edges thereby creating new boundary vertices; applying displacements to the new boundary vertices thereby generating at least one hole in the surface, the hole being bounded by the displaced new boundary vertices; and filling the at least one hole with a forest of triangles, wherein each vertex is specified by a tuple of vertex coordinates, each triangle is specified by a triple of vertex indices, each edge is specified as a pair of vertex indices of a triangle, where a corner is a pair formed with a triangle and a vertex index of that triangle, where each vertex has a vertex ID, each triangle has a triangle ID, and each corner has a corner ID, and wherein the step of cutting through marked edges comprises: determining a set of vertices to be processed; forming corner groups from the corners associated with each vertex of the set of vertices; choosing a representative of a corner group as a corner of lowest ID; for each vertex of the set for which the associated number of corner groups is larger than one, replacing the corner group of lowest ID with the vertex; and for each said vertex, and for each additional corner group, replacing the corner group with a new vertex, such that new vertex IDs are attributed consecutively to corner groups in order of increasing corner group representative ID.
2. A method as in claim 1, wherein the step of cutting uses a Local Cutting Method.
3. A method as in claim 1, wherein the step of cutting uses a Global Cutting Method.
4. A method as in claim 1, wherein the step of providing data includes a step of appending artificial vertices and artificial triangles to the polygonal surface to fill potential boundary holes; and further comprising an additional step of removing or ignoring the artificial vertices and artificial triangles when rendering the surface for display.
5. A computer implemented method for automatically generating a computer representation of an increase in a level of detail of a polygonal surface, comprising the steps of: simplifying the polygonal surface; computing a low level of detail (LOD) polygonal surface; computing edge marks and vertex displacements relative to the low LOD polygonal surface; and determining a triangle forest to be added and stitched to the low LOD polygonal surface to form a higher LOD polygonal surface, wherein the step of simplifying said polygonal surface comprises steps of: creating a priority queue of surface edges, and for each edge in the priority queue, extracting an edge from the queue, testing the collapsibility of the extracted edge, and collapsing the extracted edge if the edge is determined to be collapsible, wherein the step of testing the collapsibility of the extracted edge is comprised of the steps of: applying at least one primary collapsibility test to an edge extracted from the queue; if the edge passes the at least one primary collapsibility test, applying further tests for determining whether an incremental surface comprised of a set of collapsed triangles is a triangle forest, and for determining whether the set of collapsed triangles and a set of remaining triangles are manifolds; and applying at least one secondary collapsibility test to the edge extracted from the queue.
6. A method as in claim 5, wherein the step of applying further tests is comprised of steps of: performing a test to determine that the incremental surface has no interior vertices; performing a test to determine that a split surface and the incremental surface are manifolds; and performing a test to determine if a loop exists in the incremental surface.
7. A method as in claim 5, wherein the step of applying further tests is comprised of steps of: performing a comprehensive test on an incremental surface based on triangle adjacency tests, triangle/vertex adjacency tests, and vertex and triangle boundary tests.
8. A method as in claim 5, wherein the polygonal data is representative of at least one anatomical structure.
9. A computer implemented method for cutting through a representation of a polygonal surface, the polygonal surface being representative of an actual structure, comprising steps of: providing data in a memory of a computer for representing the polygonal surface defined by triangles comprises edges, wherein each edge is defined by two vertices, wherein each vertex is specified by a tuple of vertex coordinates, each triangle is specified by a triple of vertex indices, each edge is specified as a pair of vertex indices of a triangle, each corner is a pair formed with a triangle and a vertex index of that triangle, each vertex having a vertex ID, each triangle having a triangle ID, and each corner having a corner ID; determining a set of vertices to be processed; forming corner groups from the corners associated with each vertex of the set of vertices; choosing a representative of a corner group as the corner of lowest ID; for each vertex of the set for which the associated number of corner groups is larger than one, replacing the corner group of lowest ID with the vertex; and for each vertex, and for each additional corner group, replacing the corner group with a new vertex, such that new vertex IDs are attributed consecutively to corner groups in order of increasing corner group representative ID.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
January 14, 1998
October 23, 2001
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.