Page 1 of 1

more than 100% bone weight on a vertex?

Posted: Tue Feb 01, 2005 2:03 am
by Bill
I don't suppose you can have more than 100% bone weight on a vertex?

for example:

Code: Select all

<boneassignments>
    <vertexboneassignment vertexindex="0" boneindex="1" weight=".2" />
    <vertexboneassignment vertexindex="0" boneindex="2" weight=".8" />
    <vertexboneassignment vertexindex="0" boneindex="3" weight=".3" />
    <vertexboneassignment vertexindex="0" boneindex="4" weight=".7" />
<boneassignments>

The thing is, I can weight a vertex like this in XSI by having the vertex be part of multiple point clusters. While XSI will not let you weight a point for more than 1 in any given cluster, it doesn't care about the weights across clusters. So I could have 2 clusters with vertex 0 in them with weights of .2 and .8 in one cluster and a weights of .3 and .7 in the other.

Do you think that in this case you might just scale the weights (e.g. .1, .4, .15, .35)?

Posted: Tue Feb 01, 2005 2:53 pm
by sinbad
Yes, you should re-normalise the weights so that they add up to 1.0.

Posted: Tue Feb 01, 2005 10:35 pm
by Bill
Is it alright to have a weight less than one?

Code: Select all


<boneassignments> 
    <vertexboneassignment vertexindex="0" boneindex="1" weight=".7" /> 
<boneassignments>

Posted: Wed Feb 02, 2005 12:02 am
by sinbad
No. Weights must be normalised.

Posted: Wed Feb 02, 2005 5:18 am
by Bill
I did some tests in XSI. Normalizing the weights will not have the same effect in Ogre as the non-normalized XSI weights.

In the case of weights < 1. For example if the only weight on a vertex is .5 then it will only deflect half as far as if it had a weight of 1.

In the case of weights > 1 via multiple clusters. This is more more complex. Say you have 2 weights on a vertex of 1 and 1. It first deflects due to the weight in one cluster and then deflects again from it's new starting location due to its weight in the second cluster.

The best thing might be to have the exporter print out an error and leave it at that.