Advertisement

weighted vertices

Started by August 22, 2000 01:19 PM
6 comments, last by Thrump 24 years, 4 months ago
Hello. I want to put a mesh over a skeleton, and the position of all the vertices in the mesh will depend on their closeness to certain bones. For example, a vertex in the middle of the fore-arm will be slightly affected by the position of the upper-arm, but mostly affected by the position of the fore-arm. This is accomplished by calculating at load time, weights for all bones around a given vertex. Then these weights must be applied during run time of the animated character. The reason for doing this is so the fore-arm is connected smoothly to the upper-arm, without any cracks. Will this be efficient, say for 1-2 8000 poly characters? If not, is there a better way? Thanks. Hope you understand what I''m trying to do...
The way I do it with bones/weightmaps (the LW way) I need to rotate all vertexes one time for each bone that affects the vertex. And then morph all vertex togheter to build the final mesh. So say that your figure has 8000 verts and 10bones you will be rotating 80.000 verts and morphing togheter, don´t sound like 150FPS for me
Advertisement
How is smooth meshing achieved in realtime then?
change 8000polygons to 800polygons
MatsG is right, 8000 seems quite a lot for most purposes.

But there''s really no need to calculate 80000 vertices as most vertices will only be attached to couple of bones. You can have as complex skeleton you wish but make sure you only have nonzero weights for two or three bones per vertex.

-Ratsia
That''s kind of what I had in mind. A vertex in the lower arm would be affected by the hand and upper arm, but it doesn''t care what the feet are doing. So... 8000polys x 3vertices x 3 bones...
Is this a good way to do it? If not, how do you achieve smooth joints?

(8000 is fixed, i can''t change it... I''m working with pretty fast hardware however...)
Advertisement
That last post was from me...
If you can''t go under 8000 polys then you just have to try if it''s fast enough. I think your way is the right one.

Still there are some wrong calculations. If you have 8000 triangles it doesn''t mean that you have 8000x3 vertices because at least most of the vertices are shared by lots of triangles. You probably have something like 4000 vertices. So it means you are transforming 4000x3(bones)=12000 vertices per model.

It should be fast enough.

-Ratsia

This topic is closed to new replies.

Advertisement