![]() ![]() ![]() ![]() ![]() ![]() |
| Japanese page is here. |
Wireframe-surface conversion |
Outline
The goal of this project is to automatically convert a wireframe model (i.e., a set of curve segments in 3D space) into a surface model representing either a boundary of a solid or a sheet of surface. A wireframe model can be viewed as a collection of boundaries of faces (namely, bounded curved surfaces), but it does not include the following information that is essential for a surface model:
Our method interprets a wireframe model and converts it to a surface model that represents the simplest geometry. The technology has the following application areas:
Why wireframe?
A wireframe model is a collection of curve segments in 3D space. It is usually meant for a surfaced structure or a solid object because a wireframe needs smaller storage and is easier to handle compared with surface or solid models. But wireframe models have no surface data in it. So, it needs to be converted into surface model for the purpose of various operations in the computer (e.g. computer grpahics, structural analysis, collision detection, process planning, etc.)
Topological interpretation of a wireframe
In order to interpret a wireframe as a closed surface, it is necessary to find a proper set of face loops. Once it becomes a closed surface, then it can be either converted to a solid model or regarded as a bounded surface by removing some faces. The condition for a set of loops to make a closed surface is that every edge is traced twice in two distinct directions.
The interesting thing is that geometric information about edges and vertices is not necessary for telling the fact; only the connectivity is enough. Likewise, there is only one embedding for a more complicated model shown in the top-right figure (i.e., a cat's head). Once a set of loops is determined, you almost solved the problem, that is you just need to fix a surface for each loop. Then, do we always have just one embedding for any wireframe? Unfortunately, the answer is "No." Let's try the following wireframe model. How many interpretations as a closed surface do you think of? (The answer is here.)
Generating all topological interpretations
Our approach to this problem is to generate all embeddings of the wireframe onto the sphere. We first apply the technique of triconnected component decomposition to the input wireframe. For instance, the below graph is recursively splitted at such pair of vertices that removing the vertices make the graph split.
Generating surface geometry and pruning solutions
So far, all possible interpretations of a wireframe are generated based only on topological data. The following process is to generate a surface geometry based on the boundary of each face, and to prune out non-realistic solutions. In generating surfaces, we adopted the principle of favoring simpler shapes. A plane is the simplest and basic quadric surfaces (i.e., spheres, cylinders, and cones) come next. If such a surface doesn't fit to the boundary, a freeform surface is generated by using the technology of physically-based surface design. That is, a mesh is generated from a boundary loop and surface normal vectors at some points on the loop.
After obtaining all possible surface models, we exclude non-realistic ones and prioritize the remaining ones based on geometric simplicity. The following criteria can be used:
Samples
Here are experimental results for two wireframes.
The upper example represents an open surface object,
while the lower a closed boundary surface of a solid object.
Summary
Our approach can be characterized as follows:
|
|
|
| Last modified 28 Feb 2001 |