Registriert: Di Jul 01, 2003 18:59 Beiträge: 887 Wohnort: (The Netherlands)
Programmiersprache: fpc/delphi/java/c#
On thinking on the possibilties of adding keyframe animation the following options came to mind, but none are good enough in my opinion:
Keyframe animation should be stored as as an array consisting of framnumberid and a glvgobject(read polygon shape).
1)
Render the apropriate glvg object accoriding to its framenumberid and the current frame. Animation can become jumpy going from one shape to another at once. Each frame is tesselated(triangulated) in advance.
2)
vertex interpolation: is not going to be possible as each glvgobject may be composed of a different number of vertexes and even their order may vary.
3)
polygon interpolation: each intermediate glvgObjects needs to be tesselated realtime. Could mean major slowdown on complex glvgObjects.
4)
precalculated polygon interpolation: All intermediate glvgObjects need to be interpolated and tesselated in advance. Could clog up lots of memory for long animation sequences.
5)
geometry shaders? Don't know anything about them and i would like to support older hardware.
Registriert: Di Okt 03, 2006 14:07 Beiträge: 1277 Wohnort: Wien
Zitat:
Keyframe animation should be stored as as an array consisting of framnumberid and a glvgobject(read polygon shape).
I do not know what a glvgobject is. Is this a tesselated 3D letter?
Zitat:
vertex interpolation: is not going to be possible as each glvgobject may be composed of a different number of vertexes and even their order may vary.
And I don't know what you want to do. Do you want to morph one object into another? I think this would be a complicated task, as they are tesselated in a different way. If you want to make your object just move, what about a skeleton? Maybe there is an automatic way to generate a skeleton for an automatically generated object.
Registriert: Di Jul 01, 2003 18:59 Beiträge: 887 Wohnort: (The Netherlands)
Programmiersprache: fpc/delphi/java/c#
i have a 2d vector graphics unit called glvg.
all shapes consists of paths made of line, qsplines and csplines.
those paths are tesselated(triangulated) before rendering. And you can force it to tesselate earlier e.g. after construction so it is already tesselated on rendering. E.g. the render is stupid and just renders a bunch of triangles.
I use glutess to do the tesselation.
For as far as i know only option 1 is possible.
I dont want to use skeleton as it should be possibel to 'handdraw' the different keyframes. So i gues i want morphing.
Registriert: Di Okt 03, 2006 14:07 Beiträge: 1277 Wohnort: Wien
Hm, morphing. If you want to make your keyframes by hand, you would have to make several frames in a modeller and for that purpose the tesselated object has to be saved into a file. In that case the number of vertices should be the same from one frame to the next, so there should be no problem to interpolate the vertices between each frame.
EDIT: There is a way to morph between two different 3D-Objects, but this is rather a diffcult task and was subject to scientific papers in the last 10 years. There is a process they call "mesh parameterization" that take as input an ordinary 3D triangle mesh and calculates a "geometry image" thereof.
The data structure of a geometry image is very similar to a usual image, but the "pixels" are no colors but *vertex positions*. It can almost be compressed like a JPeg. It is also possible to stretch and squeeze it, just like a normal image and there are some more advantages compared to our usual mesh data.
Now, if you take two 3D triangle meshes, make two geometry image from it, bring them to the same size (width, heigt) then it is possible to morph between the two objects. Youtube is full of such things, they especially love to morph Michael Jackson .
If you want to have a very good and short PDF overview, just google for "Geometry Map" (I could not pull the link out of the website).
I cannot do that but I would like to learn it. There is plenty of information about that on the web, but it is full of heavy maths.
Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.