this might be a duplication of another post, but I couldn’t find an answer that helps me understanding the solution to my questions yet.
In my model I have 1420 triangles, 740 positions and 1408 normals, resulting in 1260 vertices.
If for example <p> looks like this: “97 0 36 0 93 0 …”, it means that the first vertex is put together by the 97th position and 0th normal. A triangle then is put together by 3 following vertices, and so on.
When I don’t parse the normals at all, I get a result of 740 vertices, which fits to the amount of positions.
If I understood it the right way, the higher count of vertices is explained by smoothing groups.
Now comes my main problem when parsing the vertex weight.
The <vcount> node in <vertex_weights> describes how many <joint, weight> 2-tuples affect a vertex.
How does the parsing and indexing work the right way, if I have more vertices than vertex weights?
Do I have to index the first vertex weight with the first vertex (in this case 97th position, 0th normal) and also assign that vertex weight to every other vertex which uses the 97th position, but another normal?
A little test I did was dropping the normals, which gave me the result of 740 vertices (since there are only 740 positions), which matches to 740 vertex weights. I assigned the first <joint, weight> 2-tuple to the first vertex, the second pair to the second vertex etc.
Still there were errors in my skinning implementation, in the vertex - joint weight assignments. The foot and leg bones of an humanoid character were influencing vertices located at the head. In other animation viewers the file works fine.
Are there mistakes in the way I approach this and would you be so kind and give me a short explanation on the right way of assigning vertex-joint weights?