• Advertisement
Sign in to follow this  

COLLADA issue

This topic is 2199 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 having an issue with my COLLADA converter. It might be a bit obscure but I feel like I've tried everything.

I found a 3ds Max model online with a skeleton and some animation - all fairly standard stuff. The animation looks fine in Max.

When I export is as a DAE file and convert it using my converter, the mesh looks absolutely fine in bind pose but through some research, I've found out that several of the vertices have too many bones assigned to them.

The head is easiest to describe - the head bone is at index zero in the bones list and almost all of the vertices in the head have, in the vertex weights section, bone index zero and weight of 1.0 (only one influence per vertex). One vertex (in an area that should only have one influence which is bone index zero), has a string of 4 influences, strangely with bone indices linearly from 1 to 4 and weights that add up to 1.

I thought it was my converter at fault but looking at the xml and singling out the vertex at fault, it does look like erroneous data coming through. Has anyone else seen bad bone index/weight data from COLLADA?

Thanks in advance

Share this post


Link to post
Share on other sites
Advertisement

The head is easiest to describe - the head bone is at index zero in the bones list and almost all of the vertices in the head have, in the vertex weights section, bone index zero and weight of 1.0 (only one influence per vertex). One vertex (in an area that should only have one influence which is bone index zero), has a string of 4 influences, strangely with bone indices linearly from 1 to 4 and weights that add up to 1.

To be honest, this sounds valid. Are you sure, that this specific vertex should really be influenced by only one bone ?

Share this post


Link to post
Share on other sites

[quote name='RobMaddison' timestamp='1334576356' post='4931693']
The head is easiest to describe - the head bone is at index zero in the bones list and almost all of the vertices in the head have, in the vertex weights section, bone index zero and weight of 1.0 (only one influence per vertex). One vertex (in an area that should only have one influence which is bone index zero), has a string of 4 influences, strangely with bone indices linearly from 1 to 4 and weights that add up to 1.

To be honest, this sounds valid. Are you sure, that this specific vertex should really be influenced by only one bone ?
[/quote]

Thanks for the quick response. Yes, I'm positive it should only be influenced by one bone. All the vertices around it are only influenced by bone zero.

Share this post


Link to post
Share on other sites
Either double check it in max (display bone weights) or export it to an other format (FBX) and check it there. Maybe the model is already buggy.

I don't think, that the collada exporter will retransfer a vertex from one bone to 4 others with a valid weight sum of 1.

Share this post


Link to post
Share on other sites

Either double check it in max (display bone weights) or export it to an other format (FBX) and check it there. Maybe the model is already buggy.

I don't think, that the collada exporter will retransfer a vertex from one bone to 4 others with a valid weight sum of 1.


Thanks. I had a look at the bone weights in Max and it turns out they are incorrect. The vertex in question does indeed haveinfluence from bones 1, 2, 3, 4. Once I set it to 1 influence from bone 1, it appears correctly in my engine.

So the question is, how can it the vertex animate correctly in 3ds Max, but have incorrect bone weights?

Share this post


Link to post
Share on other sites

So the question is, how can it the vertex animate correctly in 3ds Max, but have incorrect bone weights?

Modelling tools often use more advanced mesh deformation approaches or a mix of them, i.e. envelopes or a lattice construct.

Share this post


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

  • Advertisement