Find mappings between two surface meshes (for morphing)

  • Thread starter Unrest
  • Start date
  • Tags
    Surface
In summary, Unrest recommends using interpolation schemes that interpolate between all sets of points. The user would need to know the points to interpolate between and use a standard scheme to create the control points.
  • #1
360
1
I want to morph two surface meshes made from triangles and quadrilaterals.

They are already "compatible" so that one can be converted to the other simply by changing the coordinates of the vertices. No vertices, gaps, edges, etc. are created or destroyed.
Not sure of the terminology. I think that means they have some or all of these properties:
- Homeomorphic
- Topologically equivalent
- Combinatorially equivalent
- The same in every way except the (x,y,z) coordinates and the numbering/labeling of the vertices/elements.

I want to find all the possible ways the vertices could be numbered so the numbers match on both meshes. For example the circular mesh in the picture would have 6 ways to number the vertices 1,2,3,.. so they match the triangular mesh.

[PLAIN]http://dl.dropbox.com/u/21857463/meshes.png [Broken]
 
Last edited by a moderator:
Physics news on Phys.org
  • #2
Unrest said:
I want to morph two surface meshes made from triangles and quadrilaterals.

They are already "compatible" so that one can be converted to the other simply by changing the coordinates of the vertices. No vertices, gaps, edges, etc. are created or destroyed.
Not sure of the terminology. I think that means they have some or all of these properties:
- Homeomorphic
- Topologically equivalent
- Combinatorially equivalent
- The same in every way except the (x,y,z) coordinates and the numbering/labeling of the vertices/elements.

I want to find all the possible ways the vertices could be numbered so the numbers match on both meshes. For example the circular mesh in the picture would have 6 ways to number the vertices 1,2,3,.. so they match the triangular mesh.

[PLAIN]http://dl.dropbox.com/u/21857463/meshes.png[/QUOTE] [Broken]

Hey Unrest.

What you are looking for is an interpolation scheme.

If the edge structures during the transformation never change, then all you need to do is to setup interpolation schemes for each vertex.

Your interpolation scheme will contain a parameter t that goes from 0 to 1. p(t) will calculate the value of the point at time t. p(0) = initial point, p(1) = final point and other values are in-between.

There are quite a few different schemes for interpolation, but what I recommend you do is to look into the area of BSPLINES. If you want something simpler, I would use a Bezier curve.

Basically what a Bezier curve does is it uses four points (the cubic variety). The first and last point correspond to p(0) and p(1). You also have two other points in between which are control points which control the path of the interpolation. Basically the path is "dragged towards" the mid-points, but with a bezier curve they do not go through the 2nd and 3rd points and for this reason they are known as approximating curves and not interpolating curves (interpolating curves have the property that it goes through all control points).

Once you learn about interpolating schemes, then all you have to do is assign a parametric scheme to each point, and then for every step-size, compute each point, and perhaps recompute normal vertices if you are doing some kind of rendering application or if you need to use lighting, and then draw your shape. Since the edge data is the same, you don't have to update this.

If you have any other questions, I'll do my best to answer them.
 
Last edited by a moderator:
  • #3
Thanks chiro

However, interpolation isn't my problem. I intend to simply use linear interpolation despite its problems.

It's the stage before interpolation that I'm stuck on. How can I find the pairs of vertices to interpolate between? In my example there are 6 possible sets of corresponding pairs. If I know all of them, then I can choose anyone and produce some sort of result.
 
  • #4
You can use interpolation schemes that interpolate between all sets of points if that is what you are asking.

Just use a standard scheme and use those as your control points for the scheme.

Is this what you want to do? Do you want to find a way to morph between images in some way that looks good?
 
Last edited:
  • #5
No. I don't want to interpolate. Actually I already have linear interpolation working fine.

I want to find out which points to interpolate between. Most sets of pairs of points will produce a random tangle. I want to find, for example only those 6 sets shown in the picture.

Currently I manually number the vertices. And I carefully make sure that both meshes have identical vertex numberings. That's not very convenient. I'd prefer the computer to find the possible numberings itself and then the user just chooses a suitable one from a limited selection of correct ones.
 

1. What is the purpose of finding mappings between two surface meshes for morphing?

The purpose of finding mappings between two surface meshes for morphing is to create a smooth and seamless transition between two different surfaces. This is commonly used in computer graphics and animation, as well as in medical imaging and 3D modeling.

2. How do you find mappings between two surface meshes for morphing?

There are various methods for finding mappings between two surface meshes for morphing. Some commonly used techniques include shape-based methods, statistical methods, and feature-based methods. Each method has its own advantages and limitations, and the choice of method depends on the specific application and the characteristics of the surface meshes.

3. What factors should be considered when finding mappings between two surface meshes for morphing?

When finding mappings between two surface meshes for morphing, it is important to consider the topology and geometry of the surfaces, as well as any potential artifacts or noise in the data. The desired level of accuracy, the amount of distortion allowed, and the complexity of the surfaces are also important factors to consider.

4. Can finding mappings between two surface meshes for morphing be automated?

Yes, finding mappings between two surface meshes for morphing can be automated through the use of algorithms and computer programs. However, the accuracy and success of the automated process may depend on the complexity of the surfaces and the chosen method for finding the mappings.

5. Are there any challenges or limitations to finding mappings between two surface meshes for morphing?

Yes, there can be challenges and limitations to finding mappings between two surface meshes for morphing. Some common challenges include dealing with non-rigid or highly complex surfaces, handling missing or noisy data, and achieving a smooth and seamless transition between the two meshes. Additionally, the success of the process may depend on the chosen method and the quality of the input data.

Similar threads

  • Special and General Relativity
Replies
8
Views
1K
  • General Engineering
Replies
2
Views
3K
Replies
3
Views
3K
  • Advanced Physics Homework Help
Replies
2
Views
4K
  • Math Proof Training and Practice
2
Replies
38
Views
6K
  • Classical Physics
Replies
21
Views
970
  • Programming and Computer Science
Replies
5
Views
2K
  • Beyond the Standard Models
Replies
14
Views
3K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
1
Views
3K
Back
Top