• Advertisement
Sign in to follow this  

Vertex morph animation

This topic is 1898 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I'm used to skeletal animation, but I'm not sure where to start with per-vertex animations. Is there anyone that has experience making per-vertex animations/morphs? How can you indicate the destination of a vertex with a modeling program? Do I really have to create a bone for every single vertex?

Say I have a two meshes with the exact same amount of faces and vertices and save them both to separate frames/files, I can only expect that vertices from the first frame will interpolate to random vertices in the second frame, which would turn into triangle soup. I need a modeling program that can let me assign an ID to a vertex or something so that I can choose which vertices go where in the next frame. Does something like this exist? If not, what is common practice for vertex animators? Edited by w00tguy123

Share this post


Link to post
Share on other sites
Advertisement
[quote name='w00tguy123' timestamp='1352264889' post='4998345']
Do I really have to create a bone for every single vertex?
[/quote]
What ? No.

[quote name='w00tguy123' timestamp='1352264889' post='4998345']
I need a modeling program that can let me assign an
[/quote]
Well, blender for example supports [url="http://de.wikibooks.org/wiki/Blender_Dokumentation:_Shape_Keys"]shape keys[/url], which are the same model (tris + vertices), but each shape key have an other position of the vertices. You don't need unique IDs, the tool just needs to ensure, that the exported vertices are in the same order.

In this case you would morph between two meshes like this:
[CODE]

vertexSource : attribute
vertexTarget : attribute
alpha : uniform
..
positionSource = applySkeletalAnimation(vertexSource.position);
positionTarget = applySkeletalAnimation(vertexTarget.position);
positionFinal = mix(positionSource,positionTarget,alpha);
...

[/CODE]
Basically the source and target vertex are two different streams of two [i]meshes[/i], representing the same topology. In fact there're only two position/normal streams, you can share other data like uv coords or color. When exporting your meshes from a modelling tool just ensure, that
1. same number and order of vertices
2. bound to the same skeleton
3. same tris

Shape keys should do exactly this, other modelling tools should have similar features.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement