Hi

default implementation uses vertex attribs from slot 11 upwards for bone 
weights, and most implementations have GL_MAX_VERTEX_ATTRIBS = 16, so with more 
than 4 attributes you are probably hitting hardware limits on vertex attributes 
count, i think gl error comes from this too.

Cheers.

29.11.2012, 01:01, "Peterakos" <[email protected]>:
> Hello.
>
> I use the default RigTransformHardware for skinning on a dae Model
> with skeleton.
> My model consists of 4 RigGeometries (image 1). The number of bones
> per vertex is 7, 2, 20 and 15 respectively.
> After enabling the OSG_NOTIFY as INFO i see that it creates vec4
> boneWeightX attributes based on the 4 previous numbers
> (num_of_bones/2).
>
> The vertex shader i use for skinning is the following:
>
> #version 120
>
> attribute vec4 boneWeight0;
> attribute vec4 boneWeight1;
> attribute vec4 boneWeight2;
> attribute vec4 boneWeight3;
>
> uniform int nbBonesPerVertex;
> uniform mat4 matrixPalette[MAX_MATRIX];
>
> vec4 position;
>
> void computeAcummulatedNormalAndPosition(vec4 boneWeight){
>     int matrixIndex = int(boneWeight[0]);
>     float matrixWeight = boneWeight[1] ;
>         mat4 matrix = matrixPalette[matrixIndex];
>         position += matrixWeight * (matrix * gl_Vertex );
> }
>
> void main( void ){
>     position =  vec4(0.0,0.0,0.0,0.0);
>
>     if (nbBonesPerVertex > 0) 
> computeAcummulatedNormalAndPosition(boneWeight0);
>     if (nbBonesPerVertex > 2) 
> computeAcummulatedNormalAndPosition(boneWeight1);
>     if (nbBonesPerVertex > 4) 
> computeAcummulatedNormalAndPosition(boneWeight2);
>     if (nbBonesPerVertex > 6) 
> computeAcummulatedNormalAndPosition(boneWeight3);
>
>     gl_Position = gl_ModelViewProjectionMatrix * position;
> }
>
> The problem is that when i try to use all the boneWeight attributes it
> creates (which are 10), the model breaks (image 2).
> On the other hand the code above (with only 4 attributes) works like
> the RigTransformSoftware.
>
> On a different high detail model (which creates 25 bone weight
> attributes max), i get the following results:
>         -With only the first 4 attributes: the model is broken and animated
>         -With all the attributes: the model is correct but there is no 
> animtion.
>
> Can anyone help me through this ?
> Is this behavior normal?
>
> I also get a lot of Warning: detected OpenGL error 'invalid value'
> after RenderBin::draw()
>
> Thank you for your time and sorry for the long post.
>
> ,
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to